Mi scuso se questo non è forse il posto giusto per chiedere, ma sembra che potrebbe esserlo.
Vorrei utilizzare, immagino, un valore booleano per confrontare, ad esempio, l’utente corrente con due elementi nella revisione del segnalazione: il segnalatore e il bersaglio della segnalazione.
Se l’utente corrente corrisponde a uno dei due, vengono nascosti i pulsanti di revisione della segnalazione (come Accetta/Rifiuta/Posticipa, ecc.). In questo modo, le segnalazioni possono essere convalidate o respinte solo da una terza parte.
Non credo che tu abbia necessariamente bisogno di un’impostazione del tema per questo, a meno che tu non voglia aggiungere un’impostazione al tuo componente che consenta agli amministratori di attivare o disattivare l’obbligo di gestire i flag tramite un servizio di terze parti.
In generale, è necessario un plugin se si desidera modificare le autorizzazioni predefinite come hai descritto, poiché i temi e i componenti possono apportare solo modifiche al frontend e possono essere aggirati dagli utenti se sanno dove cercare.
Sto solo cercando di nascondere alcune opzioni. Certo, un utente esperto potrebbe usare il browser per far riapparire i pulsanti.
Ma questo funzionerebbe per il mio scopo: semplicemente nasconderle all’utente corrente se è lui a segnalare o è il destinatario della segnalazione. È più un deterrente per scoraggiare la tentazione (una soluzione temporanea) che una soluzione definitiva.
Da una rapida occhiata al codice pertinente nel core, dovrai estendere la proprietà canPerform (che determina se mostrare i pulsanti come ‘accetta’, ‘rifiuta’, ecc.) in reviewable-item con la tua logica aggiuntiva:
Se non hai mai fatto qualcosa del genere prima, la pagina Developing Discourse Themes & Theme Components è un ottimo punto di partenza! Copre come modificare una classe core, che è esattamente ciò di cui hai bisogno. I temi/componenti esistenti sono un’ottima risorsa da cui imparare; vedi ad esempio il componente discourse-extra-group-classes, che utilizza la stessa tecnica di cui avrai bisogno (in particolare il file initialize-extra-group-classes.js.es6).
P.S. Sposterò questi post fuori da questo argomento, dato che non sono direttamente correlati alle impostazioni dei temi.