Skip to content

labd/django-perms-provisioner

Repository files navigation

Django Permissions Provisioner

https://travis-ci.org/labd/django-perms-provisioner.svg?branch=master http://codecov.io/github/labd/django-perms-provisioner/coverage.svg?branch=master

This package works like the standard Django loaddata / dumpdata commands only it's used for creating auth.Group objects with their provided permissions.

Requirements

  • Python >= 3.6
  • Django >= 1.11

Installation

pip install django_perms_provisioner

Then the only thing left before you can start using the Django Permissions Provisioner is adding it to you installed apps.

INSTALLED_APPS = [
    "django_perms_provisioner",
]

Configuration

Configuration can either be done via providing a YAML or JSON file. Your file needs to have one of the following extensions: .json, .yaml, .yml, and their approriate contents of course.

Examples:

---
groups:
  - name: Group Name
    permissions:
      sites:
         - site.add_site
         - site.change_site
       wagtailadmin:
         - admin.access_admin
{
  "groups" [{
    "name": "Group Name",
    "permissions": {
      "sites": ["site.add_site", "site.change_site"],
      "wagtailadmin": ["admin.access_admin"]
    }
  }]
}

It is also possible to only create groups this can be done by just leaving out the permissions.

Example:

---
groups:
  - name: Group Name
  - name: Next Group Name

Usage

To load permissions from a configuration file

./manage.py loadperms permissions.yaml

Or to dump permissions to a configuration file

./manage.py dumpperms > permissions.yaml