Skip to main content

Django row level object sharing app.

Project description

Django Sharing

Django row level sharing app limiting content access by user in Django admin.

Features

  1. Provides admin view, change and delete permissions, restricting content access and limiting available actions per user.

  2. Filters ForeignKey fields by view permissions.

  3. Filters ManyToManyField fields by view permissions.

  4. Automatically enables sharing on all admin classes (optional).

Installation

  1. Install or add django-sharing to your python path.

  2. Add 'sharing' to the project’s INSTALLED_APPS setting.

  3. Add 'sharing.backends.SharingBackend' to the project’s AUTHENTICATION_BACKENDS setting.

Usage

In order for django-sharing to limit content access your various admin classes need to include the ShareAdminMixin class. For example:

# admin.py
from django.contrib import admin
from sharing.admin import ShareAdminMixin

class ArticleAdmin(ShareAdminMixin, admin.ModelAdmin):
    pass

admin.site.register(Article, ArticleAdmin)

It is crucial for ShareAdminMixin to be the first ancestor class in the admin class’ definition.

Alternatively you can automatically enable sharing for all models registered with the admin site. django-sharing includes an admin_mixin_share method which will apply the ShareAdminMixin class to all models registered with the admin site. Call the method after admin.autodiscover() in urls.py:

# urls.py
from django.conf.urls.defaults import *
from django.contrib import admin

import sharing

admin.autodiscover()
sharing.admin_mixin_share()

urlpatterns = patterns('',
    (r'^admin/', include(admin.site.urls)),
)

Once the ShareAdminMixin class has been applied your admin change views should include Group and User share inlines and restrict content appropriately.

Authors

Praekelt Foundation

  • Shaun Sephton

Changelog

0.0.2

  1. Resolved class name issue on save_model.

0.0.1

  1. Initial release.

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-sharing-0.0.2.tar.gz (8.2 kB view details)

Uploaded Source

Built Distributions

django_sharing-0.0.2-py2.6.egg (15.0 kB view details)

Uploaded Source

django_sharing-0.0.2-py2.5.egg (15.0 kB view details)

Uploaded Source

File details

Details for the file django-sharing-0.0.2.tar.gz.

File metadata

File hashes

Hashes for django-sharing-0.0.2.tar.gz
Algorithm Hash digest
SHA256 007147c77910c3346f9028895221c9b8778ed86c197857f43371030d56a64d9d
MD5 c0afdc38c5c44487318554c3fe6827b9
BLAKE2b-256 0ed01e8e0f9ad5af82a4d4c9b3056cb793b72c071da4c9d3ed864097395fc8b1

See more details on using hashes here.

File details

Details for the file django_sharing-0.0.2-py2.6.egg.

File metadata

File hashes

Hashes for django_sharing-0.0.2-py2.6.egg
Algorithm Hash digest
SHA256 72369267bbacdfbb65a6cb6db3b0fa416644f3a0f0937888b4b2e79851bdfe72
MD5 d7aab6f8972def1ef453aa61fac6e1c6
BLAKE2b-256 8568f2e92e62b4ce9a424c1e2a2b85eeb7767975e8076aede1906568dc543862

See more details on using hashes here.

File details

Details for the file django_sharing-0.0.2-py2.5.egg.

File metadata

File hashes

Hashes for django_sharing-0.0.2-py2.5.egg
Algorithm Hash digest
SHA256 9ecad0856170d862b72cd07ae7ae5559063e84af166928a8953bfadf44debe99
MD5 b8d3566885f9750494867852f21b7e6a
BLAKE2b-256 6305d9cab0d45f79404c459444377e1eeb3d2f9584a90667de060cc35c9cdc07

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