Return the permissions of `user_obj` from `from_name`. `from_name` can be either "group" or "user" to return permissions from `_get_group_permissions` or `_get_user_permissions` respectively.
(self, user_obj, obj, from_name)
| 107 | return Permission.objects.filter(group__in=user_obj.groups.all()) |
| 108 | |
| 109 | def _get_permissions(self, user_obj, obj, from_name): |
| 110 | """ |
| 111 | Return the permissions of `user_obj` from `from_name`. `from_name` can |
| 112 | be either "group" or "user" to return permissions from |
| 113 | `_get_group_permissions` or `_get_user_permissions` respectively. |
| 114 | """ |
| 115 | if not user_obj.is_active or user_obj.is_anonymous or obj is not None: |
| 116 | return set() |
| 117 | |
| 118 | perm_cache_name = "_%s_perm_cache" % from_name |
| 119 | if not hasattr(user_obj, perm_cache_name): |
| 120 | if user_obj.is_superuser: |
| 121 | perms = Permission.objects.all() |
| 122 | else: |
| 123 | perms = getattr(self, "_get_%s_permissions" % from_name)(user_obj) |
| 124 | perms = perms.values_list("content_type__app_label", "codename").order_by() |
| 125 | setattr( |
| 126 | user_obj, perm_cache_name, {"%s.%s" % (ct, name) for ct, name in perms} |
| 127 | ) |
| 128 | return getattr(user_obj, perm_cache_name) |
| 129 | |
| 130 | async def _aget_permissions(self, user_obj, obj, from_name): |
| 131 | """See _get_permissions().""" |
no test coverage detected