Skip to main content

Django field permission package

Project description

DFPermission

Installation

pip install df-permission

Configuration

INSTALLED_APPS = [
    ...,
    'df_permission'
]

Generate permissions

For model fields:

./manage.py generate_model_field_permissions

For serializer fields (not include model fields):

./manage.py generate_serializer_field_permissions

Attributes

df_method

  • Method of action
  • Valid values are create, update, retrieve, list, destroy
class MyView(CreateAPIView):
    permission_classes = [DFPermission]
    df_method = 'create'
    ...

or

class MyView(CreateAPIView):
    permission_classes = [DFPermission]
    df_method = DFMethods.CREATE
    ...

df_model

  • Model
class MyView(CreateAPIView):
    permission_classes = [DFPermission]
    df_model = MyModel
    ...

df_fields

  • Fields
class MyView(CreateAPIView):
    permission_classes = [DFPermission]
    df_fields = ['field1', 'field2', ...]
    ...

df_permissions

  • Permissions
  • type: string, list, tuple
class MyView(CreateAPIView):
    permission_classes = [DFPermission]
    df_permissions = ['permission1', 'permission2', ...]
    ...

or

class MyView(CreateAPIView):
    permission_classes = [DFPermission]
    df_permissions = 'permission1'
    ...

df_allow_superuser

  • Allow superuser if value is True
  • Type: boolean
  • Default: False

Methods

get_df_permissions

  • Customize df_permissions
class MyView(CreateAPIView):
    permission_classes = [DFPermission]
    
    def get_df_permissions(self):
        # write your logic code
        return # single permission or permissions

How does it work?

First, find df_permissions attribute. If it does not exist, find get_df_permissions method. If it does not exist too, generate permissions.

First for this, collect fields that are permission required. Find df_fields, if it exist. Else get serializer class to get fields and get intersection with model fields.

Then, generate required perms using fields and df_method.

Finally, user's permissions are checked.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

df-permission-0.1.9.tar.gz (5.8 kB view hashes)

Uploaded Source

Built Distribution

df_permission-0.1.9-py3-none-any.whl (7.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page