fix: 修复权限更新后,登录用户权限没有更新问题。
This commit is contained in:
@@ -170,8 +170,6 @@ public class ClerkServiceImpl extends ServiceImpl<ClerkMapper, Clerk> implements
|
||||
if (!clerkEditDTO.getRoles().isEmpty()) {
|
||||
clerk.setRoleIds(CharSequenceUtil.join(",", clerkEditDTO.getRoles()));
|
||||
}
|
||||
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE) + UserContext.getCurrentUser().getId());
|
||||
cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix() + UserContext.getCurrentUser().getId());
|
||||
}
|
||||
|
||||
//部门校验
|
||||
@@ -182,6 +180,18 @@ public class ClerkServiceImpl extends ServiceImpl<ClerkMapper, Clerk> implements
|
||||
throw new ServiceException(ResultCode.PERMISSION_NOT_FOUND_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
//判断用户角色权限不为超级会员且权限路径不为空
|
||||
if (Boolean.FALSE.equals(clerkEditDTO.getIsSuper()) && clerkEditDTO.getRoles() != null) {
|
||||
//添加店员用户角色
|
||||
List<StoreClerkRole> storeClerkRoleList = new ArrayList<>();
|
||||
|
||||
clerkEditDTO.getRoles().forEach(a -> storeClerkRoleList.add(StoreClerkRole.builder().clerkId(clerk.getId()).roleId(a).build()));
|
||||
|
||||
storeClerkRoleService.saveBatch(storeClerkRoleList);
|
||||
cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE) + UserContext.getCurrentUser().getId());
|
||||
cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix() + UserContext.getCurrentUser().getId());
|
||||
}
|
||||
clerk.setIsSuper(clerkEditDTO.getIsSuper());
|
||||
this.updateById(clerk);
|
||||
return clerk;
|
||||
|
||||
@@ -18,7 +18,6 @@ import cn.lili.modules.member.mapper.StoreMenuMapper;
|
||||
import cn.lili.modules.member.service.ClerkService;
|
||||
import cn.lili.modules.member.service.StoreMenuRoleService;
|
||||
import cn.lili.modules.member.service.StoreMenuService;
|
||||
import cn.lili.modules.member.token.StoreTokenGenerate;
|
||||
import cn.lili.modules.permission.entity.dto.MenuSearchParams;
|
||||
import cn.lili.mybatis.util.PageUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -56,8 +55,6 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
|
||||
private ClerkService clerkService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private StoreTokenGenerate storeTokenGenerate;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -95,14 +92,6 @@ public class StoreMenuServiceImpl extends ServiceImpl<StoreMenuMapper, StoreMenu
|
||||
menuList = this.baseMapper.findByUserId(clerkId);
|
||||
cache.put(cacheKey, menuList);
|
||||
}
|
||||
|
||||
String permissionCacheKey = CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE) + userId;
|
||||
Map<String, List<String>> permission = (Map<String, List<String>>) cache.get(permissionCacheKey);
|
||||
if (permission == null || permission.isEmpty()) {
|
||||
permission = storeTokenGenerate.permissionList(storeMenuRoleService.findAllMenu(clerkId, userId));
|
||||
cache.put(permissionCacheKey, permission);
|
||||
}
|
||||
|
||||
return menuList;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,6 @@ import cn.lili.modules.permission.entity.vo.UserMenuVO;
|
||||
import cn.lili.modules.permission.mapper.MenuMapper;
|
||||
import cn.lili.modules.permission.service.MenuService;
|
||||
import cn.lili.modules.permission.service.RoleMenuService;
|
||||
import cn.lili.modules.system.token.ManagerTokenGenerate;
|
||||
import cn.lili.mybatis.util.PageUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -43,8 +42,6 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
|
||||
@Autowired
|
||||
private RoleMenuService roleMenuService;
|
||||
|
||||
@Autowired
|
||||
private ManagerTokenGenerate managerTokenGenerate;
|
||||
|
||||
@Autowired
|
||||
private Cache cache;
|
||||
@@ -83,11 +80,6 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
|
||||
//每5分钟重新确认用户权限
|
||||
cache.put(cacheKey, menuList, 300L);
|
||||
}
|
||||
String permissionCacheKey = CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER) + userId;
|
||||
Map<String, List<String>> permission = (Map<String, List<String>>) cache.get(permissionCacheKey);
|
||||
if (permission == null || permission.isEmpty()) {
|
||||
cache.put(permissionCacheKey, this.managerTokenGenerate.permissionList(this.findAllMenu(userId)));
|
||||
}
|
||||
return menuList;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user