Browse Source

修复自定义权限不对的问题

hym 4 years ago
parent
commit
8db807a6c2

+ 19 - 6
user_auth/src/main/java/com/huaxu/controller/UserController.java

@@ -103,24 +103,37 @@ public class UserController {
         String roleKey="disableRole:"+roleId;
         String companyKey="disableCompany:"+currentUser.getCompanyId();
         String departmentKey="department:"+currentUser.getDepartmentId();
+        String userKey="disableUser:" + currentUser.getId();
         byte[] bytes = redisUtil.get(roleKey.getBytes());
         byte[] bytes2 = redisUtil.get(companyKey.getBytes());
         byte[] bytes3 = redisUtil.get(departmentKey.getBytes());
+        byte[] bytes4 = redisUtil.get(userKey.getBytes());
         String authorization = request.getHeader("Authorization");
         String token =authorization.substring(authorization.indexOf("Bearer")+6).trim();
         String tokenKey = "offlineStatus:" + token;
+        boolean flag=false;
         int status=0;
-        if(bytes==null){
+        if(bytes!=null){
             status=2;
+            flag=true;
         }
-        if(bytes2==null){
+        if(bytes2!=null){
             status=3;
+            flag=true;
         }
         if((currentUser.getDepartmentId()!=null&&bytes3!=null)){
             status=4;
+            flag=true;
         }
-        redisUtil.setExpire(tokenKey.getBytes(),
-                ByteArrayUtils.objectToBytes(status).get(), 1800);//15分钟过期
+        if(bytes4!=null){
+            status=5;
+            flag=true;
+        }
+        if(flag){
+            redisUtil.setExpire(tokenKey.getBytes(),
+                    ByteArrayUtils.objectToBytes(status).get(), 1800);//15分钟过期
+        }
+
 
         if(bytes!=null||bytes2!=null||(currentUser.getDepartmentId()!=null&&bytes3!=null)){
             return null;
@@ -149,8 +162,8 @@ public class UserController {
         return new AjaxMessage<>(ResultStatus.OK, result);
     }
     @RequestMapping(value = "getUserStatus", method = RequestMethod.POST)
-    @ApiOperation(value = "获取用户当前状态")
-    public AjaxMessage<Integer> getUserStatus(@ApiParam(value = "token", required = true)@RequestParam String accessToken) {
+    @ApiOperation(value = "获取用户当前状态",notes = "返回0代表超时,其他代表用户被禁用了")
+    public AjaxMessage<Integer> getUserStatus(@ApiParam(value = "accessToken", required = true)@RequestParam String accessToken) {
        String key="offlineStatus:"+ accessToken;
         byte[] bytes = redisUtil.get(key.getBytes());
         Optional<Integer> status = ByteArrayUtils.bytesToObject(bytes);

+ 4 - 4
user_auth/src/main/java/com/huaxu/service/impl/UserServiceImpl.java

@@ -195,10 +195,7 @@ public class UserServiceImpl implements UserService {
         UserDto userDto=new UserDto();
         userDto.setPhone(user.getPhone());
 
-        Set<GrantedAuthority> grantedAuthorities = new HashSet<>();
-        OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) SecurityContextHolder.getContext().getAuthentication();
-        LoginUser loginUser = (LoginUser) oAuth2Authentication.getPrincipal();
-        List<ProgramItem>programItems=new ArrayList<>();
+       List<ProgramItem>programItems=new ArrayList<>();
 
         Permission permission= findPermission(user);
 
@@ -245,6 +242,9 @@ public class UserServiceImpl implements UserService {
         */
 
 
+        Set<GrantedAuthority> grantedAuthorities = new HashSet<>();
+        OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) SecurityContextHolder.getContext().getAuthentication();
+        LoginUser loginUser = (LoginUser) oAuth2Authentication.getPrincipal();
 
         loginUser.setProgramItemList(programItems);
         loginUser.setName(user.getUsername());

+ 1 - 1
user_auth/src/main/resources/mapper/UserMapper.xml

@@ -252,7 +252,7 @@
          select d.ORG_ID orgId   from  uims_user_role b
 
         join uims_role_org d on b.ROLE_ID=d.ROLE_ID
-        where b.USER_ID=#{id}
+        where b.USER_ID=#{id} and b.status!=0 and d.status!=0
     </select>
     <select id="findOrgs" resultType="com.huaxu.entity.Org">
         select    ID, TENANT_ID, ORG_TYPE,

+ 1 - 3
user_center/src/main/java/com/huaxu/service/impl/OrgServiceImpl.java

@@ -208,7 +208,7 @@ public class OrgServiceImpl implements OrgService {
         if(currentUser.getDepartmentId()==null){
 
             trees=getOrgTreeByOrg(trees,currentUser.getCompanyId(),orgIds);
-        }{
+        }else {
             trees=getOrgTreeByOrg(trees,currentUser.getDepartmentId(),orgIds);
         }
 
@@ -246,8 +246,6 @@ public class OrgServiceImpl implements OrgService {
                 trees=orgMapper.selectTrees(org);
                 trees=getOrgTreeByOrg(trees,currentUser.getDepartmentId(),orgIds);
             }else{
-
-
                 trees=orgMapper.selectTrees(org);
                 trees=getOrgDepartmentTree(trees,id);