Middleware to make user information always available.
Project description
Overview
cuser will bring you Current user of your django application from anywhere in your code. I know, sounds fantastic ;)
Supported Python versions
django-cuser currently can be run on multiple python versions:
Python 2 (2.7)
Python 3 (3.4, 3.5)
PyPy
Installing
django-cuser is also available at http://pypi.python.org/pypi/django-cuser So it can be install it by pip or easy_install:
$ pip install django-cuser
Or you can grab the latest version tarball:
$ python setup.py install
To enable django-cuser in your project
Add cuser to INSTALLED_APPS in your settings.py
Add cuser.middleware.CuserMiddleware to MIDDLEWARE_CLASSES after the authentication and session middleware.
Who is the current user
To set/get the user info, there is the following API:
from cuser.middleware import CuserMiddleware
Set the current user for this thread. Accepts user objects and login names:
CuserMiddleware.set_user(some_user)
Get the current user or None:
user = CuserMiddleware.get_user()
This will return some_user if there is no current user:
user = CuserMiddleware.get_user(some_user)
Forget the current user. It is always safe to call this, even if there is no current user:
CuserMiddleware.del_user()
The middleware automatically sets/deletes the current user for HTTP requests. For other uses (management commands, scripts), you will need to do this yourself.
CurrentUserField
cuser also provides a CurrentUserField, which can be used for auditing purposes. Use it as follows:
from cuser.fields import CurrentUserField
class MyModel(models.Model): .... creator = CurrentUserField(add_only=True, related_name="created_mymodels") last_editor = CurrentUserField(related_name="last_edited_mymodels") ...
This field is a ForeignKey to the settings.AUTH_USER_MODEL model and you can treat it as such.
Tests
django-cuser has been tested Django 1.8 and later. To run the the tests:
$ python manage.py test -v 2
It’s also available on travis-ci:
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
Hashes for django_cuser-2017.3.16-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf5c3b4f7f4c9fd583f81c3ef16e5ba9e819c70aa1f6a5e8452c784c0a7297ec |
|
MD5 | 647c6e09855ac791cf56017befa477b4 |
|
BLAKE2b-256 | 7d7e3005eb0a0b1f189ff9b6a8d23529bf46c7b8dfb1d4324275990792da3a29 |