src/ldt/ldt/security/utils.py
changeset 549 0313c23ffe7e
parent 503 4be5eba42451
child 795 923429f142ea
--- a/src/ldt/ldt/security/utils.py	Thu Feb 09 11:48:48 2012 +0100
+++ b/src/ldt/ldt/security/utils.py	Thu Feb 09 15:13:32 2012 +0100
@@ -1,7 +1,8 @@
 from django.conf import settings
 from django.contrib.contenttypes.models import ContentType
+from django.core.cache import cache
 from guardian.shortcuts import assign, remove_perm, get_users_with_perms, get_groups_with_perms, get_objects_for_user
-from cache import get_cached_userlist
+from cache import get_cached_userlist, cached_assign
 from ldt.security import change_security, get_current_user
 import types
   
@@ -75,11 +76,11 @@
     old_groups = get_groups_with_perms(object)
     
     for elem in read_list:
-        assign('view_%s' % name, elem, object)
+        cached_assign('view_%s' % name, elem, object)
         if elem in write_list:
-            assign('change_%s' % name, elem, object)
+            cached_assign('change_%s' % name, elem, object)
         else:
-            remove_perm('change_%s' % name, elem, object)            
+            remove_perm('change_%s' % name, elem, object) 
                 
     def remove_perms(new_list, old_list, obj, name):
         for e in old_list:
@@ -88,7 +89,9 @@
                 remove_perm('change_%s' % name, e, obj)
                 
     remove_perms(read_list, old_users, object, name)
-    remove_perms(read_list, old_groups, object, name) 
+    remove_perms(read_list, old_groups, object, name)
+    cache.delete('userlist')           
+ 
     
 def get_userlist(user, filter=None):
     user_list = get_cached_userlist().exclude(id=user.id)