RUOYI-geek/doc/权限控制.md
2024-01-10 18:52:08 +08:00

2.5 KiB

与权限有关的注解

@Anonymous注解用于配置公开接口

@PreAuthorize注解用于配置接口要求用户拥有某些权限才可访问,它拥有如下方法

方法 参数 描述
hasPermi String 验证用户是否具备某权限
lacksPermi String 验证用户是否不具备某权限,与 hasPermi逻辑相反
hasAnyPermi String 验证用户是否具有以下任意一个权限
hasRole String 判断用户是否拥有某个角色
lacksRole String 验证用户是否不具备某角色,与 isRole逻辑相反
hasAnyRoles String 验证用户是否具有以下任意一个角色,多个逗号分隔
@PreAuthorize("@ss.hasPermi('system:user:list')")
@PreAuthorize("@ss.lacksPermi('system:user:list')")
@PreAuthorize("@ss.hasAnyPermi('system:user:add,system:user:edit')")

@DataScope注解用于配置接口数据权限

  • deptAlias用于指定部门表的别名;
  • userAlias用于指定用户表的别名;
  • 实体需要继承BaseEntity类;
  • 全部数据权限自定数据权限部门数据权限部门及以下数据权限仅本人数据权限五种权限模式在后台角色管理界面配置数据权限
// 部门数据权限注解
@DataScope(deptAlias = "d")
// 部门及用户权限注解
@DataScope(deptAlias = "d", userAlias = "u")
  1. 使用注解

@DataScope(deptAlias = "d", userAlias = "u")
public List<...> select(...)
{
    return mapper.select(...);
}
  1. 配置mybatis的xml
<select id="select" parameterType="..." resultMap="...Result">
    <include refid="select...Vo"/>
    <!-- 数据范围过滤 -->
    ${params.dataScope}
</select>

安全工具类

com.ruoyi.common.utils.SecurityUtils

方法 参数 返回 描述
getUserId Long 获取当前用户ID
getDeptId Long 获取当前部门ID
getUsername String 获取当前用户账户
getLoginUser LonginUser 获取当前登录用户代理
hasPermi String boolean 验证用户是否具备某权限
hasRole String boolean 验证用户是否拥有某个角色