restful专栏 09.用户授权 01.权限配置

# 01.权限配置

[toc]{type: "ol", level: [2, 3, 4, 5]}

### 全局权限配置
```python
### settings.dev
REST_FRAMEWORK = {
    # 配置权限 全局配置
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.AllowAny',
    ],
}
```
<br><br>


### 设置分类权限
#### 属性方式:
```python
### shop.views
from rest_framework import permissions

class CategoryModelViewSet(viewsets.ModelViewSet):
    # 权重高于全局配置 管理员身份才有此权限
    # 在user_user表中,可选择用户是否为管理员
    # 此处不加(),指定类即可
    permission_classes = [permissions.IsAdminUser]
```
#### 函数方式:
```python
### shop.views
from rest_framework import permissions

class CategoryModelViewSet(viewsets.ModelViewSet):
    # 管理员可创建分类,普通用户只能查看分类
    def get_permissions(self):
        ac = self.action
        # post put patch delete
        if ac == 'create' or ac == 'update' or ac == 'partial_update' or ac == 'destroy':
            # 此处加(),写入实例 超级管理员:可以增删改查分类
            return [permissions.IsAdminUser()]
            # return [CategoryPermission] 一般不需要自定义
        else:
            # 默认处理 登录用户[包含超级管理员]:可以查看分类
            return [permissions.IsAuthenticated()]
```
![drf](imgs/01.png)
![drf](imgs/02.png)
<br><br>


### 自定义授权类
```python
### shop.permissions
from rest_framework import permissions


class CategoryPermission(permissions.BasePermission):
    # 视图级别
    def has_permission(self, request, view):
        return True
# 授权的前提是认证,认证登陆过之后,才可以进行权限判定

# 导入后使用即可:
# from shop.permissions import CategoryPermission
```

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值