Статьи о создании сайтов
Какие поля разрешать редактировать пользователю
Публичный вывод и право изменения являются разными настройками. Как оставить служебные значения администратору и проверять подмену запросов на сервере.
На этой странице
Разделите владельца записи и полномочия
Пользователь может владеть публикацией, но не обязан управлять всеми её параметрами. Название и описание могут быть доступны автору, а служебные решения модератора — только администратору. Наличие значения в карточке не означает права его менять.
Например, автор объявления загружает фотографию, но не присваивает себе отметку её проверки. Поле внутреннего статуса не следует превращать в пользовательский список только ради одинаковой формы.
Настройте определения и раздел
В Switch Pages у поля есть user_editable. Для обычного пользователя проверка пропускает изменение запрещённых ему определений. Дополнительно должны быть разрешены пользовательские публикации и редактирование собственных объектов в контейнере; одно поле не отменяет общие правила.
Проверьте форму обычного автора и административный редактор отдельно. Например, изменение заголовка своего объекта должно работать, а попытка передать административную метку напрямую — не менять её. Проверка только отсутствия элемента на экране недостаточна.
Испытайте чужие идентификаторы
Измените ID объекта или контейнера в тестовом запросе и убедитесь в серверном отказе. Авторизация подтверждает пользователя, но не связывает автоматически любой переданный ID с его материалом. Проверка владельца нужна при каждом изменении.
После обновления определений откройте старую запись и убедитесь, что непредназначенные пользователю значения сохранились. Не считайте скрытие поля его удалением и не очищайте служебные данные из-за неполной формы. Для администратора, работающего от имени пользователя, используется отдельный контролируемый режим с журналом; он не должен превращаться в обычную возможность любого аккаунта. Так модель отделяет содержимое автора от решений площадки.
Продолжить работу
Проверьте настройку разными ролями на отдельной копии. Сопоставьте задачу с возможностями ядра. Другой материал этого раздела: Логическое поле: да, нет и неизвестное значение.
