Make ldap_auth a bit more DRY

This commit is contained in:
Richard Vézina
2015-10-06 14:30:50 -04:00
parent bb2aa29867
commit 0036d9c45b
+14 -22
View File
@@ -419,32 +419,24 @@ def ldap_auth(server='ldap', port=None,
store_user_mail = result[user_mail_attrib][0] store_user_mail = result[user_mail_attrib][0]
except KeyError, e: except KeyError, e:
store_user_mail = None store_user_mail = None
try: update_or_insert_values = {'first_name': store_user_firstname,
# 'last_name': store_user_lastname,
'email': store_user_mail}
if '@' not in username:
# user as username # user as username
# ################# # ################
fields = ['first_name', 'last_name', 'email']
user_in_db = db(db.auth_user.username == username) user_in_db = db(db.auth_user.username == username)
if user_in_db.count() > 0: elif '@' in username:
user_in_db.update(first_name=store_user_firstname,
last_name=store_user_lastname,
email=store_user_mail)
else:
db.auth_user.insert(first_name=store_user_firstname,
last_name=store_user_lastname,
email=store_user_mail,
username=username)
except:
#
# user as email # user as email
# ############## # #############
fields = ['first_name', 'last_name']
user_in_db = db(db.auth_user.email == username) user_in_db = db(db.auth_user.email == username)
if user_in_db.count() > 0: update_or_insert_values = {f: update_or_insert_values[f] for f in fields}
user_in_db.update(first_name=store_user_firstname, if user_in_db.count() > 0:
last_name=store_user_lastname) user_in_db.update(**update_or_insert_values)
else: else:
db.auth_user.insert(first_name=store_user_firstname, db.auth_user.insert(**update_or_insert_values)
last_name=store_user_lastname,
email=username)
con.unbind() con.unbind()
if manage_groups: if manage_groups: