From 3a45da15c947c2d478a44a51bd0f926647b1b841 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 11 四月 2025 16:33:17 +0800
Subject: [PATCH] 提交

---
 server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java |   24 +++++++++++++++++++-----
 1 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java b/server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java
index 10bcf6d..bab1c58 100644
--- a/server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java
+++ b/server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java
@@ -15,6 +15,7 @@
 import com.doumee.service.system.SystemPermissionService;
 import com.doumee.service.system.SystemRoleService;
 import com.doumee.service.system.SystemUserService;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.authc.AuthenticationInfo;
 import org.apache.shiro.authc.AuthenticationToken;
@@ -102,11 +103,11 @@
         if(!Constants.equalsInteger(user.getStatus(),Constants.ZERO)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璐﹀彿淇℃伅宸茶绂佺敤锛屽鏈夌枒闂鑱旂郴绯荤粺绠$悊鍛橈紒");
         }
+        List<SystemRole> roles = null;
+        List<SystemPermission> permissions =null;
         // 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅
-        List<SystemRole> roles = systemRoleService.findByUserId(user.getId());
-        List<SystemPermission> permissions = systemPermissionService.findByUserId(user.getId());
-        LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions);
-        if(authenticationToken.getUserType() == 0){
+         if(authenticationToken.getUserType() == 0){
+            roles =   systemRoleService.findByUserId(user.getId());
             CompanyPermission c = new CompanyPermission();
             c.setUserId(user.getId());
             c.setIsdeleted(Constants.ZERO);
@@ -119,14 +120,27 @@
                     user.getCompanyIdList().add(cc.getCompanyId());
                 }
             }
+            permissions =  systemPermissionService.findByUserId(user.getId());
         }else{
             Company company = companyService.findById(user.getCompanyId());
             if(company == null){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝浼佷笟璐﹀彿淇℃伅涓嶆纭紒");
             }
             user.setCompany(company);
+            if(StringUtils.equals(company.getUsername(),user.getUsername())){
+                //濡傛灉鏄秴绠★紝
+                SystemRole role = new SystemRole();
+                role.setType(Constants.ONE);
+                role.setDeleted(Boolean.FALSE);
+                roles =   systemRoleService.findList(role);
+                SystemPermission p = new SystemPermission();
+                permissions =  systemPermissionService.findList(p,user.getType());
+            }else{
+                roles =   systemRoleService.findByUserId(user.getId());
+                permissions =  systemPermissionService.findByUserId(user.getId());
+            }
         }
-
+        LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions);
         // 楠岃瘉鐢ㄦ埛
         return new SimpleAuthenticationInfo(userInfo, user.getPassword(), this.getName());
     }

--
Gitblit v1.9.3