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.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
|
||||
*/
|
||||
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.UserSelfUpdatePasswordDto;
|
||||
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.RoleMenu;
|
||||
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.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.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.utils.sendMail;
|
||||
import lombok.AllArgsConstructor;
|
||||
@ -22,7 +27,10 @@ import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@ -42,6 +50,9 @@ public class UserServiceImpl extends ServiceImpl<UserRepository, User> implement
|
||||
private final sendMail send;
|
||||
private final UserMapper userMapper;
|
||||
private final RoleRepository roleRepository;
|
||||
private final RoleMenuRepository RoleMenuRepository;
|
||||
private final RoleMenuRepository roleMenuRepository;
|
||||
private final MenuRepository menuRepository;
|
||||
|
||||
@Override
|
||||
public Boolean create(UserCreateDto dto) {
|
||||
@ -129,8 +140,13 @@ public class UserServiceImpl extends ServiceImpl<UserRepository, User> implement
|
||||
.update();
|
||||
userDetails.setRole(role);
|
||||
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);
|
||||
}
|
||||
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