Skip to main content

A Django app that provides generic per-object-permissions for Django's auth app.

Project description

Jazzband https://travis-ci.org/jazzband/django-authority.svg?branch=master https://codecov.io/gh/jazzband/django-authority/branch/master/graph/badge.svg

This is a Django app for per-object-permissions that includes a bunch of helpers to create custom permission checks.

The main website for django-authority is django-authority.readthedocs.org. You can also install the in-development version of django-authority with pip install django-authority==dev or easy_install django-authority==dev.

Example

To get the example project running do:

  • Bootstrap the environment by running in a virtualenv:

    pip install Django
    pip install -e .
  • Sync the database:

    python example/manage.py migrate
  • Run the development server and visit the admin at http://127.0.0.1:8000/admin/:

    python example/manage.py runserver

Now create a flatage and open it to see some of the templatetags in action. Don’t hesitate to use the admin to edit the permission objects.

Please use https://github.com/jazzband/django-authority/issues/ for issues and bug reports.

Documentation

The documenation is currently in development. You can create a nice looking html version using the setup.py:

python setup.py build_sphinx

Changelog:

0.14 (2020-02-07):

  • Add Django 2.2 support

  • Add Python 3.7 support

  • Various fixes around the test harness.

  • Use Django’s own method of auto-loading permissions modules.

  • Fix Django admin incompatibility regarding a method removed years ago.

  • Removed unused compatibility code.

  • Fix BasePermission.assign for group permissions.

0.13.1 (2018-01-28):

  • Minor fixes to the documentation and versioning.

0.13 (2018-01-28):

  • Added support for Django 1.11

  • Drop Support for Python 3.3

  • Fixed a bug with template loader

0.12 (2017-01-10):

  • Added support for Django 1.10

0.11 (2016-07-17):

  • Added Migration in order to support Django 1.8

  • Dropped Support for Django 1.7 and lower

  • Remove SQL Migration Files

  • Documentation Updates

  • Fix linter issues

0.10 (2015-12-14):

  • Fixed a bug with BasePermissionForm and django 1.8

0.9 (2015-11-11):

  • Added support for Django 1.7 and 1.8

  • Dropped support for Django 1.3

0.8 (2013-12-20):

  • Added support for Django 1.6

0.7 (2013-07-03):

  • No longer doing dependent sub-queries. It will be faster to do two small queries instead of one with a dependent sub-query in the general case.

0.6 (2013-06-13):

  • Added support for custom user models (Django 1.5 only).

0.5 (2013-03-18):

  • It is now possible to minimize the number of queries when using django-authority by caching the results of the Permission query. This can be done by adding AUTHORITY_USE_SMART_CACHE = True to your settings.py

  • Confirmed support (via travis ci) for all combinations of Python 2.6, Python2.7 and Django 1.3, Django 1.4, Django 1.5. Added Python 3.3 support for Django 1.5

0.4 (2010-01-15):

  • Fixed an issue with the UserPermissionForm not being able to override the widget of the user field.

  • Added ability to override form class in add_permission view.

  • Added easy way to assign permissions via a permission instance, e.g.:

    from django.contrib.auth.models import User
    from mysite.articles.permissions import ArticlePermission
    
    bob = User.objects.get(username='bob')
    article_permission = ArticlePermission(bob)
    article_permission.assign(content_object=article)

0.3 (2009-07-28):

  • This version adds multiple fields to the Permission model and is therefore a backwards incompatible update.

    This was required to add a feature that allows users to request, withdraw, deny and approve permissions. Request and approval date are now saved, as well as an approved property. An admin action has been added for bulk approval.

    To migrate your existing data you can use the SQL files included in the source (migrations/), currently available for MySQL, Postgres and SQLite.

  • The templatetags have also been refactored to be easier to customize which required a change in the template tag signature:

    Old:

    {% permission_form flatpage %}
    {% permission_form flatpage "flatpage_permission.top_secret" %}
    {% permission_form OBJ PERMISSION_LABEL.CHECK_NAME %}

    New:

    {% permission_form for flatpage %}
    {% permission_form for flatpage using "flatpage_permission.top_secret" %}
    {% permission_form for OBJ using PERMISSION_LABEL.CHECK_NAME [with TEMPLATE] %}

    New templatetags:

    • permission_request_form

    • get_permission_request

    • get_permission_requests

    • permission_request_approve_link

    • permission_request_delete_link

    • request_url_for_obj

  • The add_permission view is now accessible with GET requests and allows to request permissions, but also add them (only for users with the ‘authority.add_permission’ Django permission).

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

django-authority-0.14.tar.gz (152.8 kB view details)

Uploaded Source

Built Distribution

django_authority-0.14-py2.py3-none-any.whl (32.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-authority-0.14.tar.gz.

File metadata

  • Download URL: django-authority-0.14.tar.gz
  • Upload date:
  • Size: 152.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.4

File hashes

Hashes for django-authority-0.14.tar.gz
Algorithm Hash digest
SHA256 f2e0b2adfa98cc5f0b4766f35d2666c7d040452d91e93fc47401e85f85bbecbd
MD5 e4748a1550eabe0dbea83a2a9d56f344
BLAKE2b-256 f021e8d3a9cef454c7507be0a7e3aa8385ddb34c346882f19cc404abe4734194

See more details on using hashes here.

File details

Details for the file django_authority-0.14-py2.py3-none-any.whl.

File metadata

  • Download URL: django_authority-0.14-py2.py3-none-any.whl
  • Upload date:
  • Size: 32.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.4

File hashes

Hashes for django_authority-0.14-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 20642871d146e9f989d764db28bd6ea441157ea152c817338db574632df7cd67
MD5 847e98867b1aff39067ad9f7b505ee78
BLAKE2b-256 caa1e22710d9d967ceee3349c92342f68787a4b8008604b1cd84a2b1e4207cfb

See more details on using hashes here.

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