From e66ba60bf18bf6efb698c89df6a7f4aa374548b8 Mon Sep 17 00:00:00 2001 From: Brian Wiborg Date: Sun, 24 Nov 2013 23:49:12 +0100 Subject: [PATCH] check nickname feature - closes #20 --- account/templates/base.html | 38 ++++++++++++++++++++++++++++--------- account/views.py | 22 +++++++++++++++++---- 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/account/templates/base.html b/account/templates/base.html index e7b72e1..158baa7 100644 --- a/account/templates/base.html +++ b/account/templates/base.html @@ -118,16 +118,36 @@

Login

-
- {% csrf_token %} - {{ form|crispy }} -
-
- + + {% csrf_token %} + {{ login_form|crispy }} +
+
+ +
-
- + +
+
+ +
+
+ +
+
+
+ {% if not check_nickname == "" %} + {% if check_nickname %} +
+ {% blocktrans %}This nick is already taken.{% endblocktrans %} +
+ {% else %} +
+ {% blocktrans %}This nick is still available.{% endblocktrans %} +
+ {% endif %} + {% endif %}
diff --git a/account/views.py b/account/views.py index 927aab1..4dbc420 100644 --- a/account/views.py +++ b/account/views.py @@ -6,7 +6,7 @@ import hashlib import smbpasswd from django.conf import settings -from django.http import HttpResponseRedirect +from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render_to_response from django.template.context import RequestContext from django.contrib.auth import login, logout, authenticate @@ -25,14 +25,28 @@ from password_encryption import * def landingpage(request): if request.user.is_authenticated(): return HttpResponseRedirect('/account') - form = LoginForm() - groups = Group.objects.all() + login_form = LoginForm() try: + # just in case the group hasn't yet been synced admins = Group.objects.get(name="ldap_admins").user_set.all() except: + # else provide an emtpy list admins = [] - return render(request, 'base.html', {'form': form, 'admins': admins}) + # https://github.com/c-base/cbmi/issues/20 + # check if nick is still available feature + check_nickname = request.GET.get('check_nickname', '') + if check_nickname: + try: + user = User.objects.get(username=check_nickname) + check_nickname = True + # output as text if requested + if request.GET.get('raw', ''): + return HttpResponse(check_nickname) + except: + check_nickname = False + + return render(request, 'base.html', locals()) def auth_login(request): redirect_to = request.GET.get('next', '') or '/'