Metadata-Version: 2.1
Name: django-perms-provisioner
Version: 0.0.4
Summary: Provision django instances with usergroups and permissions
Home-page: https://github.com/labd/django-perms-provisioner
Author: Lab Digital
Author-email: opensource@labdigital.nl
License: MIT
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 1.11
Classifier: Framework :: Django :: 2.0
Classifier: Framework :: Django :: 2.1
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Dist: Cerberus<2,>=1.3.2
Requires-Dist: Django>=1.11
Requires-Dist: PyYAML<6,>=5.3.1
Provides-Extra: docs
Requires-Dist: sphinx>=1.4.0; extra == "docs"
Provides-Extra: test
Requires-Dist: coverage; extra == "test"
Requires-Dist: pytest==3.8.1; extra == "test"
Requires-Dist: pytest-cov==2.6.0; extra == "test"
Requires-Dist: pytest-django==3.4.3; extra == "test"
Requires-Dist: isort==4.2.5; extra == "test"
Requires-Dist: flake8==3.5.0; extra == "test"
Requires-Dist: flake8-blind-except==0.1.1; extra == "test"
Requires-Dist: flake8-debugger==3.1.0; extra == "test"

==============================
Django Permissions Provisioner
==============================

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/ambv/black

.. image:: https://travis-ci.org/labd/django-perms-provisioner.svg?branch=master
    :target: https://travis-ci.org/labd/django-perms-provisioner

.. image:: http://codecov.io/github/labd/django-perms-provisioner/coverage.svg?branch=master
    :target: http://codecov.io/github/labd/django-perms-provisioner?branch=master

.. image:: https://img.shields.io/pypi/v/django-perms-provisioner.svg
    :target: https://pypi.org/project/django-perms-provisioner/


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
============

.. code-block:: shell

   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.

.. code-block:: python

  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:

.. code-block:: yaml

   ---
   groups:
     - name: Group Name
       permissions:
         sites:
            - site.add_site
            - site.change_site
          wagtailadmin:
            - admin.access_admin


.. code-block:: javascript

   {
     "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:

.. code-block:: yaml

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


Usage
=====

To load permissions from a configuration file

.. code-block:: shell

   ./manage.py loadperms permissions.yaml


Or to dump permissions to a configuration file

.. code-block:: shell

   ./manage.py dumpperms > permissions.yaml
