aboutsummaryrefslogtreecommitdiff
path: root/djangopypi/views/users.py
blob: a58ac3ec2073ae3093bc8e9c7730081be89c5130 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from django.http import HttpResponse, HttpResponseBadRequest

from registration.forms import RegistrationForm
from registration.backends import get_backend

DEFAULT_BACKEND = "registration.backends.default.DefaultBackend"


def create_user(request, post_data, files, backend_name=DEFAULT_BACKEND):
    """Create new user from a distutil client request"""
    form = RegistrationForm({"username": post_data["name"],
                             "email": post_data["email"],
                             "password1": post_data["password"],
                             "password2": post_data["password"]})
    if not form.is_valid():
        # Dist Utils requires error msg in HTTP status: "HTTP/1.1 400 msg"
        # Which is HTTP/WSGI incompatible, so we're just returning a empty 400.
        return HttpResponseBadRequest()

    backend = get_backend(backend_name)
    if not backend.registration_allowed(request):
        return HttpResponseBadRequest()
    new_user = backend.register(request, **form.cleaned_data)
    return HttpResponse("OK\n", status=200, mimetype='text/plain')