Search in sources :

Example 6 with SysPermission

use of com.company.project.entity.SysPermission in project springboot-manager by aitangbao.

the class PermissionServiceImpl method deleted.

/**
 * 删除菜单权限
 * 判断是否 有角色关联
 * 判断是否有子集
 */
@Transactional(rollbackFor = Exception.class)
@Override
public void deleted(String permissionId) {
    // 获取关联userId
    List<String> userIds = getUserIdsById(permissionId);
    SysPermission sysPermission = sysPermissionMapper.selectById(permissionId);
    if (null == sysPermission) {
        log.error("传入 的 id:{}不合法", permissionId);
        throw new BusinessException(BaseResponseCode.DATA_ERROR);
    }
    // 获取下一级
    List<SysPermission> childs = sysPermissionMapper.selectList(Wrappers.<SysPermission>lambdaQuery().eq(SysPermission::getPid, permissionId));
    if (!CollectionUtils.isEmpty(childs)) {
        throw new BusinessException(BaseResponseCode.ROLE_PERMISSION_RELATION);
    }
    sysPermissionMapper.deleteById(permissionId);
    // 删除和角色关联
    rolePermissionService.remove(Wrappers.<SysRolePermission>lambdaQuery().eq(SysRolePermission::getPermissionId, permissionId));
    if (!CollectionUtils.isEmpty(userIds)) {
        // 刷新权限
        userIds.parallelStream().forEach(httpSessionService::refreshUerId);
    }
}
Also used : SysRolePermission(com.company.project.entity.SysRolePermission) BusinessException(com.company.project.common.exception.BusinessException) SysPermission(com.company.project.entity.SysPermission) Transactional(org.springframework.transaction.annotation.Transactional)

Example 7 with SysPermission

use of com.company.project.entity.SysPermission in project springboot-manager by aitangbao.

the class PermissionServiceImpl method getPermissionsByUserId.

/**
 * 获取权限标识
 */
@Override
public Set<String> getPermissionsByUserId(String userId) {
    List<SysPermission> list = getPermission(userId);
    Set<String> permissions = new HashSet<>();
    if (CollectionUtils.isEmpty(list)) {
        return null;
    }
    for (SysPermission sysPermission : list) {
        if (!StringUtils.isEmpty(sysPermission.getPerms())) {
            permissions.add(sysPermission.getPerms());
        }
    }
    return permissions;
}
Also used : SysPermission(com.company.project.entity.SysPermission) HashSet(java.util.HashSet)

Example 8 with SysPermission

use of com.company.project.entity.SysPermission in project springboot-manager by aitangbao.

the class PermissionServiceImpl method selectAllMenuByTree.

/**
 * 获取所有的目录菜单树排除按钮
 * 因为不管是新增或者修改
 * 选择所属菜单目录的时候
 * 都不可能选择到按钮
 * 而且编辑的时候 所属目录不能
 * 选择自己和它的子类
 */
@Override
public List<PermissionRespNode> selectAllMenuByTree(String permissionId) {
    List<SysPermission> list = selectAll();
    if (!CollectionUtils.isEmpty(list) && !StringUtils.isEmpty(permissionId)) {
        for (SysPermission sysPermission : list) {
            if (sysPermission.getId().equals(permissionId)) {
                list.remove(sysPermission);
                break;
            }
        }
    }
    List<PermissionRespNode> result = new ArrayList<>();
    // 新增顶级目录是为了方便添加一级目录
    PermissionRespNode respNode = new PermissionRespNode();
    respNode.setId("0");
    respNode.setTitle("默认顶级菜单");
    respNode.setSpread(true);
    respNode.setChildren(getTree(list, true));
    result.add(respNode);
    return result;
}
Also used : ArrayList(java.util.ArrayList) SysPermission(com.company.project.entity.SysPermission) PermissionRespNode(com.company.project.vo.resp.PermissionRespNode)

Aggregations

SysPermission (com.company.project.entity.SysPermission)8 PermissionRespNode (com.company.project.vo.resp.PermissionRespNode)4 ArrayList (java.util.ArrayList)4 BusinessException (com.company.project.common.exception.BusinessException)3 LogAnnotation (com.company.project.common.aop.annotation.LogAnnotation)1 SysRolePermission (com.company.project.entity.SysRolePermission)1 ApiOperation (io.swagger.annotations.ApiOperation)1 HashSet (java.util.HashSet)1 RequiresPermissions (org.apache.shiro.authz.annotation.RequiresPermissions)1 Transactional (org.springframework.transaction.annotation.Transactional)1