Metadata-Version: 2.0
Name: django-groot
Version: 0.1.1
Summary: Django Groot
Home-page: https://github.com/blancltd/django-groot
Author: Blanc Ltd
Author-email: studio@blanc.ltd.uk
License: BSD
Platform: any
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 1.8
Classifier: Framework :: Django :: 1.9
Classifier: Framework :: Django :: 1.10
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5

.. image:: groot.png
   :alt: Groot

Django Groot
============

An alternative admin interface for managing group permissions with
`django-guardian`_. Groot requires django-guardian for maintaining permissions,
however Groot only focuses on groups for object permissions - per user object
level permissions aren't allowed for simplicity.

.. _django-guardian: https://github.com/django-guardian/django-guardian

Installation
------------

Using pip_:

.. _pip: https://pip.pypa.io/

.. code-block:: console

    $ pip install django-groot

Follow the instructions for installing `django-guardian`_ if you haven't
already.

Edit your Django project's settings module, and add ``groot``:

.. code-block:: python

    INSTALLED_APPS = [
        # ...
        'groot',
    ]

Usage
-----

Add ``GrootAdminMixin`` to the admin class you want Groot to be used on:

.. code-block:: python

    from django.contrib import admin
    from groot.admin import GrootAdminMixin

    from .models import Post


    @admin.register(Post)
    class PostAdmin(GrootAdminMixin, admin.ModelAdmin):
        pass

To limit the permissions which can be edited, add a ``groot_permissions`` attribute:

.. code-block:: python

    class PostAdmin(GrootAdminMixin, admin.ModelAdmin):
        groot_permissions = ('change_post', 'delete_post')


