From e61e2bda91f47c515f635988fe34773b1ea7b029 Mon Sep 17 00:00:00 2001 From: Uwe Kamper Date: Tue, 29 Oct 2013 04:20:52 +0100 Subject: [PATCH] #14 Number of total active crew members is now on homepage after the login. --- account/cbase_members.py | 17 ++++++++++++++--- account/templates/home.html | 4 +++- account/views.py | 4 +++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/account/cbase_members.py b/account/cbase_members.py index 2a51617..23e5489 100644 --- a/account/cbase_members.py +++ b/account/cbase_members.py @@ -150,15 +150,26 @@ class MemberValues(object): l.passwd_s(self._get_bind_dn(username), None, new_password) l.unbind_s() + def get_number_of_members(self): + """ + Returns the total number of c-base members with active user accounts. + """ + return len(self.list_users()) + def list_users(self): + """ + Returns a list of strings with all usernames in the group 'crew'. + The list is sorted alphabetically. + """ l = ldap.initialize(settings.CBASE_LDAP_URL) user_dn = self._get_bind_dn() l.simple_bind_s(user_dn, self._password) try: - ldap_result_id = l.search(settings.CBASE_BASE_DN, ldap.SCOPE_SUBTREE, "memberOf=cn=crew,ou=groups,dc=c-base,dc=org", None) + result_id = l.search(settings.CBASE_BASE_DN, ldap.SCOPE_SUBTREE, + "memberOf=cn=crew,ou=groups,dc=c-base,dc=org", None) result_set = [] - while 1: - result_type, result_data = l.result(ldap_result_id, 0) + while True: + result_type, result_data = l.result(result_id, 0) if (result_data == []): break else: diff --git a/account/templates/home.html b/account/templates/home.html index f8f2aaa..1532f92 100644 --- a/account/templates/home.html +++ b/account/templates/home.html @@ -5,7 +5,9 @@

{% trans "Welcome to the c-base member interface" %}

-

{% blocktrans %}Here you can change +

You are one of currently {{ number_of_members }} + c-base members.

+

{% blocktrans %}Here you can change some parameters of your c-base member account.{% endblocktrans %}

{% trans "Basic information about your account" %}

diff --git a/account/views.py b/account/views.py index ca2f34b..2f02fc6 100644 --- a/account/views.py +++ b/account/views.py @@ -72,7 +72,9 @@ def auth_login(request): @login_required def home(request): member = retrieve_member(request) - context = {'member': member.to_dict(), 'groups': request.user.groups.all()} + number_of_members = member.get_number_of_members() + context = {'member': member.to_dict(), 'groups': request.user.groups.all(), + 'number_of_members': number_of_members} return render(request, 'home.html', context) @login_required