jiangping
2024-01-22 ac1c48e5ae523ec6f62366542478bc5d451326a0
server/platform/src/main/java/com/doumee/shiro/ShiroRealm.java
@@ -4,9 +4,11 @@
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.CompanyPermission;
import com.doumee.dao.system.model.SystemPermission;
import com.doumee.dao.system.model.SystemRole;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.CompanyPermissionService;
import com.doumee.service.system.SystemDataPermissionService;
import com.doumee.service.system.SystemPermissionService;
import com.doumee.service.system.SystemRoleService;
@@ -23,6 +25,7 @@
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
/**
@@ -39,6 +42,9 @@
    @Lazy
    @Autowired
    private SystemUserService systemUserService;
    @Lazy
    @Autowired
    private CompanyPermissionService companyPermissionService;
    @Lazy
    @Autowired
@@ -88,6 +94,18 @@
        List<SystemRole> roles = systemRoleService.findByUserId(user.getId());
        List<SystemPermission> permissions = systemPermissionService.findByUserId(user.getId());
        LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions);
        CompanyPermission c = new CompanyPermission();
        c.setUserId(user.getId());
        c.setIsdeleted(Constants.ZERO);
        List<CompanyPermission> pList = companyPermissionService.findList(c);
        if(pList!=null){
            for (CompanyPermission cc : pList){
                if(user.getCompanyIdList() == null){
                    user.setCompanyIdList(new ArrayList<>());
                }
                user.getCompanyIdList().add(cc.getCompanyId());
            }
        }
        // 验证用户
        return new SimpleAuthenticationInfo(userInfo, user.getPassword(), this.getName());
    }