Пользовательское поле обязательно для всех, но редактируется только один раз

Извините, если это уже обсуждалось ранее. Вчера я нашел что-то похожее, но сегодня мои поисковые запросы ничего не выдают.

Сценарий:

Сервер Discourse хочет установить поле, например, «Дата рождения», как обязательное. Это не должно быть возможностью редактирования после регистрации. Решение состоит в том, чтобы снять галочку «Редактировать после регистрации» для пользовательского поля, а затем установить поле как «Обязательное при регистрации». Это работает для пользователей, создающих учетную запись через обычную регистрацию по электронной почте/имени пользователя.

Проблема 1:

Пользователи, создающие учетные записи через OAuth, DiscourseID, WP-Discourse и т. д., никогда не видят эти поля. Чтобы предоставить этим пользователям доступ к таким полям, их необходимо пометить как «Обязательное для всех», что приводит нас к…

Проблема 2:

«Обязательное для всех», по очевидным причинам, требует, чтобы поле было помечено как «Редактировать после регистрации». К сожалению, это также позволяет пользователям изменять поле в любое время, чего мы совсем не хотим.

Запрашиваемая функция:

Добавить логику, позволяющую опции «Обязательное для всех» не требовать отметки «Редактировать после регистрации». Логика должна сначала проверять, пустое ли поле или имеет значение «null», ПРЕЖДЕ ЧЕМ проверять, установлена ли опция «Редактировать после регистрации». По сути, это игнорировало бы флажок «Редактировать» для любого обязательного поля с пустым/нулевым значением. Это позволит пользовательским полям быть редактируемыми один раз, а после сохранения значения — больше не редактируемыми.

3 лайка