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

org.openea.eap.module.system.service.permission.PermissionService Maven / Gradle / Ivy

Go to download

system 模块下,我们放通用业务,支撑上层的核心业务。 例如说:用户、部门、权限、数据字典等等

The newest version!
package org.openea.eap.module.system.service.permission;

import org.openea.eap.module.system.api.permission.dto.DeptDataPermissionRespDTO;
import org.openea.eap.module.system.dal.dataobject.permission.MenuDO;

import java.util.Collection;
import java.util.List;
import java.util.Set;

import static java.util.Collections.singleton;

/**
 * 权限 Service 接口
 * 

* 提供用户-角色、角色-菜单、角色-部门的关联权限处理 * */ public interface PermissionService { /** * 判断是否有权限,任一一个即可 * * @param userId 用户编号 * @param permissions 权限 * @return 是否 */ boolean hasAnyPermissions(Long userId, String... permissions); /** * 判断是否有角色,任一一个即可 * * @param roles 角色数组 * @return 是否 */ boolean hasAnyRoles(Long userId, String... roles); // ========== 角色-菜单的相关方法 ========== /** * 设置角色菜单 * * @param roleId 角色编号 * @param menuIds 菜单编号集合 */ void assignRoleMenu(Long roleId, Set menuIds); /** * 处理角色删除时,删除关联授权数据 * * @param roleId 角色编号 */ void processRoleDeleted(Long roleId); /** * 处理菜单删除时,删除关联授权数据 * * @param menuId 菜单编号 */ void processMenuDeleted(Long menuId); /** * 获得角色拥有的菜单编号集合 * * @param roleId 角色编号 * @return 菜单编号集合 */ default Set getRoleMenuListByRoleId(Long roleId) { return getRoleMenuListByRoleId(singleton(roleId)); } /** * 获得角色们拥有的菜单编号集合 * * @param roleIds 角色编号数组 * @return 菜单编号集合 */ Set getRoleMenuListByRoleId(Collection roleIds); /** * 获得用户所有的有效菜单 * @param userId/userKey 至少选一,都选优先userId * @return */ List getUserMenuListByUser(Long userId, String userKey); /** * 获得拥有指定菜单的角色编号数组,从缓存中获取 * * @param menuId 菜单编号 * @return 角色编号数组 */ Set getMenuRoleIdListByMenuIdFromCache(Long menuId); // ========== 用户-角色的相关方法 ========== /** * 设置用户角色 * * @param userId 角色编号 * @param roleIds 角色编号集合 */ void assignUserRole(Long userId, Set roleIds); /** * 处理用户删除时,删除关联授权数据 * * @param userId 用户编号 */ void processUserDeleted(Long userId); /** * 获得拥有多个角色的用户编号集合 * * @param roleIds 角色编号集合 * @return 用户编号集合 */ Set getUserRoleIdListByRoleId(Collection roleIds); /** * 获得用户拥有的角色编号集合 * * @param userId 用户编号 * @return 角色编号集合 */ Set getUserRoleIdListByUserId(Long userId); /** * 获得用户拥有的角色编号集合,从缓存中获取 * * @param userId 用户编号 * @return 角色编号集合 */ Set getUserRoleIdListByUserIdFromCache(Long userId); // ========== 用户-部门的相关方法 ========== /** * 设置角色的数据权限 * * @param roleId 角色编号 * @param dataScope 数据范围 * @param dataScopeDeptIds 部门编号数组 */ void assignRoleDataScope(Long roleId, Integer dataScope, Set dataScopeDeptIds); /** * 获得登陆用户的部门数据权限 * * @param userId 用户编号 * @return 部门数据权限 */ DeptDataPermissionRespDTO getDeptDataPermission(Long userId); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy