| | |
| | | import com.vci.ubcs.system.mapper.ClassifyAuthMapper; |
| | | import com.vci.ubcs.system.service.IClassifyAuthService; |
| | | import com.vci.ubcs.system.service.IMenuService; |
| | | import com.vci.ubcs.system.service.IRoleService; |
| | | import com.vci.ubcs.system.vo.ClassifyAuthVO; |
| | | import com.vci.ubcs.system.wrapper.ClassifyAuthWrapper; |
| | | import lombok.AllArgsConstructor; |
| | |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | |
| | | private final IMenuService menuService; |
| | | |
| | | private final ICodeClassifyClient codeClassifyClient; |
| | | |
| | | private final IRoleService roleService; |
| | | |
| | | /** |
| | | * 三员管理角色编号配置:分别为系统管理员,安全管理员,审计管理员顺序 |
| | | */ |
| | | @Value("#{'${ssa.ssa-names}'.split(',')}") |
| | | private List<String> SSANAMES; |
| | | |
| | | /** |
| | | * 分类授权保存接口 |
| | |
| | | return this.classifyAuthMapper.getViewClassByRoleIds(roleIds, authType,buttonCode,menuCode); |
| | | } |
| | | |
| | | /** |
| | | * 根据角色名称分类id授予默认的分类权限和主数据访问权限 |
| | | * @param classifyAuthDTO |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R saveAddClassifyDefaultAuth(ClassifyAuthDTO classifyAuthDTO) throws ServiceException{ |
| | | if (Func.isEmpty(classifyAuthDTO.getClassifyId())) { |
| | | return R.fail("未获取到分类id"); |
| | | } |
| | | // 配置的系统管理员名称 |
| | | String sysAdmin = SSANAMES.get(0); |
| | | List<ClassifyAuth> classifyAuths = new ArrayList<>(); |
| | | //先默认生成系统管理员的授权数据 |
| | | ClassifyAuth classifyAuth = new ClassifyAuth(); |
| | | classifyAuth.setClassifyId(classifyAuthDTO.getClassifyId()); |
| | | classifyAuth.setAuthType("classify_auth"); |
| | | String roleIds = roleService.getRoleIds(AuthUtil.getTenantId(), sysAdmin); |
| | | if(Func.isBlank(roleIds)){ |
| | | return R.fail(AuthUtil.getTenantId()+"租户下未找到,名为"+sysAdmin+"系统管理员角色!"); |
| | | } |
| | | classifyAuth.setRoleId(roleIds); |
| | | List<Menu> classifyTreeMenus = menuService.getButtonsByRoleId(roleIds, "classifyTree"); |
| | | if(!classifyTreeMenus.isEmpty()){ |
| | | String menuIds = classifyTreeMenus.stream() |
| | | .map(menu -> String.valueOf(menu.getId())) |
| | | .collect(Collectors.joining(",")); |
| | | classifyAuth.setButtonIds(menuIds); |
| | | classifyAuths.add(classifyAuth); |
| | | } |
| | | /*ClassifyAuth dataAuth = new ClassifyAuth(); |
| | | dataAuth.setAuthType("data_auth"); |
| | | dataAuth.setClassifyId(classifyAuthDTO.getClassifyId()); |
| | | dataAuth.setRoleId(roleIds); |
| | | List<Menu> masterDatas = menuService.getButtonsByRoleId(roleIds, classifyAuthDTO.getClassId()); |
| | | if(!masterDatas.isEmpty()){ |
| | | String menuIds = masterDatas.stream() |
| | | .map(menu -> String.valueOf(menu.getId())) |
| | | .collect(Collectors.joining(",")); |
| | | dataAuth.setButtonIds(menuIds); |
| | | classifyAuths.add(dataAuth); |
| | | }*/ |
| | | return R.status(this.saveBatch(classifyAuths)); |
| | | } |
| | | |
| | | } |