summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/django_co_connector/models.py8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/django_co_connector/models.py b/src/django_co_connector/models.py
index c21bdfd..5832b88 100644
--- a/src/django_co_connector/models.py
+++ b/src/django_co_connector/models.py
@@ -53,11 +53,9 @@ def deny(object,group,permission):
def can(object,user,permission):
if not hasattr(object,'acl'):
raise Exception,"no acl property"
-
- for ace in object.acl:
- if ace.permission == permission and not ace.group:
- return True
- if ace.permission == permission and ace.group in user.groups:
+ # XXX use more sql here
+ for ace in object.acl.filter(permission=permission):
+ if not ace.group or ace.group in user.groups:
return True
return False