All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.didiglobal.logi.security.service.UserResourceService Maven / Gradle / Ivy

There is a newer version: 1.4.0
Show newest version
package com.didiglobal.logi.security.service;

import com.didiglobal.logi.security.common.PagingData;
import com.didiglobal.logi.security.common.dto.resource.*;
import com.didiglobal.logi.security.common.enums.resource.ControlLevelCode;
import com.didiglobal.logi.security.common.vo.resource.MByRDataVO;
import com.didiglobal.logi.security.common.vo.resource.MByRVO;
import com.didiglobal.logi.security.common.vo.resource.MByUDataVO;
import com.didiglobal.logi.security.common.vo.resource.MByUVO;
import com.didiglobal.logi.security.exception.LogiSecurityException;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author cjm
 * 管理用户拥有的资源权限
 */
public interface UserResourceService {

    /**
     * 根据用户id和指定条件,获取用户拥有权限的具体资源个数
     * @param userId 用户id
     * @param queryDTO 查询条件
     * @return 用户idList
     */
    int getResourceCntByUserId(Integer userId, UserResourceQueryDTO queryDTO);

    /**
     * 资源权限管理/按资源管理的列表信息
     * 获取分页列表信息
     * @param queryDTO 查询条件
     * @return 资源权限管理(按资源管理的列表信息)分页信息
     * @throws LogiSecurityException 异常信息
     */
    PagingData getManageByResourcePage(MByRQueryDTO queryDTO) throws LogiSecurityException;

    /**
     * 资源权限管理/按用户管理的列表信息
     * 获取分页列表信息
     * @param queryDTO 查询条件
     * @return 资源权限管理(按用户管理的列表信息)分页信息
     */
    PagingData getManageByUserPage(MByUQueryDTO queryDTO);

    /**
     * 分配资源的权限给用户(N资源权限分配给某用户)
     * @param assignDTO 分配信息
     * @throws LogiSecurityException 异常信息
     */
    void assignResourcePermission(AssignToOneUserDTO assignDTO) throws LogiSecurityException;

    /**
     * 分配资源的权限给用户(某资源权限分配N个用户)
     * @param assignDTO 分配信息
     * @param request 请求信息
     * @throws LogiSecurityException 异常信息
     */
    void assignResourcePermission(AssignToManyUserDTO assignDTO,
                                  HttpServletRequest request) throws LogiSecurityException;

    /**
     * 批量分配资源的权限给用户
     * 按资源管理下的批量分配用户:分配之前先删除N资源先前已分配的用户
     * 按用户管理下的批量分配资源:分配之前先删除N用户已拥有的资源权限
     * @param assignDTO 分配信息
     * @param request 请求信息
     * @throws LogiSecurityException 异常信息
     */
    void batchAssignResourcePermission(BatchAssignDTO assignDTO,
                                       HttpServletRequest request) throws LogiSecurityException;

    /**
     * 资源权限管理/按用户管理/分配资源/数据列表的信息
     * @param queryDTO 查询条件
     * @return 数据列表信息
     * @throws LogiSecurityException 异常信息
     */
    List getManagerByUserDataList(MByUDataQueryDTO queryDTO) throws LogiSecurityException;

    /**
     * 资源权限管理/按资源管理/分配用户/数据列表的信息
     * @param queryDTO 查询条件
     * @return 数据列表信息
     * @throws LogiSecurityException 异常信息
     */
    List getManagerByResourceDataList(MByRDataQueryDTO queryDTO) throws LogiSecurityException;

    /**
     * 获取资源查看权限控制状态
     * @return true开启,false关闭
     */
    boolean getViewPermissionControlStatus();

    /**
     * 调用该接口则资源查看权限控制状态被反转
     */
    void changeResourceViewControlStatus();

    /**
     * 获取用户拥有资源管理权限类别(级别)
     * @param queryDTO 查询条件
     * @return 资源管理权限类别枚举
     * @throws LogiSecurityException 用户、项目、资源类别、具体资源id 不可为空
     */
    ControlLevelCode getControlLevel(ControlLevelQueryDTO queryDTO) throws LogiSecurityException;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy