def has_perm(self, perm, obj=None, *args): """Permission check.""" # Weblate global scope permissions if perm in GLOBAL_PERM_NAMES: return check_global_permission(self, perm, obj) # Compatibility API for admin interface if obj is None: if not self.is_superuser: return False # Check permissions restrictions allowed = settings.AUTH_RESTRICT_ADMINS.get(self.username) return allowed is None or perm in allowed # Validate perms, this is expensive to perform, so this only in test by # default if settings.AUTH_VALIDATE_PERMS and ":" not in perm: try: Permission.objects.get(codename=perm) except Permission.DoesNotExist: raise ValueError("Invalid permission: {}".format(perm)) # Special permission functions if perm in SPECIALS: return SPECIALS[perm](self, perm, obj, *args) # Generic permission return check_permission(self, perm, obj)
def has_perm(self, perm, obj=None, *args): """Permission check""" if settings.AUTH_RESTRICT_ADMINS and self.is_superuser: allowed = settings.AUTH_RESTRICT_ADMINS.get(self.username) if allowed is not None and perm not in allowed: return False # Compatibility API for admin interface if obj is None: # Superuser has all permissions return self.is_superuser # Validate perms, this is expensive to perform, so this only in test by # default if settings.AUTH_VALIDATE_PERMS and ':' not in perm: try: Permission.objects.get(codename=perm) except Permission.DoesNotExist: raise ValueError('Invalid permission: {}'.format(perm)) # Special permission functions if perm in SPECIALS: return SPECIALS[perm](self, perm, obj, *args) # Generic permission return check_permission(self, perm, obj)
def has_perm(self, perm: str, obj=None): """Permission check.""" # Weblate global scope permissions if perm in GLOBAL_PERM_NAMES: return check_global_permission(self, perm, obj) # Compatibility API for admin interface if is_django_permission(perm): if not self.is_superuser: return False # Check permissions restrictions allowed = settings.AUTH_RESTRICT_ADMINS.get(self.username) return allowed is None or perm in allowed # Validate perms if perm not in SPECIALS and perm not in PERMISSION_NAMES: raise ValueError(f"Invalid permission: {perm}") # Special permission functions if perm in SPECIALS: return SPECIALS[perm](self, perm, obj) # Generic permission return check_permission(self, perm, obj)
def has_perm(self, perm, obj=None, *args): """Permission check""" # Compatibility API for admin interface if obj is None: if not self.is_superuser: return False # Check permissions restrictions allowed = settings.AUTH_RESTRICT_ADMINS.get(self.username) return allowed is None or perm in allowed # Validate perms, this is expensive to perform, so this only in test by # default if settings.AUTH_VALIDATE_PERMS and ':' not in perm: try: Permission.objects.get(codename=perm) except Permission.DoesNotExist: raise ValueError('Invalid permission: {}'.format(perm)) # Special permission functions if perm in SPECIALS: return SPECIALS[perm](self, perm, obj, *args) # Generic permission return check_permission(self, perm, obj)