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

org.noear.grit.service.ResourceLinkService Maven / Gradle / Ivy

There is a newer version: 1.9.2
Show newest version
package org.noear.grit.service;

import org.noear.grit.model.domain.ResourceEntity;
import org.noear.grit.model.domain.ResourceGroup;
import org.noear.grit.model.domain.ResourceSpace;
import org.noear.grit.model.domain.Subject;

import java.sql.SQLException;
import java.util.Collection;
import java.util.List;

/**
 * 资源关联服务
 *
 * @author noear
 * @since 1.0
 */
public interface ResourceLinkService {

    /**
     * 检测是否存在连接
     *
     * @param resourceId 资源Id
     * @param subjectId  主体Id
     */
    boolean hasResourceLink(long resourceId, long subjectId) throws SQLException;

    /**
     * 检测是否存在连接
     *
     * @param resourceId 资源Id
     * @param subjectIds 主体Ids
     */

    boolean hasResourceLinkBySubjects(long resourceId, Collection subjectIds) throws SQLException;

    /**
     * 获取资源授权过的所有主体
     *
     * @param resourceId 资源Id
     * @return 主体列表
     */
    List getSubjectListByResource(long resourceId) throws SQLException;

    /**
     * 获取主体所有的授权资源列表
     *
     * @param subjectId  主体Id
     * @param isVisibled 是否可见(null表示全部)
     * @return 资源列表
     */
    List getResourceEntityListBySubject(long subjectId, Boolean isVisibled) throws SQLException;


    /**
     * 获取主体在某一个资源组下的授权资源列表
     *
     * @param subjectId       主体Id
     * @param resourceGroupId 资源组Id
     * @return 资源列表
     */
    List getResourceEntityListBySubjectAndGroup(long subjectId, long resourceGroupId, Boolean isVisibled) throws SQLException;


    /**
     * 获取主体在某一个资源空间下的授权资源列表
     *
     * @param subjectId       主体Id
     * @param resourceSpaceId 资源空间Id
     * @return 资源列表
     */
    List getResourceEntityListBySubjectAndSpace(long subjectId, long resourceSpaceId, Boolean isVisibled) throws SQLException;


    /**
     * 获取主体在某一个资源组下的授权资源列表
     *
     * @param subjectIds      主体Ids
     * @param resourceGroupId 资源组Id
     * @return 资源列表
     */
    List getResourceEntityListBySubjectsAndGroup(Collection subjectIds, long resourceGroupId, Boolean isVisibled) throws SQLException;


    /**
     * 获取主体在某一个资源空间下的授权资源列表
     *
     * @param subjectIds      主体Ids
     * @param resourceSpaceId 资源空间Id
     * @return 资源列表
     */
    List getResourceEntityListBySubjectsAndSpace(Collection subjectIds, long resourceSpaceId, Boolean isVisibled) throws SQLException;


    /**
     * 获取主体的授权资源分组列表
     *
     * @param subjectIds 主体Ids
     * @return 资源列表
     */
    List getResourceGroupListBySubjects(Collection subjectIds, long resourceSpaceId, Boolean isVisibled) throws SQLException;

    /**
     * 获取主体的授权资源空间列表
     *
     * @param subjectIds 主体Ids
     * @return 资源列表
     */
    List getResourceSpaceListBySubjects(Collection subjectIds, Boolean isVisibled) throws SQLException;


    /**
     * 获取主体在某一个资源空间下的第一个授权资源
     *
     * @param subjectIds      主体Ids
     * @param resourceSpaceId 资源空间Id
     */
    ResourceEntity getResourceEntityFristBySubjectsAndSpace(Collection subjectIds, long resourceSpaceId, Boolean isVisibled) throws SQLException;


    /**
     * 获取主体在某一个资源分组下的第一个授权资源
     *
     * @param subjectIds      主体Ids
     * @param resourceGroupId 资源空间Id
     */
    ResourceEntity getResourceEntityFristBySubjectsAndGroup(Collection subjectIds, long resourceGroupId, Boolean isVisibled) throws SQLException;

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy