forked from django/djangoproject.com
-
Notifications
You must be signed in to change notification settings - Fork 0
/
svnauth.wsgi
51 lines (42 loc) · 1.19 KB
/
svnauth.wsgi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
"""
This file's a hack working around WSGIAuthGroupScript not working.
"""
import os
import sys
import site
#
# Bootstrap
#
SITE_PACKAGES = '/home/www/djangoproject.com/lib/python2.6/site-packages'
# Remember original sys.path.
prev_sys_path = list(sys.path)
# Add each new site-packages directory.
site.addsitedir(SITE_PACKAGES)
# Reorder sys.path so new directories at the front.
new_sys_path = []
for item in list(sys.path):
if item not in prev_sys_path:
new_sys_path.append(item)
sys.path.remove(item)
sys.path[:0] = new_sys_path
# Bootstrap Django
here = os.path.dirname(__file__)
parent = os.path.dirname(here)
sys.path.append(parent)
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_website.settings.www'
#
# WSGI auth handler
#
from django import db
from django.contrib.auth.models import User
def check_password(environ, user, password):
try:
user = User.objects.get(username=user, is_active=True)
if user.check_password(password):
# HACK ALERT!
return 'committers' in [g.name.lower() for g in user.groups.all()]
return False
except User.DoesNotExist:
return None
finally:
db.connection.close()