Django - перенаправление на страницу входа против 403 - PullRequest
4 голосов
/ 04 декабря 2010

Почему Django перенаправляет пользователя на страницу входа при попытке доступа к страницам, защищенным разрешениями? Разве не было бы больше смысла поднять 403? Затем я мог бы показать пользователю значимое сообщение в 403.html (используя пользовательское промежуточное ПО), сказав, что у него нет прав на выполнение действия. Кроме того, я смогу идентифицировать ссылки на представления, которые пользователь даже не должен поначалу показывать, или пользователи пытаются получить доступ к запрещенным ресурсам.

Ответы [ 2 ]

2 голосов
/ 04 декабря 2010

Если вы говорите о декораторе login_required, нет никаких причин, по которым у вас есть для его использования. Вы могли бы написать аналогичный декоратор, который выполнил бы то, что вы искали (верните ответ 403).

К сожалению, код декоратора login_required на самом деле несколько сложен, поэтому было бы несложно просто скопировать / изменить его для ваших нужд, поскольку часть перенаправления фактически находится внутри функции user_passes_test они используют.

0 голосов
/ 05 июля 2019

Для будущих гуглов декоратор permission_required принимает необязательный аргумент ключевого слова raise_exception, который вызовет 403, если у пользователя нет соответствующих разрешений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...