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.
Metadata
Release files for dj-auth 1.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dj_auth-1.5.1.tar.gz | 12.2 kB | Without provenance | Details for dj_auth-1.5.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dj_auth-1.5.1-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for dj_auth-1.5.1-py2.py3-none-any.whl |
Total release size: 28.4 kB
Release files / dj_auth-1.5.1.tar.gz
| Download URL | dj_auth-1.5.1.tar.gz |
|---|---|
| Size | 12.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
845df13beb3695b76d939c6603a26459a5401da0c6be938f0abcd1cb89b3d65a
|
|
BLAKE2b-256 checksum How to use checksums |
caaa0558ae1e68f2b0560e58b2ae8d224d872f8491485ad3e1c35502d70856ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8
|
Release files / dj_auth-1.5.1-py2.py3-none-any.whl
| Download URL | dj_auth-1.5.1-py2.py3-none-any.whl |
|---|---|
| Size | 16.1 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
836c7b6f5dbc5d517e08ac36b59e62be4625e18c037fd6c9d4562a76896b7fb5
|
|
BLAKE2b-256 checksum How to use checksums |
46eccd58ce84e66deeaacbf2b4d3b625ffcf1b991ee41ba13f2073306be92a1c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8
|
Security for dj-auth 1.5.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.