0
点赞
收藏
分享

微信扫一扫

Django匿名用户的属性

小布_cvg 2023-03-12 阅读 93

from django.contrib.auth.models import AnonymousUser

class AnonymousUser:
id = None
pk = None
username = ''
is_staff = False
is_active = False
is_superuser = False
_groups = EmptyManager(Group)
_user_permissions = EmptyManager(Permission)

def __str__(self):
return 'AnonymousUser'

def __eq__(self, other):
return isinstance(other, self.__class__)

def __hash__(self):
return 1 # instances always return the same hash value

def __int__(self):
raise TypeError('Cannot cast AnonymousUser to int. Are you trying to use it in place of User?')

def save(self):
raise NotImplementedError("Django doesn't provide a DB representation for AnonymousUser.")

def delete(self):
raise NotImplementedError("Django doesn't provide a DB representation for AnonymousUser.")

def set_password(self, raw_password):
raise NotImplementedError("Django doesn't provide a DB representation for AnonymousUser.")

def check_password(self, raw_password):
raise NotImplementedError("Django doesn't provide a DB representation for AnonymousUser.")

@property
def groups(self):
return self._groups

@property
def user_permissions(self):
return self._user_permissions

def get_user_permissions(self, obj=None):
return _user_get_permissions(self, obj, 'user')

def get_group_permissions(self, obj=None):
return set()

def get_all_permissions(self, obj=None):
return _user_get_permissions(self, obj, 'all')

def has_perm(self, perm, obj=None):
return _user_has_perm(self, perm, obj=obj)

def has_perms(self, perm_list, obj=None):
return all(self.has_perm(perm, obj) for perm in perm_list)

def has_module_perms(self, module):
return _user_has_module_perms(self, module)

@property
def is_anonymous(self):
return True

@property
def is_authenticated(self):
return False

def get_username(self):
return self.username

举报

相关推荐

0 条评论