def authenticate(self, username=None, password=None): if not password: return None username = username.lower() # works for username and [email protected] username = username.lower().split('@')[0] try: # initialise the LDAP manager l = LDAPManager() result_data = l.search(username,field="cn") # If the user does not exist in LDAP, Fail. if not result_data: return None # Attempt to bind to the user's DN. l.bind(result_data[0][0],password) # Success. The user existed and authenticated. # Get group group = None if result_data[0][1].get("carthageFacultyStatus"): if result_data[0][1]["carthageFacultyStatus"][0] == "A": group = "carthageFacultyStatus" if result_data[0][1].get("carthageStaffStatus"): if result_data[0][1]["carthageStaffStatus"][0] == "A": group = "carthageStaffStatus" if result_data[0][1].get("carthageStudentStatus"): if result_data[0][1]["carthageStudentStatus"][0] == "A": group = "carthageStudentStatus" # Get the user record or create one with no privileges. try: user = User.objects.get(username__exact=username) if not user.last_name: user.last_name = result_data[0][1]['sn'][0] user.first_name = result_data[0][1]['givenName'][0] user.save() try: if group: # add them to their group # or 'except' if they already belong g = Group.objects.get(name__iexact=group) g.user_set.add(user) except: return user except: # Create a User object. user = l.dj_create( result_data, auth_user_pk=settings.LDAP_AUTH_USER_PK ) # Success. return user except Exception, e: # Name or password were bad. Fail permanently. return None
def main(): """ main method """ # initialize the manager l = LDAPManager() """ l = LDAPManager( protocol=settings.LDAP_PROTOCOL_PWM, server=settings.LDAP_SERVER_PWM, port=settings.LDAP_PORT_PWM, user=settings.LDAP_USER_PWM, password=settings.LDAP_PASS_PWM, base=settings.LDAP_BASE_PWM ) """ result = l.search(value,field=field) print result # authenticate if password: auth = l.bind(result[0][0],password) print auth # create a django user if create: user = l.dj_create(result[0][1]["cn"][0],result) print user
def main(): """ main method """ # initialize the manager l = LDAPManager() """ l = LDAPManager( protocol=settings.LDAP_PROTOCOL_PWM, server=settings.LDAP_SERVER_PWM, port=settings.LDAP_PORT_PWM, user=settings.LDAP_USER_PWM, password=settings.LDAP_PASS_PWM, base=settings.LDAP_BASE_PWM ) """ result = l.search(value,field=field) if field == 'carthageDob': for r in result: p = "{cn[0]}|{carthageNameID[0]}|{sn[0]}|{givenName[0]}|{mail[0]}" print p.format(**r[1]) else: print result # authenticate if password: auth = l.bind(result[0][0],password) print auth # create a django user if create: user = l.dj_create(result[0][1]['cn'][0],result) print user
def authenticate(self, username=None, password=None, request=None): if not password: return None username = username.lower() l = LDAPManager() ''' l = LDAPManager( protocol=settings.LDAP_PROTOCOL_PWM, server=settings.LDAP_SERVER_PWM, port=settings.LDAP_PORT_PWM, user=settings.LDAP_USER_PWM, password=settings.LDAP_PASS_PWM, base=settings.LDAP_BASE_PWM ) ''' try: result_data = l.search(username,field='cn') # If the user does not exist in LDAP, Fail. if not result_data and request: request.session['ldap_account'] = False return None # Attempt to bind to the user's DN. l.bind(result_data[0][0],password) # Success. The user existed and authenticated. # Get the user record or create one with no privileges. try: user = User.objects.get(username__exact=username) except: # Create a User object. user = l.dj_create(result_data) # TODO: update the alumni container return user except ldap.INVALID_CREDENTIALS: # Name or password were bad. Fail permanently. if request: request.session['ldap_cn'] = username request.session['ldap_account'] = True request.session['ldap_questions'] = self.get_questions(username) return None
# initialise the LDAP manager l = LDAPManager() result_data = l.search(username,field="cn") if not result_data: print result_data print "fail" else: print result_data print "\n\n" print "dn = %s" % result_data[0][0] print "\n\n" print "Attempt to bind to the user's DN." print "\n\n" l.bind(result_data[0][0],password) # Get group group = None if result_data[0][1].get("carthageFacultyStatus"): if result_data[0][1]["carthageFacultyStatus"][0] == "A": group = "carthageFacultyStatus" print group if result_data[0][1].get("carthageStaffStatus"): if result_data[0][1]["carthageStaffStatus"][0] == "A": group = "carthageStaffStatus" print group if result_data[0][1].get("carthageStudentStatus"): if result_data[0][1]["carthageStudentStatus"][0] == "A":