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(
'There is no username or email for %s!' % username)
raise
if not db.can_join():
# 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 == group_ids)
else:
# if old pydal version, assume this is a relational database which can do joins
db_can_join = db.can_join() if hasattr(db, 'can_join') else True
if db_can_join:
db_group_search = db(
(db.auth_membership.user_id == db_user_id) &
(db.auth_user.id == db.auth_membership.user_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_group_id = dict()