def has_object_perm(self, user_obj, perm=None, obj=None):
"""
Validate permissions for the object specified. If there is not object should be validated before with
the `contrib.auth.backends.ModelBackend`.
Is required class permission to has permission over an object of the class.
permissions: `change` `delete` `view`
"""
if not user_obj.is_active or user_obj.is_anonymous or not all([perm, obj]):
return False
# validation object permission
obj_permission_label = '_has_perm_cache_{}_{}'.format(slugify(perm), obj.id)
if not hasattr(user_obj, obj_permission_label):
setattr(user_obj, obj_permission_label, self._has_object_permissions(user_obj, perm, obj))
return getattr(user_obj, obj_permission_label)
评论列表
文章目录