src/ldt/ldt/security/cache.py
changeset 279 b50206f6238f
child 282 7512c33b64be
equal deleted inserted replaced
278:d16ec14aaf29 279:b50206f6238f
       
     1 from django.core.cache import cache
       
     2 from guardian.core import ObjectPermissionChecker
       
     3 from guardian.shortcuts import assign
       
     4 
       
     5 def get_checker_for(user):
       
     6     key_name = 'checker_%s' % user.username
       
     7     
       
     8     checker = cache.get(key_name)
       
     9     if checker:
       
    10         return checker
       
    11     
       
    12     checker = ObjectPermissionChecker(user)
       
    13     cache.set(key_name, checker, 30)
       
    14     return checker
       
    15 
       
    16 
       
    17 def assign(perm, user_or_group, object):
       
    18     assign(perm, user_or_group, object)
       
    19     
       
    20     if hasattr('username', user_or_group):
       
    21         key = 'checker_%s' % user_or_group.username
       
    22     else:
       
    23         key = 'checker_%s' % user_or_group.name
       
    24         
       
    25     cache.delete('checker_%s' % key)