Browse Source

django-requestuser

master 0.1
j 8 years ago
commit
e2f06c635e
  1. 10
      .gitignore
  2. 18
      README.md
  3. 3
      requestuser/__init__.py
  4. 34
      requestuser/requestuser.py
  5. 39
      setup.py

10
.gitignore vendored

@ -0,0 +1,10 @@
*.py?
*.sw?
*~
.coverage
.tox
/*.egg-info
/MANIFEST
build
dist
__pycache__

18
README.md

@ -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()

3
requestuser/__init__.py

@ -0,0 +1,3 @@
__version__ = '0.1'
from .requestuser import get_request_user, RequestUserMiddleware

34
requestuser/requestuser.py

@ -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
'''

39
setup.py

@ -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…
Cancel
Save