minor compatibility fix in ldap_auth

This commit is contained in:
mdipierro
2015-04-26 08:39:47 -05:00
parent 756aec7206
commit e943aa9c25
2 changed files with 10 additions and 8 deletions
+9 -7
View File
@@ -521,17 +521,19 @@ def ldap_auth(server='ldap', port=None,
logging.error( logging.error(
'There is no username or email for %s!' % username) 'There is no username or email for %s!' % username)
raise raise
if not db.can_join(): # if old pydal version, assume this is a relational database which can do joins
# no joins on NoSQL databases, perform two queries db_can_join = db.can_join() if hasattr(db, 'can_join') else True
db_group_search = db(db.auth_membership.user_id == db_user_id) if db_can_join:
group_ids = [x.group_id for x in db_group_search.select(
db.auth_membership.group_id, distinct=True)]
db_group_search = db(db.auth_group.id == group_ids)
else:
db_group_search = db( db_group_search = db(
(db.auth_membership.user_id == db_user_id) & (db.auth_membership.user_id == db_user_id) &
(db.auth_user.id == db.auth_membership.user_id) & (db.auth_user.id == db.auth_membership.user_id) &
(db.auth_group.id == db.auth_membership.group_id)) (db.auth_group.id == db.auth_membership.group_id))
else:
# no joins on NoSQL databases, perform two queries
db_group_search = db(db.auth_membership.user_id == db_user_id)
group_ids = [x.group_id for x in db_group_search.select(
db.auth_membership.group_id, distinct=True)]
db_group_search = db(db.auth_group.id.belongs(group_ids))
db_groups_of_the_user = list() db_groups_of_the_user = list()
db_group_id = dict() db_group_id = dict()