Impedir que usuários alterem seus nomes completos

Olá a todos,

No fórum que gerenciamos, embora demos muita liberdade quanto ao nome de usuário, exigimos (nos termos de uso) que os usuários forneçam seus nomes completos e não os alterem, exceto para refletir mudanças legais de nome. Ainda não temos muitos usuários (menos de 250), mas já algumas pessoas começam a não respeitar essa regra. Portanto, precisamos de uma maneira de aplicá-la.

Em resumo, precisamos que um nome completo só possa ser alterado por um moderador ou administrador após a conta ter sido aprovada. Existe alguma maneira de conseguir isso no Discourse? Naveguei pela documentação sem sucesso.

Se não, esse recurso poderia ser adicionado ao código?

Obrigado.

3 curtidas

Uma solução simples, mas evitável, é ocultar o botão de edição com CSS. Pessoas espertas poderiam editá-lo de qualquer maneira. Para garantir que ele seja mantido, você precisaria de um plugin ou talvez sso.

4 curtidas

Obrigado pela sua resposta. Você sabe se já existe algum plugin assim? Se não, vou tentar entender como fazer isso, mas faz muito tempo que não programo nada :frowning:

2 curtidas

Parece que o plugin não existe, mas a solução alternativa de CSS é apenas inspecionar no Firefox ou Chrome, clicar na caixa que você deseja ocultar e editar o CSS no tema:

2 curtidas

Eu acho que a opção mais forte aqui é usar um provedor de autenticação externo (OAuth o que for) com a opção “auth overrides username”:

Substitui o nome completo local pelo nome completo do site externo em cada login e impede alterações locais. Aplica-se a todos os provedores de autenticação.

1 curtida

Isso resolve o problema, mas incluir serviços de terceiros não é um bom negócio para muitos de nós que estão satisfeitos em deixar os usuários escolherem seu provedor de e-mail.

Por “externo”, não quero dizer “de terceiros”, mas sim “externo ao discourse”. Você poderia usar uma solução de terceiros ou executá-la você mesmo.

A confiança em nós mesmos é diferente de confiar na equipe principal do Discourse, eles são profissionais de ponta que construíram tudo.

Meu ponto é que sua solução mais forte não é a mais elegante, que deveria ser desabilitar a opção de um switch.

1 curtida

Olá,
Obrigado pela sugestão, mas infelizmente, isso não é uma opção no momento. Não temos um SSO central e seu gerenciamento é muito mais do que eu quero me propor a fazer!

Atualmente, a adulteração de CSS é provavelmente o limite do que posso fazer. O que estou gerenciando é um fórum de clube, com todos os membros identificados, e forçar essa mudança, apesar de ser simplesmente desativada (e proibida nas regras), faria com que a conta do usuário fosse convertida para somente leitura ou totalmente desativada.

Obrigado @satonotdead pelos links que você forneceu, vou navegar por este conteúdo e ver se consigo gerenciar a mudança facilmente. A longo prazo, quando eu tiver tempo (talvez precise esperar 15 anos ou mais até a aposentadoria para isso :sweat_smile:), posso optar por investir nisso escrevendo um plug-in…

2 curtidas

Uma solução híbrida funcionaria @AriesFR?

Se você seguir a sugestão de Jay @pfaffman de ocultá-lo com CSS, crie um campo de usuário personalizado e tenha as configurações como:

:thinking:

2 curtidas

Poderia funcionar, mas ainda quero que apareça ao lado do nome de usuário, como está especificado atualmente para o nome completo.

Por enquanto, ocultar a seção de nome completo da seção de atualização de perfil do usuário será uma solução temporária aceitável. Ainda posso lidar com exceções de usuários que são curiosos demais para o próprio bem.

Ainda não consigo entender por que parece ser um problema ter essa opção de bloqueio no produto base, como temos para o nome de usuário… parece muito dogmático.

[MODO PROVOCADOR ATIVADO]
Um pouco como não aceitar permitir assinaturas de usuário porque é para o nosso próprio bem.
[MODO PROVOCADOR DESATIVADO]

Eu dei uma olhada; ocultar o campo com a API pode ser feito, mas não consigo encontrar nenhum dado confiável para saber se esse usuário é aprovado ou não (no contexto da página de preferências) :thinking:

É o que tenho por enquanto.
Não tenho certeza se devo me sentir mal; talvez um pouco “hacky” aqui. :smile:

js

<script type="text/discourse-plugin" version="0.8">

const { setting } = require("discourse/lib/computed");

api.modifyClass("controller:preferences/account", {
  pluginId: "hide-name-in-preferences",

  get canEditName() {
    const enables_name = setting("enable_names");

    if (enables_name && this.isCurrentUser && !this.model.staff) {
      if (this.model.name) {
        // Oculta apenas o campo de entrada (o nome é exibido)
        this.model.can_edit_name = false;
      } else {
        // Oculta toda a seção
        return false;
      }
    }

    return enables_name;
  },
});
    
</script>
1 curtida

Não é um problema ou dogma, a maioria dos nossos recursos é priorizada com base na demanda, e não houve muita demanda por isso.

9 curtidas

Obrigado @Arkshine, isso parece muito com o que eu preciso. Terei que pesquisar como incluir isso em meu ambiente :slight_smile:, mas provavelmente terei incluído até este fim de semana.

Obrigado, eu entendo a priorização, embora o mecanismo global já esteja presente e, pelo que pude ver, tenha sido solicitado várias vezes pelos usuários. Se o patch é realmente tão simples quanto o que Arshkine acabou de fornecer, parece-me que foi uma escolha consciente NÃO conceder a mesma “cortesia” a este campo como foi para os outros.

Não me entenda mal, este é um software maravilhoso que foi desenvolvido aqui. Pelo que posso dizer do fórum que ajudo a administrar, parece funcionar perfeitamente, e eu sei o quão difícil isso é. Eu apenas não concordo com todas as decisões que foram tomadas, e considero algumas das justificativas dadas às vezes dogmáticas ou autoritárias. Isso não impede que seja o melhor disponível hoje.

Saudações

Um componente de tema pode ser contornado usando o modo de segurança ou modificando outras coisas no navegador.

Na maioria das vezes, o desenvolvimento é impulsionado por pessoas que são hospedadas com CDCK/Discourse.org, pois é de onde vem o dinheiro. Às vezes, recursos são adicionados se muitas pessoas querem/precisam de um recurso, mas se essas pessoas não estão pagando dinheiro para CDCK, precisa ser muitas, ou um recurso que parece que muitos clientes pagantes ficarão felizes em ter. Note que eu não trabalho para eles, então esta é meramente a minha observação dos últimos quase 8 anos.

5 curtidas

De fato! Você pode querer desativar a configuração enable safe mode para que não administradores não possam usá-la.

3 curtidas

OH! Eu tinha perdido isso. Ainda pode ser contornado por pessoas que são espertas com o console do desenvolvedor do navegador.

1 curtida

Obrigado, eu não tinha visto esse parâmetro, está desabilitado agora!

1 curtida

Especulando: Não ficaria surpreso se a maioria das pessoas que querem isso e são clientes pagantes já tivessem algum tipo de SSO. Então, torna-se ainda mais um recurso de nicho para todos os outros.

3 curtidas

Não parece que você esteja fazendo nada para autenticar o nome completo que seus usuários fornecem ao se inscreverem. Então, se eles o alterarem de Bob Jones para Sam Smith, como você sabe que qualquer um dos nomes é deles?

2 curtidas