This is a simple class to handle permissions in a Django application. It allows you to list permissions as a tuple, list or string without writing custom classes for each exception.
from drf_simplepermissions import SimplePermissions
from rest_framework import generics
class SimpleView(generics.GenericAPIView):
serializer_class = ...
permission_classes = (SimplePermissions,)
allowed_permissions = ('codename_x', 'codename_y')
def get(self, request, format=None):
...It also includes a simple is_demo()-method which can be used to check if
views or other methods should be running in demo mode.
from drf_simplepermissions import is_demo
if is_demo(User):
# We should run in demo mode when the user is in 'demo'Settings can be managed in settings.py.
Global demo mode can be enabled by changing settings.DEMO to True. If
it's set to False you can override it by adding users to a group. You
can't override settings.DEMO when it's set to True. When global demo
mode is set to true, all users no matter their group membership will be
considered demo users.
settings.DEMO_GROUPS contains a string or a list of groups that should be
considered demo users. It will try to match against any group and if a match
is found, it will return true. It is set to 'demo' by default. Groups are
not managed by this module and should be added manually or with a custom
migration.
Not documented yet.