Пример:
Нам надо, определять - имеет ли пользователь право читать данный объект. В backends.py делаем:
class ReaderBackend(object):
supports_object_permissions = True
def has_perm(self, user, perm='r', obj=None):
if obj.is_reader(user):
return True
return False
def authenticate(self):
pass
, где параметр supports_object_permissions = True как раз определяет поддержку прав на объекты
Во views.py:
@login_required
def tasks_list_by_tag(request, project_slug, tag_id):
project = get_object_or_404(Project, slug=project_slug)
if not request.user.has_perm('r', project):
return HttpResponseRedirect(project.get_noaccess_url())
...
В settings.py:
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'backends.ReaderBackend',
...
)
Комментариев нет:
Отправить комментарий