File tree 1 file changed +6
-4
lines changed
1 file changed +6
-4
lines changed Original file line number Diff line number Diff line change 1
- 权限是 web 设计中的重要组成部分 。没有权限控制,任何人都可以对任何资源进行更改操作,那就太恐怖了。
1
+ 权限是 web 应用的重要组成部分 。没有权限控制,任何人都可以对任何资源进行更改操作,那就太恐怖了。
2
2
3
3
本章来看看 DRF 中如何进行权限管理。
4
4
5
5
## 文章与用户
6
6
7
- 依靠用户身份来限制权限是比较通用的做法, 这就需要给文章模型添加用户外键,确定每篇文章的作者了。保险起见,首先删除现有的所有文章数据。
7
+ 依靠用户身份来限制权限是比较通用的做法。 这就需要给文章模型添加用户外键,确定每篇文章的作者了。保险起见,首先删除现有的所有文章数据。
8
8
9
9
修改文章的 model,让每篇文章都对应一个作者:
10
10
@@ -43,7 +43,9 @@ HTTP/1.1 200 OK
43
43
[]
44
44
```
45
45
46
- 空空如也。接下来就拿文章列表接口开刀,进行权限管理工作。
46
+ 空空如也。
47
+
48
+ 接下来就拿文章列表接口开刀。
47
49
48
50
## 权限控制
49
51
@@ -107,7 +109,7 @@ class IsAdminUserOrReadOnly(permissions.BasePermission):
107
109
return request.user.is_superuser
108
110
```
109
111
110
- 自定义的权限类继承了 ` BasePermission ` 这个基础的父类,并实现了父类中的钩子方法 ` def has_permission ` 。方法里简单判断了请求的种类是否安全 (即不更改数据的请求),如果安全则直接通过,不安全则只允许管理员用户通过。
112
+ 自定义的权限类继承了 ` BasePermission ` 这个基础的父类,并实现了父类中的钩子方法 ` def has_permission ` 。此方法在每次请求到来时被唤醒执行,里面简单判断了请求的种类是否安全 (即不更改数据的请求),如果安全则直接通过,不安全则只允许管理员用户通过。
111
113
112
114
再次修改视图:
113
115
You can’t perform that action at this time.
0 commit comments