È possibile impostare una data di scadenza per gli account utente?

Ogni volta che un utente si registra con un link di invito, vorrei che quell’account durasse solo x mesi e una volta raggiunta la scadenza l’utente deve rinnovare il proprio account, è possibile farlo?

Si tratta fondamentalmente di un abbonamento con data di scadenza e rinnovo. Se questa funzionalità non esiste in Discourse, è possibile programmarla tramite un plugin o qualcosa di simile senza toccare il core? o non c’è supporto nell’API e nei webhook per qualcosa del genere?

1 Mi Piace

Li aggiungeresti a un gruppo al momento dell’iscrizione. Avresti quindi un plugin che li rimuoverebbe dal gruppo allo scadere del limite di tempo. Solo come faresti a tenere traccia del mese non è chiaro. Probabilmente un campo personalizzato utente con la data di fine sarebbe la soluzione più semplice.

1 Mi Piace

“Poi avresti un plugin che li rimuoveva dal gruppo allo scadere del limite di tempo.” quale plugin?

“Probabilmente un campo personalizzato utente con la data di scadenza sarebbe la cosa più semplice.” Aggiungo queste informazioni durante la registrazione? Quindi dovrei usare un webhook a quel punto, corretto?

Non esiste un plugin del genere. Qualcuno dovrebbe scriverlo.

No. Il plugin lo farebbe. Ed è probabile che ci sia un modo per distinguere quando sono stati aggiunti tramite il database e il data explorer, anche se non ne sono del tutto sicuro.

Se non sei self-hosted, o per altri motivi non vuoi un plugin,
Potrebbe anche essere possibile creare una soluzione alternativa utilizzando il plugin data explorer (per ottenere dati su quando sono stati aggiunti e quindi dovrebbero essere eliminati) e utilizzare uno strumento di automazione/API (come zapier, anche se ho usato anche github actions) per rimuoverli dal gruppo quando arriva il momento.

Questo sarebbe un bel candidato per uno script di automazione! Non esiste ancora, quindi potresti contribuire tu stesso o assumere qualcuno per farlo per te e contribuire, in Marketplace.

1 Mi Piace

Posso farlo, ma con una funzionalità aggiuntiva: dovrebbe consentire l’aggiunta di campi chiave-valore.

L’idea è che posso associare informazioni a un link di invito con le informazioni che desidero. I valori possono essere una semplice stringa o un JSON, e ogni chiave è una colonna nel database. Quindi, quando l’utente finisce di registrarsi, viene aggiunto un ulteriore paio chiave-valore, che è il suo nome utente.

La mia domanda è: supererà i tuoi filtri e verrà aggiunto al codice sorgente nativo di Discourse? E questo mi porta a una domanda aggiuntiva: i link di invito sono sempre univoci?

Ho spostato questo argomento su Dev perché stiamo uscendo dal territorio del supporto. Devi semplicemente iniziare a creare il plugin o l’automazione che fa quello che vuoi. Facci sapere come procedi! Se le funzionalità che aggiungi sono più ampiamente utili, potrebbero essere prese in considerazione per l’inclusione definitiva nel core di Discourse.

Fai riferimento a Documentation > Developer Guides e Community wiki > Developers per la guida alla creazione di plugin.

Puoi anche avviare altri argomenti in Dev per fare altre domande, ma ti consiglio di condividere del codice quando lo fai. È più facile per gli altri aiutarti se possono vedere cosa hai fatto finora.

Sì, i link di invito sono sempre unici.

Non so cosa intendi con “supererà i tuoi filtri e verrà aggiunto al codice sorgente nativo di Discourse”.

Questi sono i tipi di domande che penso sarai in grado di scoprire da solo mentre approfondisci il codice.

1 Mi Piace