def membership_create_user(request, username): try: AuthenticationData.objects.get(username=username, backend=RADIUS_BACKEND_NAME) # Account already exists raise Http404 except AuthenticationData.DoesNotExist: pass if request.method == 'POST': form = CreateUserForm(request.POST) if form.is_valid(): user = form.save(commit=False) user.username = username user.set_unusable_password() user.save() data = AuthenticationData(user=user, backend=RADIUS_BACKEND_NAME, username=username) data.save() profile = Profile(user=user) profile.save() membership, membership_created = Membership.objects.get_or_create( user=user, organization=request.organization) if membership_created: log.membership_created(request.user, membership) return redirect(membership_edit, pk=membership.pk) else: form = CreateUserForm(initial={'username': username}) return render(request, 'membership/create_user.html', locals())
def membership_add(request): if request.method == 'POST': form = MembershipAddForm(request.POST) if form.is_valid(): username = form.cleaned_data['username'] try: authentication_data = AuthenticationData.objects.get(username=username, backend=RADIUS_BACKEND_NAME) except AuthenticationData.DoesNotExist: return redirect(membership_create_user, username=username) user = authentication_data.user membership, is_new = Membership.objects.get_or_create(user=user, organization=request.organization) if is_new: log.membership_created(request.user, membership) return redirect(membership_edit, pk=membership.pk) else: form = MembershipAddForm() return render(request, 'membership/form.html', locals())