diff options
author | Magnus Hagander | 2014-07-19 13:04:53 +0000 |
---|---|---|
committer | Magnus Hagander | 2014-07-19 13:04:53 +0000 |
commit | 97040264f92881ac3afd31b87bb62d53237eb8ea (patch) | |
tree | df0da003d65fbad06e3d44b0cfdbebd43566212d /pgcommitfest/commitfest/ajax.py | |
parent | 3cd75adbf319981972abca99b6c0753e6e69bfdb (diff) |
Add functionality to import upstream users
Diffstat (limited to 'pgcommitfest/commitfest/ajax.py')
-rw-r--r-- | pgcommitfest/commitfest/ajax.py | 30 |
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>/ |