fix: 用户被禁用、店铺被禁用、管理员被禁用,token未被清除问题处理。
This commit is contained in:
@@ -30,6 +30,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@@ -161,7 +162,7 @@ public class AdminUserManagerController {
|
||||
@ApiOperation(value = "添加用户")
|
||||
public ResultMessage<Object> register(@Valid AdminUserDTO adminUser,
|
||||
@RequestParam(required = false) List<String> roles) {
|
||||
int rolesMaxSize=10;
|
||||
int rolesMaxSize = 10;
|
||||
try {
|
||||
if (roles != null && roles.size() >= rolesMaxSize) {
|
||||
throw new ServiceException(ResultCode.PERMISSION_BEYOND_TEN);
|
||||
@@ -183,6 +184,14 @@ public class AdminUserManagerController {
|
||||
}
|
||||
user.setStatus(status);
|
||||
adminUserService.updateById(user);
|
||||
|
||||
//登出用户
|
||||
if (Boolean.FALSE.equals(status)) {
|
||||
List<String> userIds = new ArrayList<>();
|
||||
userIds.add(userId);
|
||||
adminUserService.logout(userIds);
|
||||
}
|
||||
|
||||
return ResultUtil.success();
|
||||
}
|
||||
|
||||
|
||||
@@ -86,7 +86,8 @@ public class ManagerAuthenticationFilter extends BasicAuthenticationFilter {
|
||||
//如果不是超级管理员, 则鉴权
|
||||
if (Boolean.FALSE.equals(authUser.getIsSuper())) {
|
||||
//获取缓存中的权限
|
||||
Map<String, List<String>> permission = (Map<String, List<String>>) cache.get(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER) + authUser.getId());
|
||||
Map<String, List<String>> permission =
|
||||
(Map<String, List<String>>) cache.get(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.MANAGER) + authUser.getId());
|
||||
|
||||
//获取数据(GET 请求)权限
|
||||
if (request.getMethod().equals(RequestMethod.GET.name())) {
|
||||
@@ -143,7 +144,7 @@ public class ManagerAuthenticationFilter extends BasicAuthenticationFilter {
|
||||
AuthUser authUser = new Gson().fromJson(json, AuthUser.class);
|
||||
|
||||
//校验redis中是否有权限
|
||||
if (cache.hasKey(CachePrefix.ACCESS_TOKEN.getPrefix(UserEnums.MANAGER) + jwt)) {
|
||||
if (cache.hasKey(CachePrefix.ACCESS_TOKEN.getPrefix(UserEnums.MANAGER, authUser.getId()) + jwt)) {
|
||||
//用户角色
|
||||
List<GrantedAuthority> auths = new ArrayList<>();
|
||||
auths.add(new SimpleGrantedAuthority("ROLE_" + authUser.getRole().name()));
|
||||
|
||||
Reference in New Issue
Block a user