Как я могу ограничить доступ к определенным адресам в зависимости от вошедшего пользователя?
Прежде всего, я хочу уточнить, что я новичок в этом деле, поэтому если я не справлюсь с некоторыми концепциями, я заранее извиняюсь.
Я настроил административную панель django, с пользователем администратора и двумя другими пользователями, которые должны иметь различные разрешения для доступа к определенным адресам веб-среды.
На главной странице есть три заголовка со ссылками на три разных раздела страницы: РАЗДЕЛ A, РАЗДЕЛ B И РАЗДЕЛ C.
Я хочу иметь пользователя, который имеет доступ ко всем разделам страницы, и другого пользователя, который имеет доступ только к двум разделам.
Как я могу это сделать?
Еще мне нужно следующее: в моей конфигурации, по умолчанию, когда вы запускаете веб-сервер, первое, что открывается - это портал администрирования django, но мне нужно, чтобы при входе в систему с пользователем, доступ был непосредственно к url, который имеет права.
Заранее спасибо
Сделайте что-то вроде этого в вашем шаблоне,
// Section A for all users
{% if user.is_staff %}
// Section B for staff admin users only
{% elif request.user.has_perm('the_permission_name') or user.is_staff %}
// Section C for staff or user that has first permission
{% elif request.user.has_perm('the_other_permission_name') or user.is_staff %}
// Section D for staff or user that has the other permission
{% endif %}
Посмотрите на https://docs.djangoproject.com/en/4.0/topics/auth/default/#permissions-and-authorization для установки и создания разрешений.
Но я думаю, что на этот вопрос уже есть ответ здесь, Проверка разрешения внутри шаблона в Django