残りのフレームワーク:権利コンポーネント

特権プロフィール

スーパユーザのみが指定されたデータにアクセスすることができ、平均的なユーザーはアクセスできませんので、我々は権限コンポーネントを制限する必要があります

二つの局所使用

rest_framework.permissions インポートBasePermissionの
 クラス:UserPermission(BasePermission)
    メッセージ = ' 不是超级用户、查看不了' 
    DEF has_permission(自己、リクエスト、ビュー):
        USER_TYPE = request.user.get_user_type_display() 
        USER_TYPE場合==「を超级用户「: 
        USER_TYPE = request.user.user_type
         プリント(USER_TYPE)
         場合 USER_TYPE == 1 返す真の
         返すFalseの
 クラスコース(APIViewを):
    authentication_classesを= [TokenAuth、] 
    permission_classes = [UserPermissionには、] 

    デフ(自己、リクエスト)を取得:
         返すのHttpResponseを(' 取得' 

    デフ(自己、リクエスト)投稿:
         返すのHttpResponseを(' ポスト'

局所使用には、専用のビュークラスに追加する必要があります。

permission_classes = [UserPermission、】

3つのグローバル使用

REST_FRAMEWORK = {
     " DEFAULT_AUTHENTICATION_CLASSES ":[ " app01.service.auth.Authentication " 、]、
     " DEFAULT_PERMISSION_CLASSES ":[ " app01.service.permissions.SVIPPermission " 、] 
}

4つのソースコード解析:

デフcheck_permissions(自己、リクエスト):
     のための許可(self.get_permissions):
         もし ないpermission.has_permission(リクエスト、自己):
            self.permission_denied(
                リクエスト、メッセージ = GETATTR(許可、' メッセージ' 、なし)

self.get_permissions()

デフ:get_permissions(自己)
      を返す [許可()のための許可 self.permission_classes]

最初のクラスビュー:クラスのための使用許可権限クラスを、の構成では、その後の設定パーミッションクラスデフォルトでようやく、および権限のクラス

おすすめ

転載: www.cnblogs.com/HUIWANG/p/11134584.html