feat(user): 新增用户角色和权限相关功能
- 在 RoleMenuRepository 中添加了根据角色 ID 查询角色菜单的方法 - 在 UserServiceImpl 中实现了用户角色和权限的更新逻辑 - 新增了 sys_role 表及其相关注释
This commit is contained in:
parent
c7ae0385a0
commit
11a6405be3
@ -2,9 +2,15 @@ package com.zsc.edu.gateway.modules.system.repo;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.zsc.edu.gateway.modules.system.entity.RoleMenu;
|
import com.zsc.edu.gateway.modules.system.entity.RoleMenu;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Yao
|
* @author Yao
|
||||||
*/
|
*/
|
||||||
public interface RoleMenuRepository extends BaseMapper<RoleMenu> {
|
public interface RoleMenuRepository extends BaseMapper<RoleMenu> {
|
||||||
|
@Select("select * from role_menu where role_id = #{roleId}")
|
||||||
|
Set<RoleMenu> selectByRoleId(@Param("roleId") Long roleId);
|
||||||
}
|
}
|
||||||
|
@ -9,11 +9,16 @@ import com.zsc.edu.gateway.modules.system.dto.UserCreateDto;
|
|||||||
import com.zsc.edu.gateway.modules.system.dto.UserSelfUpdateDto;
|
import com.zsc.edu.gateway.modules.system.dto.UserSelfUpdateDto;
|
||||||
import com.zsc.edu.gateway.modules.system.dto.UserSelfUpdatePasswordDto;
|
import com.zsc.edu.gateway.modules.system.dto.UserSelfUpdatePasswordDto;
|
||||||
import com.zsc.edu.gateway.modules.system.dto.UserUpdateDto;
|
import com.zsc.edu.gateway.modules.system.dto.UserUpdateDto;
|
||||||
|
import com.zsc.edu.gateway.modules.system.entity.Menu;
|
||||||
import com.zsc.edu.gateway.modules.system.entity.Role;
|
import com.zsc.edu.gateway.modules.system.entity.Role;
|
||||||
|
import com.zsc.edu.gateway.modules.system.entity.RoleMenu;
|
||||||
import com.zsc.edu.gateway.modules.system.entity.User;
|
import com.zsc.edu.gateway.modules.system.entity.User;
|
||||||
import com.zsc.edu.gateway.modules.system.mapper.UserMapper;
|
import com.zsc.edu.gateway.modules.system.mapper.UserMapper;
|
||||||
|
import com.zsc.edu.gateway.modules.system.repo.MenuRepository;
|
||||||
|
import com.zsc.edu.gateway.modules.system.repo.RoleMenuRepository;
|
||||||
import com.zsc.edu.gateway.modules.system.repo.RoleRepository;
|
import com.zsc.edu.gateway.modules.system.repo.RoleRepository;
|
||||||
import com.zsc.edu.gateway.modules.system.repo.UserRepository;
|
import com.zsc.edu.gateway.modules.system.repo.UserRepository;
|
||||||
|
import com.zsc.edu.gateway.modules.system.service.MenuService;
|
||||||
import com.zsc.edu.gateway.modules.system.service.UserService;
|
import com.zsc.edu.gateway.modules.system.service.UserService;
|
||||||
import com.zsc.edu.gateway.modules.system.utils.sendMail;
|
import com.zsc.edu.gateway.modules.system.utils.sendMail;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@ -22,7 +27,10 @@ import org.springframework.security.core.context.SecurityContextHolder;
|
|||||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -42,6 +50,9 @@ public class UserServiceImpl extends ServiceImpl<UserRepository, User> implement
|
|||||||
private final sendMail send;
|
private final sendMail send;
|
||||||
private final UserMapper userMapper;
|
private final UserMapper userMapper;
|
||||||
private final RoleRepository roleRepository;
|
private final RoleRepository roleRepository;
|
||||||
|
private final RoleMenuRepository RoleMenuRepository;
|
||||||
|
private final RoleMenuRepository roleMenuRepository;
|
||||||
|
private final MenuRepository menuRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean create(UserCreateDto dto) {
|
public Boolean create(UserCreateDto dto) {
|
||||||
@ -129,8 +140,13 @@ public class UserServiceImpl extends ServiceImpl<UserRepository, User> implement
|
|||||||
.update();
|
.update();
|
||||||
userDetails.setRole(role);
|
userDetails.setRole(role);
|
||||||
if (updated) {
|
if (updated) {
|
||||||
|
// 刷新权限表
|
||||||
|
List<Menu> menus = menuRepository.selectByRoleId(roleId);
|
||||||
|
Set<String> permissions = menus.stream().map(Menu::getPermissions).collect(Collectors.toSet());
|
||||||
|
userDetails.setPermissions(permissions);
|
||||||
SecurityUtil.setUserInfo(userDetails);
|
SecurityUtil.setUserInfo(userDetails);
|
||||||
}
|
}
|
||||||
return userDetails;
|
return userDetails;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
45
src/main/resources/db/gateway/public/sys_role.sql
Normal file
45
src/main/resources/db/gateway/public/sys_role.sql
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
create table sys_role
|
||||||
|
(
|
||||||
|
id bigint generated by default as identity
|
||||||
|
constraint _copy_6
|
||||||
|
primary key,
|
||||||
|
name varchar(50) not null,
|
||||||
|
create_by varchar(50),
|
||||||
|
update_by varchar(50),
|
||||||
|
create_time timestamp(6),
|
||||||
|
update_time timestamp(6),
|
||||||
|
enabled boolean,
|
||||||
|
remark varchar(255),
|
||||||
|
data_scope integer,
|
||||||
|
create_id bigint,
|
||||||
|
dept_id bigint
|
||||||
|
);
|
||||||
|
|
||||||
|
comment on table sys_role is '角色表';
|
||||||
|
|
||||||
|
comment on column sys_role.id is 'ID';
|
||||||
|
|
||||||
|
comment on column sys_role.name is '名称';
|
||||||
|
|
||||||
|
comment on column sys_role.create_by is '创建者';
|
||||||
|
|
||||||
|
comment on column sys_role.update_by is '更新者';
|
||||||
|
|
||||||
|
comment on column sys_role.create_time is '创建日期';
|
||||||
|
|
||||||
|
comment on column sys_role.update_time is '更新时间';
|
||||||
|
|
||||||
|
comment on column sys_role.enabled is '状态';
|
||||||
|
|
||||||
|
comment on column sys_role.data_scope is '数据权限范围';
|
||||||
|
|
||||||
|
comment on column sys_role.create_id is '创建者id';
|
||||||
|
|
||||||
|
comment on column sys_role.dept_id is '部门权限';
|
||||||
|
|
||||||
|
alter table sys_role
|
||||||
|
owner to gitea;
|
||||||
|
|
||||||
|
create index role_name_index
|
||||||
|
on sys_role (name);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user