commit
e2f06c635e
5 changed files with 104 additions and 0 deletions
@ -0,0 +1,10 @@ |
|||||||
|
*.py? |
||||||
|
*.sw? |
||||||
|
*~ |
||||||
|
.coverage |
||||||
|
.tox |
||||||
|
/*.egg-info |
||||||
|
/MANIFEST |
||||||
|
build |
||||||
|
dist |
||||||
|
__pycache__ |
@ -0,0 +1,18 @@ |
|||||||
|
# django-requestuser |
||||||
|
|
||||||
|
Usage: |
||||||
|
|
||||||
|
add requestuser.RequestUserMiddleware to your middleware |
||||||
|
|
||||||
|
MIDDLEWARE_CLASSES = [ |
||||||
|
... |
||||||
|
'requestuser.RequestUserMiddleware' |
||||||
|
] |
||||||
|
|
||||||
|
|
||||||
|
now you can get current user via: |
||||||
|
|
||||||
|
from requestuser import get_request_user |
||||||
|
|
||||||
|
user = get_request_user() |
||||||
|
|
@ -0,0 +1,3 @@ |
|||||||
|
__version__ = '0.1' |
||||||
|
|
||||||
|
from .requestuser import get_request_user, RequestUserMiddleware |
@ -0,0 +1,34 @@ |
|||||||
|
import threading |
||||||
|
from django.utils.deprecation import MiddlewareMixin |
||||||
|
|
||||||
|
|
||||||
|
_active = threading.local() |
||||||
|
|
||||||
|
|
||||||
|
def activate(user): |
||||||
|
if user.is_anonymous(): |
||||||
|
_active.user = None |
||||||
|
else: |
||||||
|
_active.user = user.pk |
||||||
|
|
||||||
|
|
||||||
|
def get_request_user(): |
||||||
|
from django.contrib.auth import get_user_model |
||||||
|
from django.contrib.auth.models import AnonymousUser |
||||||
|
if not hasattr(_active, 'user') or _active.user is None: |
||||||
|
user = AnonymousUser() |
||||||
|
else: |
||||||
|
User = get_user_model() |
||||||
|
user = User.objects.get(pk=_active.user) |
||||||
|
return user |
||||||
|
|
||||||
|
|
||||||
|
class RequestUserMiddleware(MiddlewareMixin): |
||||||
|
|
||||||
|
def process_request(self, request): |
||||||
|
activate(request.user) |
||||||
|
|
||||||
|
''' |
||||||
|
def process_response(self, request, response): |
||||||
|
return response |
||||||
|
''' |
@ -0,0 +1,39 @@ |
|||||||
|
#!/usr/bin/env python3 |
||||||
|
from setuptools import find_packages, setup |
||||||
|
|
||||||
|
setup( |
||||||
|
name='django-requestuser', |
||||||
|
version=__import__('requestuser').__version__, |
||||||
|
description='Make current request.user available to templates', |
||||||
|
author='j', |
||||||
|
author_email='j@mailb.org', |
||||||
|
url='https://r-w-x.org/django-requestuser.git', |
||||||
|
license='BSD License', |
||||||
|
platforms=['OS Independent'], |
||||||
|
packages=find_packages( |
||||||
|
exclude=['tests', 'testapp'] |
||||||
|
), |
||||||
|
include_package_data=True, |
||||||
|
install_requires=[ |
||||||
|
# 'Django>=1.9', commented out to make `pip install -U` easier |
||||||
|
], |
||||||
|
dependency_links=[ |
||||||
|
], |
||||||
|
extras_require={ |
||||||
|
}, |
||||||
|
classifiers=[ |
||||||
|
'Development Status :: 4 - Beta', |
||||||
|
'Environment :: Web Environment', |
||||||
|
'Framework :: Django', |
||||||
|
'Intended Audience :: Developers', |
||||||
|
'License :: OSI Approved :: BSD License', |
||||||
|
'Operating System :: OS Independent', |
||||||
|
'Programming Language :: Python', |
||||||
|
'Programming Language :: Python :: 3', |
||||||
|
'Programming Language :: Python :: 3.4', |
||||||
|
'Programming Language :: Python :: 3.5', |
||||||
|
'Programming Language :: Python :: 3.6', |
||||||
|
'Topic :: Software Development', |
||||||
|
], |
||||||
|
zip_safe=False, |
||||||
|
) |
Loading…
Reference in new issue