Desculpe se isso já foi levantado antes, encontrei algo parecido ontem, mas hoje meus termos de busca não retornam nada.
Cenário:
Um servidor Discourse quer definir um campo, digamos Data de Nascimento, como um campo obrigatório. Isso não deveria ser algo que precise ser editado após o cadastro. Então, a solução é definir o campo personalizado para desmarcar ‘editável após o cadastro’ e, em seguida, mudar o campo para ‘Obrigatório no Cadastro’. Isso funciona para usuários que criam uma conta através do cadastro típico com e-mail/nome de usuário.
Problema 1:
Usuários que estão criando contas através de coisas como OAuth, DiscourseID, WP-Discourse, etc., nunca veem esses campos. Para que esses usuários tenham acesso a esses campos, eles precisam ser marcados como Obrigatório Para Todos, o que nos leva a…
Problema 2:
Obrigatório Para Todos, por razões óbvias, exige que um campo seja marcado como ‘editável após o cadastro’. Isso, infelizmente, também permite que os usuários alterem o campo quando quiserem… o que não é o que queremos de forma alguma.
Funcionalidade Solicitada:
Adicionar lógica que permita que ‘Obrigatório Para Todos’ não exija que ‘editável após o cadastro’ esteja marcado. A lógica primeiro verificaria se o campo está vazio ou ‘nulo’ ANTES de verificar qual é a configuração de ‘editável após o cadastro’. Isso essencialmente ignoraria a caixa de seleção de editável para qualquer campo obrigatório vazio/nulo. Isso permitiria que campos de usuário personalizados fossem editáveis uma vez, mas, uma vez que um valor fosse salvo, não seriam mais editáveis.