More detailed logging for permissions checks - see #321
Signed-off-by: Roger Hunwicks <roger@tonic-solutions.com>
This commit is contained in:
@@ -46,17 +46,25 @@ class StoredPermission(models.Model):
|
||||
verbose_name_plural = _('Permissions')
|
||||
|
||||
def requester_has_this(self, user):
|
||||
logger.debug('user: %s', user)
|
||||
if user.is_superuser or user.is_staff:
|
||||
logger.debug('Permission "%s" granted to user "%s" as superuser or staff',
|
||||
self,
|
||||
user)
|
||||
return True
|
||||
|
||||
# Request is one of the permission's holders?
|
||||
for group in user.groups.all():
|
||||
for role in group.roles.all():
|
||||
if self in role.permissions.all():
|
||||
logger.debug('Permission "%s" granted to user "%s" through role "%s"',
|
||||
self,
|
||||
user,
|
||||
role)
|
||||
return True
|
||||
|
||||
logger.debug('Fallthru')
|
||||
logger.debug('Fallthru: Permission "%s" not granted to user "%s"',
|
||||
self,
|
||||
user)
|
||||
return False
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user