fixed accessible_query

This commit is contained in:
Massimo Di Pierro
2012-04-17 21:22:11 -05:00
parent ba64a96eba
commit 04a82409fe
2 changed files with 18 additions and 7 deletions
+1 -1
View File
@@ -1 +1 @@
Version 1.99.7 (2012-04-17 15:29:12) dev Version 1.99.7 (2012-04-17 21:21:45) dev
+17 -6
View File
@@ -2922,16 +2922,27 @@ class Auth(object):
""" """
if not user_id: if not user_id:
user_id = self.user_id user_id = self.user_id
if self.has_permission(name, table, 0, user_id): if isinstance(table,str) and table in self.db.tables():
table = self.db[table]
if not isinstance(table,str) and\
self.has_permission(name, table, 0, user_id):
return table.id > 0 return table.id > 0
db = self.db db = self.db
membership = self.settings.table_membership membership = self.settings.table_membership
permission = self.settings.table_permission permission = self.settings.table_permission
return table.id.belongs(db(membership.user_id == user_id)\ query = table.id.belongs(
(membership.group_id == permission.group_id)\ db(membership.user_id == user_id)\
(permission.name == name)\ (membership.group_id == permission.group_id)\
(permission.table_name == table)\ (permission.name == name)\
._select(permission.record_id)) (permission.table_name == table)\
._select(permission.record_id))
if self.settings.everybody_group_id:
query|=table.id.belongs(
db(permission.group_id==self.settings.everybody_group_id)\
(permission.name == name)\
(permission.table_name == table)\
._select(permission.record_id))
return query
@staticmethod @staticmethod
def archive(form, def archive(form,