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