diff --git a/account/cbase_members.py b/account/cbase_members.py index b81d187..aec343b 100644 --- a/account/cbase_members.py +++ b/account/cbase_members.py @@ -250,3 +250,10 @@ class MemberValues(object): except Exception: LOGGER.exception('list_users failed') return [] + + +def get_ldap_admins(): + session = ldap.initialize(settings.CBASE_LDAP_URL) + session.search('cn=ldap_admins,ou=groups,dc=c-base,dc=org', ldap.SCOPE_BASE) + result = session.result() + return [x.decode().split(',')[0].split('=')[1] for x in result[1][0][1].get('member')] diff --git a/account/views.py b/account/views.py index 4d41236..ed406c9 100755 --- a/account/views.py +++ b/account/views.py @@ -18,7 +18,7 @@ from django.shortcuts import render from django.utils.translation import ugettext as _ import smbpasswd -from account.cbase_members import retrieve_member, MemberValues +from account.cbase_members import retrieve_member, MemberValues, get_ldap_admins from account.forms import GastroPinForm, WlanPresenceForm, LoginForm, \ PasswordForm, RFIDForm, NRF24Form, SIPPinForm, CLabPinForm, AdminForm, \ PreferredEmailForm @@ -31,7 +31,8 @@ def landingpage(request): login_form = LoginForm() try: # just in case the group hasn't yet been synced - admins = Group.objects.get(name="ldap_admins").user_set.all() + # admins = Group.objects.filter(name__in=get_ldap_admins()).user_set.all() + admins = get_ldap_admins() except Exception: # else provide an emtpy list admins = []