Skip to main content

Django module for converting regular django permissions to CASL-Style rules

Project description

CASL Django is an app that converts the usual Django permissions to CASL-Style rules.

CASL is an isomorphic authorization JavaScript library:


Having a rule called my_app.change_item, will generate a CASL rule:

    subject: 'my_app/item',
    action: 'change'

If you have more than one rule for the same subject, for example:


This will generate:

    subject: 'my_app/item',
    actions: ['add', 'change', 'remove']


By default, the length for subject and action fields is 128 characters, you can increase the length of them by adding to your settings file:

    'subject-length': 256,
    'action-length': 256

Custom Permissions

Sometimes you’d like to have custom permissions for your users, given this, you can add to your user using the Permission’s add_permission class method:

from casl_django.casl.permissions import Permissions


my_custom_permission = Permissions.create(subject="navigation", action="index")


Permissions.set_user_permission(user=user, permission=my_custom_permission)

Or you can import casl_django.models.UserPermission and create objects as desired.


The view by default filters subject with iexact and action with icontains, you can call the url with: ?subject=navigation&action=users-roles, this would return:

    {"subject": "navigation", action: "user-roles-index"},
    {"subject": "navigation", action: "user-roles-list"},
    {"subject": "navigation", action: "user-roles-id"}

Quick start

  1. Add “casl_django” to your INSTALLED_APPS setting like this:

  2. Use the included views to generate your desired urls:

    from casl_django.views import UserPermissionsView
    url(r'/api/casl/user/', UserPermissionsView.as_view())
  3. Run python migrate to create the models.

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

casl-django-0.1.tar.gz (10.3 kB view hashes)

Uploaded source

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