Django User Roles
Simple role-based user permissions for Django.
django-user-roles is a simple, reusable app that allows you to create a set of user roles, which can be used to control which views each type of user has permission to view, and to customize how the site is presented to different types of user.
pip install django-user-roles
USER_ROLES setting to your
settings.py. For example:
USER_ROLES = ( 'manager', 'moderator', 'client', )
Setting the user role:
from userroles.models import set_user_role from userroles import roles set_user_role(self.user, roles.manager)
Checking the user role:
from userroles import roles user.role == roles.manager user.role in (roles.manager, roles.moderator) user.role.is_moderator
role_required decorator provides similar behavior to Django's
permission_required decorators. If the user accessing the view does not have the required roles, they will be redirected to the login page:
from userroles.decorators import role_required from userroles import roles @role_required(roles.manager, roles.moderator) def view(request): ...
./manage.py test userroles