如何在Django中覆盖has_perm()和get_all_permission()方法

时间:2016-07-12 10:00:28

标签: django

我对自定义权限感到困惑。我想创建一个自定义用户模型,所以我尝试覆盖has_perm和get_all_permission方法。如何检查用户是否获得了has_perm()的权限?我发现get_all_permission()只返回一个集合。如果权限在get_all_permission返回的集合中,则表示用户具有权限?此外,如果权限分配给用户,权限需要添加到权限表的用户部分吗?

这是代码:

# declare a set to hold permission that need add to user
perm_list = set()
  def get_user_type(self):
    return "Staff"
  # if permission is in the permission set, return true otherwise return false
  def has_perm(self, perm, obj=None):
    if perm in self.get_all_permissions():
      return True
    return False
  # return all the user permission
  def get_all_permissions(self, obj=None):
        return self.perm_list
  # assign permission to the user 
  def assign_perm(self,perm,object=None):
    self.perm_list.add(perm)

0 个答案:

没有答案