如何向用户申请/设置权限

时间:2018-05-15 06:20:45

标签: django

我的car_store应用中有Car模型。

class Car(models.Model):
    ...
    class Meta:
        permissions = (('can_buy', 'User can buy this car'),)

现在我的帐户应用中有一个自定义的User模型:

from django.db import models as _models
from django.contrib.auth.models import AbstractBaseUser

class User(AbstractBaseUser):
    email = models.EmailField()
    ....
    def has_perms(self, perm, obj=None):
        return True

    def has_module_perms(self, app_label):
        return True        

以后我会简单地使用PermissionRequiredMixin作为我的观点:

from django.contrib.auth.mixins import PermissionRequiredMixin
from django.views.generic import ListView

class CarListView(PermissionRequiredMixin, ListView):
    permission_required = ('car.can_buy',) 

问题是 django不提供任何类型的self.set_perm(self, perm)set_perm(some_user, perm)?如果没有,实现它的最简单方法是什么?

我应该简单地做这样的事吗?

class User(AbstractBaseUser):
    perms = []
    def set_perm(self, perm):
        self.perms.append(perm)
    def has_perm(self, perm):
        return self.perms.count(perm)

我找不到任何描述如何为用户设置烫发的内容(第三方django-guardian - assign_perm()除外)。来自django docs的Full Example都没有谈到如何为用户设置烫发。甚至有Answer,但他没有谈到为用户设置烫发,而是如何检查烫发。

0 个答案:

没有答案