def create_user(request): context = {} context_instance = RequestContext(request) form = UserCreateForm(request.POST or None) context['form'] = form if request.user.is_authenticated(): return redirect('/user/dashboard') if request.method == 'POST' and form.is_valid(): first_name = form.cleaned_data['first_name'] last_name = form.cleaned_data['last_name'] username = form.cleaned_data['username'] password = form.cleaned_data['password'] email = form.cleaned_data['email'] phone = form.cleaned_data['phone'] try: users_manager.create_user(first_name, last_name, username, password, email, phone) # authenticate and login user = authenticate(username=username, password=password) login_auth(request, user) return redirect('/user/dashboard') except Exception as exc: # 400 form.errors['__all__'] = form.error_class(["Error: %s" % exc.message]) # GET / POST with invalid input return render_to_response('user/create.html', context, context_instance=context_instance)
def create_invited_user(request, key): context = {} context['key'] = key invitation = users_manager.get_invitation(key) if request.user.is_authenticated(): return redirect('/user/dashboard') if request.method == 'POST': form = InvitedUserCreateForm(request.POST) if form.is_valid() and invitation != None: first_name = form.cleaned_data['first_name'] last_name = form.cleaned_data['last_name'] username = form.cleaned_data['username'] password = form.cleaned_data['password'] phone = form.cleaned_data['phone'] try: users_manager.create_user(first_name, last_name, username, password, invitation.email, phone) bands_manager.add_band_member(invitation.band.id, username) # authenticate and login user = authenticate(username=username, password=password) login_auth(request, user) return redirect('/user/dashboard') except Exception as exc: # 400 form.errors['__all__'] = form.error_class(["Error: %s" % exc.message]) elif invitation != None: form = InvitedUserCreateForm({'email': invitation.email}) else: redirect('/404') # GET / POST with invalid input context['form'] = form return render_to_response('user/create.html', context, context_instance=RequestContext(request))