Skip to content

Add a get_user_permissions management command #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions debug_permissions/management/commands/get_user_permissions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
from __future__ import print_function
from django.core.management.base import BaseCommand
from goerr import err
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

breaks here now; should be Err, and I needed to remove all of the error logging.

from introspection.inspector import inspect


class Command(BaseCommand):
help = 'Get a list of user and group permissions for a given user'

def add_arguments(self, parser):
parser.add_argument('username', type=str)

def handle(self, *args, **options):
username = options["username"]
user_perms, group_perms, app_perms = inspect.user_perms(username)
if err.exists:
err.new(self.handle, "No user, aborting")
err.throw()
return
# user perms
perms = user_perms
if len(perms) > 0:
print("# User permissions for user", username + ":")
for perm in perms:
print("-", perm)
else:
print("# No user permissions found for", username)
# group perms
perms = group_perms
sup, staff, active, date_joined = inspect.user_info(username)
if len(perms) > 0:
print("# Group permissions for user", username + ":")
for perm in perms:
print("-", perm)
else:
if sup is False:
print("# No group permissions found for", username)
# Modules perms
if len(app_perms) > 0:
print("# Modules that the user", username, "has permissions for:")
for app in app_perms:
print("-", app)
else:
if sup is False:
print("# The user", username, "has permissions for no modules")
if sup is True:
print("The user is superuser and have all permissions")
else:
if staff is True:
print("User is staff (joined at", str(date_joined) + ")")
else:
print("User joined at", str(date_joined))
if active is False:
print("This user is inactive")