From 352d337c355f60909d9dd24bd613c12ea92f8015 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 14 九月 2023 17:47:50 +0800
Subject: [PATCH] 组织bug

---
 server/src/main/java/doumeemes/config/shiro/ShiroRealm.java |  138 ++++++++++++++++++++++++----------------------
 1 files changed, 72 insertions(+), 66 deletions(-)

diff --git a/server/src/main/java/doumeemes/config/shiro/ShiroRealm.java b/server/src/main/java/doumeemes/config/shiro/ShiroRealm.java
index 6c0da35..d87601b 100644
--- a/server/src/main/java/doumeemes/config/shiro/ShiroRealm.java
+++ b/server/src/main/java/doumeemes/config/shiro/ShiroRealm.java
@@ -90,76 +90,82 @@
     protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
         // 鑾峰彇鐢ㄦ埛鍚�
         ShiroToken authenticationToken =(ShiroToken) token;
-        String username = authenticationToken.getPrincipal().toString();
-        boolean isDdLogin = authenticationToken.getDdLogin();
-        // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞�
-        SystemUser queryDto = new SystemUser();
-        queryDto.setUsername(username);
-        queryDto.setDeleted(Boolean.FALSE);
-        SystemUser user = systemUserService.findOne(queryDto);
-        if (user == null) {
-            return null;
-        }
-        SystemRole role = new SystemRole();
-        SystemPermission per = new SystemPermission();
-        DepartmentExtListVO rootDepart = null,comDepart=null, depart = null;
-        List<Integer> dpList = null;
-        CompanyExtListVO com = null;
-        CompanyUserExtListVO cu =null;
-        if(Constants.equalsInteger(user.getType(),Constants.PlatType.admin)){
-            //濡傛灉鏄钩鍙扮敤鎴�
-            role.setType(Constants.ROLETYPE.plat);
-            per.setType(Constants.PlatType.admin);
+        if(authenticationToken .getUpdateFlag() == 1){
+            //濡傛灉鏄洿鏂皊ession
+            return new SimpleAuthenticationInfo(authenticationToken.getUpdateUser(), authenticationToken.getPassword(), this.getName());
         }else{
-            if(authenticationToken.getCompanyId() == null){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ヨ处鎴峰垹闄わ紒");
+            String username = authenticationToken.getPrincipal().toString();
+            boolean isDdLogin = authenticationToken.getDdLogin();
+            // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞�
+            SystemUser queryDto = new SystemUser();
+            queryDto.setUsername(username);
+            queryDto.setDeleted(Boolean.FALSE);
+            SystemUser user = systemUserService.findOne(queryDto);
+            if (user == null) {
+                return null;
             }
-            com = companyExtService.getModelById(authenticationToken.getCompanyId());
-            if(com == null || Constants.equalsInteger( com.getDeleted(),Constants.ONE)){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヨ处鎴峰垹闄わ紒璇疯仈绯荤鐞嗗憳");
-            }
-            if(Constants.equalsInteger( com.getStatus(),Constants.ZERO) ){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヤ紒涓氬凡绂佺敤锛�");
-            }
-            if(com.getOepnValidDate() != null && com.getOepnValidDate().before(new Date())){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヤ紒涓氬凡杩囦娇鐢ㄦ湁鏁堟湡锛�");
-            }
-            //濡傛灉鏄紒涓氱敤鎴�
-            QueryCompanyUserExtDTO c =new QueryCompanyUserExtDTO();
-            c.setUserId(user.getId());
-            c.setDeleted(Constants.ZERO);
-            c.setCompanyId(authenticationToken.getCompanyId());
-            cu = companyUserExtService.selectOne(c);
-            if(cu == null){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヤ紒涓氱敤鎴蜂笉瀛樺湪锛�");
-            }
-            if(Constants.equalsInteger(cu.getStatus(),Constants.ONE)){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヤ紒涓氱敤鎴峰凡绂佺敤锛�");
-            }
-            rootDepart = departmentExtService.getModelById(c.getCompanyId(),cu.getRootDepartId());
-            comDepart = departmentExtService.getModelById(c.getCompanyId(),cu.getComDepartId());
-            depart = departmentExtService.getModelById(c.getCompanyId(),cu.getDepartmentId());
-            if(rootDepart == null || comDepart == null || depart==null){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヤ紒涓氱敤鎴疯处鎴峰紓甯革紒");
-            }
-            role.setCompanyId(authenticationToken.getCompanyId());
-            role.setType(Constants.ROLETYPE.com);
-            per.setType(Constants.PlatType.company);
-            per.setRoleType(Constants.ROLETYPE.com);
-            per.setCompanyId(authenticationToken.getCompanyId());
-            SystemRole rt = new SystemRole();
-            rt.setType(Constants.ROLETYPE.com);
-            rt.setCompanyId(c.getCompanyId());
-            //鏁版嵁閮ㄩ棬鏉冮檺闆嗗悎
-            dpList =systemDataPermissionService.selectHighRole(new SystemDataPermission(),rt,user,depart);
+            SystemRole role = new SystemRole();
+            SystemPermission per = new SystemPermission();
+            DepartmentExtListVO rootDepart = null,comDepart=null, depart = null;
+            List<Integer> dpList = null;
+            CompanyExtListVO com = null;
+            CompanyUserExtListVO cu =null;
+            if(Constants.equalsInteger(user.getType(),Constants.PlatType.admin)){
+                //濡傛灉鏄钩鍙扮敤鎴�
+                role.setType(Constants.ROLETYPE.plat);
+                per.setType(Constants.PlatType.admin);
+            }else{
+                if(authenticationToken.getCompanyId() == null){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ヨ处鎴峰垹闄わ紒");
+                }
+                com = companyExtService.getModelById(authenticationToken.getCompanyId());
+                if(com == null || Constants.equalsInteger( com.getDeleted(),Constants.ONE)){
+                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヨ处鎴峰垹闄わ紒璇疯仈绯荤鐞嗗憳");
+                }
+                if(Constants.equalsInteger( com.getStatus(),Constants.ZERO) ){
+                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヤ紒涓氬凡绂佺敤锛�");
+                }
+                if(com.getOepnValidDate() != null && com.getOepnValidDate().before(new Date())){
+                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヤ紒涓氬凡杩囦娇鐢ㄦ湁鏁堟湡锛�");
+                }
+                //濡傛灉鏄紒涓氱敤鎴�
+                QueryCompanyUserExtDTO c =new QueryCompanyUserExtDTO();
+                c.setUserId(user.getId());
+                c.setDeleted(Constants.ZERO);
+                c.setCompanyId(authenticationToken.getCompanyId());
+                cu = companyUserExtService.selectOne(c);
+                if(cu == null){
+                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヤ紒涓氱敤鎴蜂笉瀛樺湪锛�");
+                }
+                if(Constants.equalsInteger(cu.getStatus(),Constants.ONE)){
+                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヤ紒涓氱敤鎴峰凡绂佺敤锛�");
+                }
+                rootDepart = departmentExtService.getModelById(c.getCompanyId(),cu.getRootDepartId());
+                comDepart = departmentExtService.getModelById(c.getCompanyId(),cu.getComDepartId());
+                depart = departmentExtService.getModelById(c.getCompanyId(),cu.getDepartmentId());
+                if(rootDepart == null || comDepart == null || depart==null){
+                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヤ紒涓氱敤鎴疯处鎴峰紓甯革紒");
+                }
+                role.setCompanyId(authenticationToken.getCompanyId());
+                role.setType(Constants.ROLETYPE.com);
+                per.setType(Constants.PlatType.company);
+                per.setRoleType(Constants.ROLETYPE.com);
+                per.setCompanyId(authenticationToken.getCompanyId());
+                SystemRole rt = new SystemRole();
+                rt.setType(Constants.ROLETYPE.com);
+                rt.setCompanyId(c.getCompanyId());
+                //鏁版嵁閮ㄩ棬鏉冮檺闆嗗悎
+                dpList =systemDataPermissionService.selectHighRole(new SystemDataPermission(),rt,user,depart);
 
+            }
+            // 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅
+            List<SystemRole> roles = systemRoleService.findByUserModel(user.getId(),role);
+            List<SystemPermission> permissions = systemPermissionService.findByUserModel(user.getId(),per);
+            LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions,com,rootDepart,comDepart,depart,dpList,cu);
+            // 楠岃瘉鐢ㄦ埛
+            return new SimpleAuthenticationInfo(userInfo, user.getPassword(), this.getName());
         }
-        // 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅
-        List<SystemRole> roles = systemRoleService.findByUserModel(user.getId(),role);
-        List<SystemPermission> permissions = systemPermissionService.findByUserModel(user.getId(),per);
-        LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions,com,rootDepart,comDepart,depart,dpList,cu);
-        // 楠岃瘉鐢ㄦ埛
-        return new SimpleAuthenticationInfo(userInfo, user.getPassword(), this.getName());
+
     }
 
 }

--
Gitblit v1.9.3