diff --git a/account/models.py b/account/models.py index a6b396c..f1844fb 100644 --- a/account/models.py +++ b/account/models.py @@ -38,6 +38,7 @@ class UserProfile(models.Model): is_ldap_admin = models.BooleanField(default=False, editable=False) is_circle_member = models.BooleanField(default=False, editable=False) is_clab_member = models.BooleanField(default=False, editable=False) + is_ceymaster = models.BooleanField(default=False, editable=False) def __unicode__(self): return 'Profile: %s' % self.user.username diff --git a/account/templates/base.html b/account/templates/base.html index 0445736..158baa7 100644 --- a/account/templates/base.html +++ b/account/templates/base.html @@ -71,20 +71,18 @@ @@ -120,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 86030b7..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,19 +25,28 @@ from password_encryption import * def landingpage(request): if request.user.is_authenticated(): return HttpResponseRedirect('/account') - form = LoginForm() - is_ceymaster = is_admin = False - if 'ceymaster' in [g.name for g in request.user.groups.all()]: - is_ceymaster = True - if 'ldap_admins' in [g.name for g in request.user.groups.all()]: - is_admin = True - 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 '/' diff --git a/cbmi/settings.py b/cbmi/settings.py index 0afab4f..c74ecf9 100644 --- a/cbmi/settings.py +++ b/cbmi/settings.py @@ -143,6 +143,7 @@ AUTH_LDAP_PROFILE_FLAGS_BY_GROUP = { "is_ldap_admin": "cn=ldap_admins,ou=groups,dc=c-base,dc=org", "is_circle_member": "cn=circle,ou=groups,dc=c-base,dc=org", "is_clab_member": "cn=cey-c-lab,ou=groups,dc=c-base,dc=org", + "is_ceymaster": "cn=ceymaster,ou=groups,dc=c-base,dc=org", } AUTH_LDAP_USER_ATTR_MAP = {