summaryrefslogtreecommitdiff
path: root/pgcommitfest/commitfest/ajax.py
diff options
context:
space:
mode:
authorMagnus Hagander2014-07-19 13:04:53 +0000
committerMagnus Hagander2014-07-19 13:04:53 +0000
commit97040264f92881ac3afd31b87bb62d53237eb8ea (patch)
treedf0da003d65fbad06e3d44b0cfdbebd43566212d /pgcommitfest/commitfest/ajax.py
parent3cd75adbf319981972abca99b6c0753e6e69bfdb (diff)
Add functionality to import upstream users
Diffstat (limited to 'pgcommitfest/commitfest/ajax.py')
-rw-r--r--pgcommitfest/commitfest/ajax.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/pgcommitfest/commitfest/ajax.py b/pgcommitfest/commitfest/ajax.py
index 06f6691..d1d8bcb 100644
--- a/pgcommitfest/commitfest/ajax.py
+++ b/pgcommitfest/commitfest/ajax.py
@@ -3,6 +3,7 @@ from django.http import HttpResponse, Http404
from django.conf import settings
from django.views.decorators.csrf import csrf_exempt
from django.contrib.auth.decorators import login_required
+from django.contrib.auth.models import User
from django.db import transaction
import httplib
@@ -10,6 +11,8 @@ import socket
import urllib
import simplejson
+from auth import user_search
+
class HttpResponseServiceUnavailable(HttpResponse):
status_code = 503
@@ -148,11 +151,38 @@ def detachThread(request):
return 'OK'
+def searchUsers(request):
+ if request.GET.has_key('s') and request.GET['s']:
+ return user_search(request.GET['s'])
+ else:
+ return []
+
+def importUser(request):
+ if request.GET.has_key('u') and request.GET['u']:
+ u = user_search(userid=request.GET['u'])
+ if len (u) != 1:
+ return "Internal error, duplicate user found"
+
+ u = u[0]
+
+ if User.objects.filter(username=u['u']).exists():
+ return "User already exists"
+ User(username=u['u'],
+ first_name=u['f'],
+ last_name=u['l'],
+ email=u['e'],
+ password='setbypluginnotsha1',
+ ).save()
+ return 'OK'
+ else:
+ raise Http404()
_ajax_map={
'getThreads': getThreads,
'attachThread': attachThread,
'detachThread': detachThread,
+ 'searchUsers': searchUsers,
+ 'importUser': importUser,
}
# Main entrypoint for /ajax/<command>/