equal
deleted
inserted
replaced
|
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) |