Допустим, я создал (надеюсь) многоразовое приложение, fooapp
:многоразовых приложений и контроль доступа
urls.py
urls('^(?P<userid>\d+)/$', views.show_foo),
и views.py приложения Foo в:
def show_foo(request, userid):
usr = shortcuts.get_object_or_404(User, pk=userid)
... display a users' foo ...
return render_to_response(...)
Поскольку это приложение многократного использования, оно не указывает никакого контроля доступа (например, @login_required
).
В urls.py сайта/проекта, приложение входит:
urls('^foo/', include('fooapp.urls')),
Как/где я могу указать, что в этом месте только сотрудники должны быть предоставлен доступ, чтобы увидеть Foo пользователя?
Как насчет того, если в дополнение к сотрудникам пользователи должны иметь возможность просматривать свои собственные foo (login_required
+ request.user.id == userid
)?
я не нашел каких-либо очевидных параметров включить ..
Примечание: это связано с контролем доступа, а не разрешения, т.е. require_staff
User.is_staff
чеки, чеки login_required
если request.user
авторизован, и пользователь -view-their-own-page описан выше. Этот вопрос касается того, как сайт может указывать контроль доступа для многоразового приложения.
Возможный дубликат [Как использовать Django группы и завивка isions?] (http://stackoverflow.com/questions/4778685/how-do-i-use-django-groups-and-permissions) – maazza
Я предполагаю, что правильный способ сделать это - предоставить параметры конфигурации, такие как 'FOO_ALLOW_USER_VIEW' или 'FOO_REQUIRE_STAFF' с некоторыми значениями по умолчанию, которые вы предоставляете, которые могут быть перезаписаны в конфигурации сайтов. – Maciek
@maazza нет, не дубликат этого вопроса (или ответа). Я не думаю, что они связаны каким-либо образом, за исключением того, что управление доступом может использовать разрешения - хотя я специально опускаю необходимость разрешений в этом вопросе. – thebjorn