fix
This commit is contained in:
@@ -125,7 +125,7 @@ public class DataScopeAspect {
|
||||
if (StringUtils.isNotNull(loginUser)) {
|
||||
SysUserEntity currentUser = loginUser.getUser();
|
||||
// 如果是超级管理员,则不过滤数据
|
||||
if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) {
|
||||
if (StringUtils.isNotNull(currentUser) && SysUserEntity.isAdmin(currentUser)) {
|
||||
String permission = StringUtils.defaultIfEmpty(controllerDataScope.permission(), CustomSecurityContextHolder.getPermission());
|
||||
dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(),
|
||||
controllerDataScope.userAlias(), permission);
|
||||
|
||||
@@ -202,26 +202,25 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
||||
sysTenantEntity.setCreatedTime(new Date());
|
||||
sysTenantMapper.insert(sysTenantEntity);
|
||||
// 创建默认部门--部门默认名称以租户名称
|
||||
Long deptId = createDept(sysTenantEntity);
|
||||
//Long deptId = createDept(sysTenantEntity);
|
||||
// 创建默认角色--角色默认为租户名称+管理员
|
||||
Long roleId = createRole(sysTenantEntity);
|
||||
//Long roleId = createRole(sysTenantEntity);
|
||||
// 创建默认账号
|
||||
createUser(sysTenantEntity, deptId, roleId);
|
||||
createUser(sysTenantEntity);
|
||||
// 创建域名
|
||||
this.createDomainAndDns(sysTenantEntity.getTenantKey());
|
||||
|
||||
// 新增客服和组长
|
||||
this.initRole(sysTenantEntity);
|
||||
initOtherRule(sysTenantEntity, "waiter", "客服");
|
||||
initOtherRule(sysTenantEntity, "leader", "组长");
|
||||
initOtherRule(sysTenantEntity, "operator", "管理员");
|
||||
//initOtherRule(sysTenantEntity, "waiter", "客服");
|
||||
//initOtherRule(sysTenantEntity, "leader", "组长");
|
||||
//initOtherRule(sysTenantEntity, "operator", "管理员");
|
||||
return R.ok("租户创建成功!");
|
||||
}
|
||||
|
||||
private void initRole(SysTenantEntity sysTenantEntity) {
|
||||
|
||||
SysRoleEntity waiter = new SysRoleEntity();
|
||||
waiter.setRoleName(sysTenantEntity.getTenantName() + "客服");
|
||||
waiter.setRoleName("客服");
|
||||
waiter.setRoleKey("waiter");
|
||||
waiter.setDataScope("1");
|
||||
waiter.setMenuCheckStrictly(true);
|
||||
@@ -230,7 +229,7 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
||||
roleMapper.insert(waiter);
|
||||
|
||||
SysRoleEntity leader = new SysRoleEntity();
|
||||
leader.setRoleName(sysTenantEntity.getTenantName() + "组长");
|
||||
leader.setRoleName("组长");
|
||||
leader.setRoleKey("leader");
|
||||
leader.setDataScope("3");
|
||||
leader.setMenuCheckStrictly(true);
|
||||
@@ -239,20 +238,23 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
||||
roleMapper.insert(leader);
|
||||
|
||||
SysRoleEntity operator = new SysRoleEntity();
|
||||
operator.setRoleName(sysTenantEntity.getTenantName() + "管理员");
|
||||
operator.setRoleName("管理员");
|
||||
operator.setRoleKey("operator");
|
||||
operator.setDataScope("3");
|
||||
operator.setDataScope("1");
|
||||
operator.setMenuCheckStrictly(true);
|
||||
operator.setDeptCheckStrictly(true);
|
||||
operator.setTenantId(sysTenantEntity.getTenantId());
|
||||
roleMapper.insert(operator);
|
||||
|
||||
List<SysMenuEntity> menuList = menuMapper.selectMenuList(new SysMenuEntity());
|
||||
if (CollectionUtil.isNotEmpty(menuList)) {
|
||||
List<SysRoleMenuEntity> roleMenuEntityList = menuList.stream().map(menu -> {
|
||||
|
||||
//List<SysMenuEntity> menuList = menuMapper.selectMenuList(new SysMenuEntity());
|
||||
SysTenantPackageEntity sysTenantPackage = tenantPackageMapper.selectById(sysTenantEntity.getPackageId());
|
||||
List<String> subMeuns = Arrays.asList(sysTenantPackage.getMenuIds().split(","));
|
||||
if (CollectionUtil.isNotEmpty(subMeuns)) {
|
||||
List<SysRoleMenuEntity> roleMenuEntityList = subMeuns.stream().map(menu -> {
|
||||
SysRoleMenuEntity rm = new SysRoleMenuEntity();
|
||||
rm.setRoleId(operator.getRoleId());
|
||||
rm.setMenuId(menu.getMenuId());
|
||||
rm.setMenuId(Long.valueOf(menu));
|
||||
return rm;
|
||||
}).collect(Collectors.toList());
|
||||
roleMenuService.saveBatch(roleMenuEntityList);
|
||||
@@ -328,9 +330,8 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
||||
roleMenuService.saveBatch(roleMenuList);
|
||||
}
|
||||
|
||||
private void createUser(SysTenantEntity sysTenant, Long deptId, Long roleId) {
|
||||
private void createUser(SysTenantEntity sysTenant) {
|
||||
SysUserEntity user = new SysUserEntity();
|
||||
user.setDeptId(deptId);
|
||||
user.setUserCode(sysTenant.getUserName());
|
||||
user.setRealName(sysTenant.getTenantName());
|
||||
user.setUserNickname(sysTenant.getTenantName());
|
||||
@@ -342,8 +343,9 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
||||
user.setPassWord(password);
|
||||
user.setTenantId(sysTenant.getTenantId());
|
||||
user.setUserId(IdUtils.getUuid());
|
||||
user.setSuperAdmin(true);
|
||||
sysUserMapper.insert(user);
|
||||
createUserRole(sysTenant.getTenantId(), user.getUserId(), roleId);
|
||||
//createUserRole(sysTenant.getTenantId(), user.getUserId(), roleId);
|
||||
}
|
||||
|
||||
private void createUserRole(String tenantId, String userId, Long roleId) {
|
||||
|
||||
@@ -110,14 +110,12 @@ public class SysUserController {
|
||||
@ApiOperation(value = "根据用户id获取详细信息")
|
||||
@GetMapping(value = {"/", "/{userId}"})
|
||||
public R getInfo(@PathVariable(value = "userId", required = false) String userId) {
|
||||
SysUserEntity user = userService.selectUserById(userId);
|
||||
Map<String, Object> map = new HashMap<>(8);
|
||||
List<SysRoleEntity> roles = roleService.selectRoleList(new SysRoleEntity());
|
||||
map.put("roles", SysUserEntity.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
|
||||
if (userId != null) {
|
||||
SysUserEntity user = userService.selectUserById(userId);
|
||||
map.put("roleIds", user.getRoles().stream().map(SysRoleEntity::getRoleId).collect(Collectors.toList()));
|
||||
map.put("user", user);
|
||||
}
|
||||
map.put("roles", SysUserEntity.isAdmin(user) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
|
||||
map.put("roleIds", user.getRoles().stream().map(SysRoleEntity::getRoleId).collect(Collectors.toList()));
|
||||
map.put("user", user);
|
||||
return R.ok(map);
|
||||
}
|
||||
|
||||
|
||||
@@ -106,12 +106,9 @@ public class SysUserEntity extends BaseEntity<SysUserEntity> {
|
||||
@TableField(exist = false)
|
||||
private Long roleId;
|
||||
|
||||
public static boolean isAdmin(String userId) {
|
||||
return "6dcb2da45fef4768a6511f9c14e18072".equals(userId);
|
||||
}
|
||||
|
||||
public boolean isAdmin() {
|
||||
return isAdmin(this.userId);
|
||||
public static boolean isAdmin(SysUserEntity user) {
|
||||
return user.getSuperAdmin();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ public class LoginServiceImpl implements LoginService {
|
||||
public Set<String> getMenuPermission(SysUserEntity user) {
|
||||
Set<String> perms = new HashSet<>();
|
||||
// 超级管理员拥有所有权限
|
||||
if (SecurityUtils.isAdmin(user.getUserId())) {
|
||||
if (SecurityUtils.isAdmin(user)) {
|
||||
perms.add("*:*:*");
|
||||
} else {
|
||||
perms = menuService.selectMenuPermsByUserId(user.getUserId());
|
||||
@@ -98,7 +98,7 @@ public class LoginServiceImpl implements LoginService {
|
||||
public Set<String> getRolePermission(SysUserEntity user) {
|
||||
Set<String> roles = new HashSet<>();
|
||||
// 超级管理员拥有所有权限
|
||||
if (SecurityUtils.isAdmin(user.getUserId())) {
|
||||
if (SecurityUtils.isAdmin(user)) {
|
||||
roles.add("admin");
|
||||
} else {
|
||||
roles = roleService.selectRolePermissionByUserId(user.getUserId());
|
||||
|
||||
@@ -8,9 +8,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.starry.admin.common.domain.TreeSelect;
|
||||
import com.starry.admin.modules.system.entity.SysMenuEntity;
|
||||
import com.starry.admin.modules.system.entity.SysRoleEntity;
|
||||
import com.starry.admin.modules.system.entity.SysUserEntity;
|
||||
import com.starry.admin.modules.system.mapper.SysMenuMapper;
|
||||
import com.starry.admin.modules.system.mapper.SysRoleMapper;
|
||||
import com.starry.admin.modules.system.service.SysMenuService;
|
||||
import com.starry.admin.modules.system.service.SysUserService;
|
||||
import com.starry.admin.modules.system.vo.MetaVo;
|
||||
import com.starry.admin.modules.system.vo.RouterVo;
|
||||
import com.starry.admin.modules.system.vo.SimpleMenu;
|
||||
@@ -37,6 +39,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenuEntity
|
||||
|
||||
@Resource
|
||||
private SysRoleMapper roleMapper;
|
||||
@Resource
|
||||
private SysUserService userService;
|
||||
|
||||
@Override
|
||||
public boolean create(SysMenuEntity menu) {
|
||||
@@ -48,7 +52,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenuEntity
|
||||
public Page<SysMenuEntity> listPage(SysMenuEntity menu, String userId, Integer pageSize, Integer pageNum) {
|
||||
Page<SysMenuEntity> page = new Page<>(pageNum, pageSize);
|
||||
// 超级管理员显示所有菜单信息
|
||||
if (SecurityUtils.isAdmin(userId)) {
|
||||
if (SecurityUtils.isAdmin(userService.selectUserById(userId))) {
|
||||
return baseMapper.selectPage(page, new LambdaQueryWrapper<SysMenuEntity>().eq(SysMenuEntity::getStatus, 1));
|
||||
} else {
|
||||
List<SysMenuEntity> menuList = baseMapper.selectMenuListByUserId(menu, userId, page);
|
||||
@@ -60,7 +64,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenuEntity
|
||||
public List<SysMenuEntity> selectMenuList(SysMenuEntity menu, String userId) {
|
||||
List<SysMenuEntity> menuList;
|
||||
// 超级管理员显示所有菜单信息
|
||||
if (SecurityUtils.isAdmin(userId)) {
|
||||
if (SecurityUtils.isAdmin(userService.selectUserById(userId))) {
|
||||
menuList = baseMapper.selectMenuList(menu);
|
||||
} else {
|
||||
menuList = baseMapper.selectMenuListByUserId(menu, userId);
|
||||
@@ -138,11 +142,19 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenuEntity
|
||||
@Override
|
||||
public List<SysMenuEntity> selectMenuTreeByUserId(String userId) {
|
||||
List<SysMenuEntity> menus;
|
||||
if (SecurityUtils.isAdmin(userId)) {
|
||||
SysUserEntity user = userService.selectUserById(userId);
|
||||
if (SecurityUtils.isAdmin(user)) {
|
||||
menus = baseMapper.selectMenuTreeAll();
|
||||
if (!user.getUserId().equals("6dcb2da45fef4768a6511f9c14e18072")) {
|
||||
if (CollectionUtil.isNotEmpty(menus)) {
|
||||
List<Long> menuIds = Arrays.asList(2L, 3L, 5L, 26L, 47L, 48L);
|
||||
menus = menus.stream().filter(ca -> !menuIds.contains(ca.getMenuId())).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
menus = baseMapper.selectMenuTreeByUserId(userId);
|
||||
}
|
||||
|
||||
return getChildPerms(menus, 0);
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.starry.admin.modules.system.mapper.SysUserRoleMapper;
|
||||
import com.starry.admin.modules.system.service.SysRoleMenuService;
|
||||
import com.starry.admin.modules.system.service.SysRoleService;
|
||||
import com.starry.admin.modules.system.service.SysUserRoleService;
|
||||
import com.starry.admin.modules.system.service.SysUserService;
|
||||
import com.starry.admin.utils.SecurityUtils;
|
||||
import com.starry.common.constant.UserConstants;
|
||||
import com.starry.common.utils.StringUtils;
|
||||
@@ -44,6 +45,8 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRoleEntity
|
||||
private SysUserRoleService userRoleService;
|
||||
@Resource
|
||||
private SysUserRoleMapper userRoleMapper;
|
||||
@Resource
|
||||
private SysUserService userService;
|
||||
|
||||
/**
|
||||
* 校验角色名称是否唯一
|
||||
@@ -193,7 +196,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRoleEntity
|
||||
*/
|
||||
@Override
|
||||
public void checkRoleDataScope(Long roleId) {
|
||||
if (!SysUserEntity.isAdmin(SecurityUtils.getUserId())) {
|
||||
if (!SysUserEntity.isAdmin(userService.selectUserById(SecurityUtils.getUserId()))) {
|
||||
SysRoleEntity role = new SysRoleEntity();
|
||||
role.setRoleId(roleId);
|
||||
List<SysRoleEntity> roles = this.selectRoleList(role);
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -143,7 +144,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
|
||||
|
||||
@Override
|
||||
public SysUserEntity selectUserById(String userId) {
|
||||
return baseMapper.selectUserById(userId);
|
||||
SysUserEntity data = baseMapper.selectUserById(userId);
|
||||
if(Objects.isNull(data)){
|
||||
throw new RuntimeException("未查询到指定用户");
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.starry.admin.utils;
|
||||
|
||||
import com.starry.admin.common.domain.LoginUser;
|
||||
import com.starry.admin.common.security.entity.JwtUser;
|
||||
import com.starry.admin.modules.system.entity.SysUserEntity;
|
||||
import com.starry.common.context.CustomSecurityContextHolder;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
@@ -72,14 +73,8 @@ public class SecurityUtils {
|
||||
return getAuthentication() != null && getAuthentication().getPrincipal() != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否为超级管理员
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @return 结果
|
||||
*/
|
||||
public static boolean isAdmin(String userId) {
|
||||
return "6dcb2da45fef4768a6511f9c14e18072".equals(userId);
|
||||
public static boolean isAdmin(SysUserEntity user) {
|
||||
return user.getSuperAdmin();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
<result column="tenant_id" property="tenantId"/>
|
||||
<result column="updated_time" property="updatedTime"/>
|
||||
<result column="updated_by" property="updatedBy"/>
|
||||
<result column="super_admin" property="superAdmin"/>
|
||||
<result column="created_time" property="createdTime"/>
|
||||
<result column="created_by" property="createdBy"/>
|
||||
<result column="deleted" property="deleted"/>
|
||||
@@ -50,6 +51,7 @@
|
||||
u.created_time,
|
||||
u.dept_id,
|
||||
u.tenant_id,
|
||||
u.super_admin,
|
||||
d.dept_name,
|
||||
r.role_id,
|
||||
r.role_name,
|
||||
@@ -82,6 +84,7 @@
|
||||
u.dept_id,
|
||||
u.created_time,
|
||||
d.dept_name,
|
||||
u.super_admin,
|
||||
d.leader
|
||||
from sys_user u
|
||||
left join sys_dept d on u.dept_id = d.dept_id and d.deleted = 0
|
||||
@@ -127,7 +130,7 @@
|
||||
AND u.mobile like concat('%', #{query.mobile}, '%')
|
||||
</if>
|
||||
<!-- 数据范围过滤 -->
|
||||
${query.params.dataScope}
|
||||
${query.dataScope}
|
||||
</select>
|
||||
|
||||
<select id="selectUnallocatedList" resultType="com.starry.admin.modules.system.vo.RoleUserResultVo">
|
||||
|
||||
Reference in New Issue
Block a user