From deb4575b72443cf906946a9fb28a557c16556fb9 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期五, 01 十一月 2024 09:30:50 +0800 Subject: [PATCH] Merge branch '2.0.1' of http://139.186.142.91:10010/r/productDev/yunyibao into 2.0.1 --- server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java | 29 +++++++++++++++++++++++++---- 1 files changed, 25 insertions(+), 4 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..111f58a 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 @@ -6,6 +6,7 @@ import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.CompanyPermission; +import com.doumee.dao.system.model.SystemDataPermission; import com.doumee.dao.system.model.SystemPermission; import com.doumee.dao.system.model.SystemRole; import com.doumee.dao.system.model.SystemUser; @@ -15,6 +16,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 +104,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 +121,33 @@ 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()); + } } + SystemRole rt = new SystemRole(); + rt.setDeleted(Boolean.FALSE); + //鏁版嵁閮ㄩ棬鏉冮檺闆嗗悎 + user.setDepartIdList(systemDataPermissionService.selectHighRole(new SystemDataPermission(),rt,user)); + + LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions); // 楠岃瘉鐢ㄦ埛 return new SimpleAuthenticationInfo(userInfo, user.getPassword(), this.getName()); } -- Gitblit v1.9.3