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.
PLEASE NOTE: This repository is no longer actively maintained or regularly used by DabApps and therefore should be considered deprecated. Please find alternative packages for your needs or feel free to create and maintain your own fork.
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
Code of conduct
For guidelines regarding the code of conduct when contributing to this repository please review https://www.dabapps.com/open-source/code-of-conduct/