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