The goal of dj_auth is to limit data access for certain user over your django project.
Project description
dj_auth
—
The goal of dj_auth is to limit data access for certain user over your django project.
Requirements
Django 1.9
Quickstart
Install dj_auth:
pip install dj_auth
Put dj_auth into your INSTALLED_APPS at settings module:
INSTALLED_APPS = ( ... 'dj_auth', )
Create dj_auth database tables by running:
python manage.py migrate
Extend the Queryset methods of your Models:
from django.db import models
from dj_auth.models import ObjectFilterQuerySetMixin
class YourModelQuerySet(ObjectFilterQuerySetMixin, models.QuerySet):
def sichtbar(self, sichtbar=True):
return self.filter(sichtbar=sichtbar)
class YourModel(models.Model):
your_fielfs = models.SmallIntegerField()
objects = YourModelQuerySet.as_manager()
Set DJ_AUTH constant in your settings.py:
DJ_AUTH = {'content_type_exclude': ('contenttypes.contenttype', 'sessions.session', 'sites.site',
'auth.user', 'auth.group', 'auth.permission', 'admin.logentry',
'dj_auth.objectfilter',),
'content_type_include': (),
'global_fields_exclude': ('user', ),
'related_filter_fields_exclude': {'auth.user': ('groups', ), },
}
In “content_type_exclude” you put the models on which you don’t want create ObjectFilters
In “content_type_include” you put the models on which you want create ObjectFilters
In “global_fields_exclude” you put the fieldnames on which you don’t want apply the ObjectFilter globally
In “related_filter_fields_exclude” you put the fieldnames on which you don’t want apply the ObjectFilter for a specific Model
Features
ObjectFilterFormMixin
First of all you have to create an ObjectFilter record for a specific user. Therefore you can should use ObjectFilterFormMixin:
from django import forms
from dj_auth.forms import ObjectFilterFormMixin
class ObjectFilterForm(ObjectFilterFormMixin, forms.ModelForm):
pass
ObjectFilterListMixin
To limit data in ListView use ObjectFilterListMixin:
from django.views.generic import ListView
from django.contrib.auth import get_user_model
from dj_auth.views import ObjectFilterListMixin
class UserListView(ObjectFilterListMixin, ListView):
model = get_user_model()
ObjectFilterDetailMixin
To limit data in DetailView use ObjectFilterDetailMixin:
from django.views.generic import DetailView
from django.contrib.auth import get_user_model
from dj_auth.views import ObjectFilterDetailMixin
class UserDetailView(ObjectFilterDetailMixin, DetailView):
model = get_user_model()
ObjectFilterUpdateMixin
To limit data in UpdateView use ObjectFilterUpdateMixin:
from django.views.generic import UpdateView
from django.contrib.auth import get_user_model
from dj_auth.views import ObjectFilterUpdateMixin
class UserDetailView(ObjectFilterUpdateMixin, UpdateView):
model = get_user_model()
ObjectFilterDeleteMixin
To limit data in UpdateView use ObjectFilterDeleteMixin:
from django.views.generic import DeleteView
from django.contrib.auth import get_user_model
from dj_auth.views import ObjectFilterDeleteMixin
class UserDetailView(ObjectFilterDeleteMixin, DeleteView):
model = get_user_model()
Todo
Running Tests
Does the code actually work?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install -r requirements_test.txt (myenv) $ coverage run --source=dj_auth runtests.py && coverage html
Credits
Tools used in rendering this package:
History
0.1.0 (2016-07-29)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dj_auth-1.4.0.tar.gz.
File metadata
- Download URL: dj_auth-1.4.0.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9781130fa82e4e0f611190750b71d12b333b89e32c5d1a598d34af8826239022
|
|
| MD5 |
a65cf757d26f086a262f11cb2e10d03a
|
|
| BLAKE2b-256 |
dc20c0adf8c633796c0c308ff1ed1738b669aea878384f70ddf6b0cad9e8a71c
|
File details
Details for the file dj_auth-1.4.0-py2.py3-none-any.whl.
File metadata
- Download URL: dj_auth-1.4.0-py2.py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a2f29c4413c75afe6e1f0f1d61259884b81675dc0e59204d02668b19c2ed892
|
|
| MD5 |
aa1f64ca8ed4be898889c370bffedd2e
|
|
| BLAKE2b-256 |
7f7cb7f611d6388f7ee712bd6e0dde388a0c967d4c62f84326e95789a6187373
|