From c00a7c5375f1377159bd45d0d30b8f7cdbfdc42a Mon Sep 17 00:00:00 2001
From: D <3066417822@qq.com>
Date: Wed, 10 Jan 2024 18:52:08 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=82=B9=E5=B8=B8=E7=94=A8?=
=?UTF-8?q?=E7=9A=84=E6=95=99=E7=A8=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/权限控制.md | 68 +++++++++++++++++++
doc/登录+JWT逻辑.drawio | 140 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 208 insertions(+)
create mode 100644 doc/权限控制.md
create mode 100644 doc/登录+JWT逻辑.drawio
diff --git a/doc/权限控制.md b/doc/权限控制.md
new file mode 100644
index 0000000..be6d0a7
--- /dev/null
+++ b/doc/权限控制.md
@@ -0,0 +1,68 @@
+### 与权限有关的注解
+
+`@Anonymous`注解用于配置公开接口
+
+`@PreAuthorize`注解用于配置接口要求用户拥有某些权限才可访问,它拥有如下方法
+
+| 方法 | 参数 | 描述 |
+| ----------- | ------ | ---------------------------------------------- |
+| hasPermi | String | 验证用户是否具备某权限 |
+| lacksPermi | String | 验证用户是否不具备某权限,与 hasPermi逻辑相反 |
+| hasAnyPermi | String | 验证用户是否具有以下任意一个权限 |
+| hasRole | String | 判断用户是否拥有某个角色 |
+| lacksRole | String | 验证用户是否不具备某角色,与 isRole逻辑相反 |
+| hasAnyRoles | String | 验证用户是否具有以下任意一个角色,多个逗号分隔 |
+
+```java
+@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类;
+* `全部数据权限`、`自定数据权限`、`部门数据权限`、`部门及以下数据权限`、`仅本人数据权限`五种权限模式在后台角色管理界面配置数据权限
+
+```java
+// 部门数据权限注解
+@DataScope(deptAlias = "d")
+// 部门及用户权限注解
+@DataScope(deptAlias = "d", userAlias = "u")
+```
+
+1. 使用注解
+
+```java
+
+@DataScope(deptAlias = "d", userAlias = "u")
+public List<...> select(...)
+{
+ return mapper.select(...);
+}
+```
+
+2. 配置mybatis的xml
+
+```xml
+
+```
+
+### 安全工具类
+
+com.ruoyi.common.utils.SecurityUtils
+
+| 方法 | 参数 | 返回 | 描述 |
+| ------------ | ------ | ---------- | ------------------------ |
+| getUserId | 无 | Long | 获取当前用户ID |
+| getDeptId | 无 | Long | 获取当前部门ID |
+| getUsername | 无 | String | 获取当前用户账户 |
+| getLoginUser | 无 | LonginUser | 获取当前登录用户代理 |
+| hasPermi | String | boolean | 验证用户是否具备某权限 |
+| hasRole | String | boolean | 验证用户是否拥有某个角色 |
diff --git a/doc/登录+JWT逻辑.drawio b/doc/登录+JWT逻辑.drawio
new file mode 100644
index 0000000..d2bf464
--- /dev/null
+++ b/doc/登录+JWT逻辑.drawio
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file