É possível definir uma data de expiração para contas de usuário?

Toda vez que um usuário se registra com um link de convite, eu gostaria que essa conta durasse apenas x meses e, quando o prazo fosse atingido, o usuário precisasse renovar sua conta, é possível fazer isso?

É basicamente uma assinatura com data de validade e renovação. Se esse recurso não existe no Discourse, é possível programá-lo por meio de um plugin ou algo semelhante sem mexer no core? ou não há suporte na API e webhooks para algo assim?

1 curtida

Você os adicionaria a um grupo quando eles entrassem. Em seguida, você teria um plugin que os removeria do grupo após o término do prazo. Apenas como você acompanharia o mês não está claro. Provavelmente um campo personalizado do usuário com a data de término seria o mais simples.

1 curtida

“Você teria então um plugin que os removeria do grupo após o término do prazo.” Qual plugin?

“Provavelmente um campo personalizado do usuário com a data de término seria o mais simples.” Eu adiciono essa informação durante o cadastro? Então eu deveria usar um webhook nesse momento, correto?

Não existe tal plugin. Alguém precisaria escrevê-lo.

Não. O plugin faria isso. E é provável que haja uma maneira de discernir quando eles foram adicionados através do banco de dados e do explorador de dados, embora eu não tenha certeza.

Se você não tem auto-hospedagem, ou por outro motivo não quer um plugin,
também pode ser possível criar algo usando o plugin explorador de dados (para obter dados sobre quando foram adicionados e, portanto, devem ser excluídos) e usar uma ferramenta de automação/API (como zapier, embora eu também tenha usado github actions) para removê-los do grupo quando chegar a hora.

Este seria um bom candidato para um script de automação! Ainda não existe, então você poderia contribuir com ele ou contratar alguém para fazer isso por você e contribuir, em Marketplace.

1 curtida

Eu consigo fazer isso, mas com um recurso extra: ele deve permitir a adição de campos chave-valor.

A ideia é que eu possa associar informações a um link de convite com as informações que eu quero. Os valores podem ser uma string simples ou um JSON, e cada chave é uma coluna no banco de dados. Então, quando o usuário terminar de se registrar, um par chave-valor extra é adicionado, que é o nome de usuário dele.

Minha pergunta é, isso passará pelos seus filtros e será adicionado ao código-fonte nativo do Discourse? E isso me leva a uma pergunta adicional, os links de convite são sempre únicos?

Passei este tópico para Dev porque estamos saindo do território de suporte aqui. Você precisa começar a criar o plugin ou automação que faz o que você quer. Nos diga como você se sai! Se os recursos que você adicionar forem mais amplamente úteis, eles podem ser considerados para inclusão eventual no Discourse principal.

Consulte Documentation > Developer Guides e Community wiki > Developers para obter orientação sobre a criação de plugins.

Você também pode iniciar mais tópicos em Dev para fazer mais perguntas, mas recomendo que você tenha código para compartilhar ao fazê-lo. É mais fácil para os outros ajudarem se eles puderem ver o que você já fez.

Sim, os links de convite são sempre únicos.

Não sei o que você quer dizer com “passar por seus filtros e ser adicionado ao código-fonte nativo do Discourse”.

Estes são os tipos de perguntas que acho que você será capaz de descobrir por si mesmo ao investigar o código.

1 curtida