src/cm/security.py
changeset 210 e4715ab65e2d
parent 102 f5d3ea4bd03c
child 284 730dd9fb2c77
child 287 fc5ed157ebfe
--- a/src/cm/security.py	Thu Mar 11 09:58:09 2010 +0100
+++ b/src/cm/security.py	Thu Mar 11 15:37:38 2010 +0100
@@ -53,7 +53,11 @@
         if UserRole.objects.filter(Q(user=user),Q(text=text),~Q(role=None)): # if non void local role
             return UserRole.objects.filter(user=user).filter(text=text).filter(Q(role__permissions__codename__exact=perm_name)).count() != 0
         else:
-            return UserRole.objects.filter(user=user).filter(text=None).filter(Q(role__permissions__codename__exact=perm_name)).count() != 0            
+            # local role for anon users
+            # OR global role for anon users
+            # OR global role for this user
+            return UserRole.objects.filter(Q(user=user) | Q(user=None)).filter(Q(text=None) | Q(text=text)).filter(Q(role__permissions__codename__exact=perm_name)).count() != 0            
+            #return UserRole.objects.filter(user=user).filter(text=None).filter(Q(role__permissions__codename__exact=perm_name)).count() != 0
         
 def has_own_perm(request, perm_name, text, comment):