L'utente ha cancellato il post "Informazioni" di una categoria

Un utente ha eliminato tutti i suoi post, uno dei quali era il post “about” per una categoria. Abbiamo ripristinato il post e cambiato la proprietà all’account di sistema, tuttavia appare ancora “eliminato” a un amministratore e mostra un errore quando un non amministratore visita il post:

Il post in questione (che genera errori): About the Music category - Music - KGLW.net Forum

La categoria: Music - KGLW.net Forum

C’è un modo per risolvere questo problema?

(Tutti i post “about” della categoria dovrebbero essere assegnati all’account di sistema per evitare questo scenario?)

3 Mi Piace

Ciao,

Non sono sicuro se funzionerà, ma prova a ricostruire l’HTML del post. Puoi farlo facendo clic sui 3 puntini –\u003e Chiave inglese –\u003e “Ricostruisci HTML”.

1 Mi Piace

Non è del tutto chiaro come abbiano potuto eliminare un argomento “Informazioni” dato che dovrebbero essere non eliminabili. :thinking:

Puoi fornire maggiori dettagli su come è successo? Hanno creato la categoria?

4 Mi Piace

Quando si utilizza il pulsante Elimina tutti i post nella pagina di amministrazione dell’utente, l’argomento “about” viene eliminato. (In altri casi la proprietà viene trasferita a @system)

Potresti creare una nuova categoria e spostare tutti gli argomenti in essa e poi eliminare la vecchia categoria. Ma questa è più una soluzione temporanea che una correzione.

Questo è un passo falso sfortunato. :thinking:

Anche se l’ho appena riprodotto sul mio sito di test e annullandone l’eliminazione è tornato subito indietro, quindi non sono sicuro di quale sia questo particolare problema.

È possibile scambiare il topic_id dell’argomento “About” con uno nuovo utilizzando la console Rails, ma la “nuova sostituzione della categoria” potrebbe essere un’opzione più semplice tramite l’interfaccia utente.

2 Mi Piace

Il problema si verifica quando si cambia la proprietà in sistema prima di annullare l’eliminazione del post.

2 Mi Piace

Potrei aver bisogno di una guida passo passo per assicurarci di fare la stessa cosa. Sembra che l’utente sia stato eliminato anziché solo i post?

3 Mi Piace

Ci sono due problemi particolarmente sfortunati in combinazione.

  1. Quando si utilizza “elimina tutti i post” nella pagina di amministrazione dell’utente, il post “informazioni sulla categoria” viene eliminato. (Ma è possibile annullarne l’eliminazione)

  2. Quando hai eliminato post di cui l’autore è stato eliminato e cambi la proprietà prima di annullare l’eliminazione del post, non puoi annullare l’eliminazione del post. (Come soluzione alternativa, puoi eliminare l’argomento e annullarne l’eliminazione. Questo annulla l’eliminazione del primo post)

Quindi, quando:

  • crei un utente di test e una categoria di test,
  • rendi l’utente di test il proprietario dell’argomento “informazioni sulla categoria”,
  • elimini tutti i loro post dalla pagina di amministrazione dell’utente,
  • (facoltativo) crei un altro argomento di proprietà dell’utente di test,
  • (facoltativo) rispondi a entrambi gli argomenti utilizzando un altro utente,
  • elimini l’utente di test,
  • cambi la proprietà dell’argomento “informazioni” (e dell’altro argomento),
  • provi ad annullare l’eliminazione dei post,

ricevi un errore, perché non puoi annullare l’eliminazione del post. Nota a margine: le risposte negli argomenti sono visibili ad altri utenti, ma non possono vedere il primo post.

La soluzione alternativa per il punto 2 non funziona, perché non è consentito eliminare gli argomenti “informazioni”.

6 Mi Piace

Sì, credo che l’utente abbia creato la categoria.

“Rebuild HTML” non sembra aver cambiato nulla.

Suppongo che potremmo creare una nuova categoria e fare uno scambio, tuttavia ciò significherebbe che gli utenti che si sono iscritti/silenziati/qualunque cosa alla categoria originale dovrebbero rifare ciò con quella nuova?

Non ho paura della console Rails, quindi se assegnare un nuovo topic_id è il modo più “corretto” di strutturare le cose, allora sono propenso a farlo. Ma apprezzerei un po’ di aiuto con i comandi specifici da eseguire; sarebbe qualcosa come Category.find(10).topic_id = 723…?

D’altra parte:

…forse questo è un modo più veloce per risolvere? (Anche se vedo solo “Archivia argomento” e non “Elimina argomento” nel menu dell’icona a forma di chiave inglese…)

Non ho testato questo a fondo come altri qui (grazie!!), ma mi sembra che la soluzione al problema dichiarato nel primo post sia abbastanza semplice.

  • non consentire l’eliminazione di argomenti “about” da parte degli amministratori utente (da parte di moderatori/amministratori del sito)

Quando si tenta quanto sopra, impedirlo e visualizzare un messaggio di errore informativo. Mi sposto in Bug perché è un bug che gli argomenti “about” possano essere eliminati nel caso sopra menzionato.

Ho appena creato un utente di prova e l’ho usato per creare una categoria, quindi ho eliminato l’utente dall’amministrazione utente. Mi ha permesso di eliminare direttamente l’utente anche se aveva un argomento. La paternità dell’argomento “about” è stata ceduta all’utente di sistema! Quindi, almeno quel caso d’uso sembra abbastanza sicuro a questo riguardo.

Ho anche provato il caso di auto-eliminazione (devo prima retrocedere l’utente per vedere il pulsante di eliminazione dell’account). L’eliminazione di quell’utente ha anche ceduto la paternità dell’argomento al sistema. Inoltre, vedo che l’impostazione predefinita per delete user self max post count è impostata su 1, il che significa che per impostazione predefinita non è possibile per un utente eliminare se stesso se ha più di un argomento. Quindi siamo comunque al sicuro qui.

E ho testato l’eliminazione dell’utente tramite l’amministrazione utente. Interessante, finché c’era solo l’unico argomento “about” non ho ottenuto il pulsante di eliminazione del post. Ma dopo aver creato un secondo argomento ho ottenuto il pulsante di eliminazione del post. Selezionandolo e digitando il lungo testo per confermare ha funzionato - sono stato in grado di eliminare i post dell’utente, incluso l’argomento “about”. Finalmente una riproduzione! :wink:

E infine, sono stato anche in grado di eliminare l’argomento “about” utilizzando le azioni di massa. Un’altra riproduzione! Oops, ora vedo che non ho una riproduzione dell’eliminazione di argomenti “About” tramite azioni di massa. Semplicemente non riesce a farlo in silenzio.

Dato quanto sopra, possiamo ignorare i casi di eliminazione dell’utente (tramite amministrazione utente e auto-eliminazione) perché la paternità viene ceduta al sistema.

1 Mi Piace

Ho anche provato a spostare il post “about” in un argomento diverso. Funziona e poi appare un timer di eliminazione, ma l’argomento non viene eliminato dopo x giorni. Il timer scompare semplicemente. Quindi questo funziona bene.

1 Mi Piace

Sei riuscito a risolvere la tua situazione, @alxndr?

2 Mi Piace

Questo potrebbe benissimo impedirne il ripetersi in futuro.

Detto questo, come dovrei recuperare dalla situazione attuale, in cui gli utenti vedono una pagina di errore quando cercano di leggere il post “About” per questa categoria, anche se il post è di proprietà dell’utente system?

Non ho ancora provato nulla; speravo che qualcuno intervenisse con “sì, questo è il comando corretto” o “no, non farlo, rovinerà tutto”…

2 Mi Piace

Credo che questo sia il formato che ho usato quando ci ho provato un po’ di tempo fa:

Category.where(id: CAT_ID).update(topic_id: NEW TOPIC_ID)

Anche se mi stavo chiedendo se fosse possibile ripristinare quell’argomento originale tramite l’API. :thinking:

@alxndr puoi confermare che stai auto-ospitando, non sul nostro hosting? Se sei sul nostro hosting o passi al nostro hosting, puoi contattare il nostro team di supporto e uno dei nostri tecnici ti aiuterà a risolvere il problema.

Se fossi nella tua posizione, creerei semplicemente una nuova categoria e sposterei tutti gli argomenti nella nuova categoria. Sembra la cosa più semplice.

Se decidi di sperimentare con la console rails o l’API, ti trovi in un territorio inesplorato, quindi assicurati di fare un backup completo del tuo sito prima, nel caso in cui tu debba annullare la modifica!

1 Mi Piace

Ha :slight_smile: Sembra che tu non ti fidi del mio consiglio @tobiaseigen :slight_smile:

Usare l’API sarebbe un’opzione più sicura rispetto alla console Rails, solo che non è chiaro se riuscirebbe a ripristinare questo particolare argomento a causa delle circostanze.


Non ero sicuro che l’API avrebbe funzionato, dato che ho provato cose simili nell’interfaccia utente ed è stato bloccato, ma sembra che abbia avuto un certo successo (:partying_face:).

In questo caso, ho usato l’endpoint per recuperare il post piuttosto che recuperare l’argomento (che è ciò che l’opzione di annullamento eliminazione nel post stava cercando di fare):

/posts/POST_ID/recover

4 Mi Piace

Sì, auto-ospitando.

1 Mi Piace

Il pulsante “annulla eliminazione di questo post” sembra utilizzare questo endpoint, tuttavia restituisce un errore 403, con errorThrown vuoto e textStatus: "error".

Tuttavia, stai dicendo che l’utilizzo della stessa route tramite un’API, e non l’interfaccia utente web, ha funzionato?

Dai miei test, il pulsante “undelete” stava cercando di utilizzare l’endpoint di recupero dell’argomento (/t/TOPIC_ID/recover) e restituiva un errore 403. Ma sembrava funzionare quando ho usato invece la versione di recupero dei post.

Puoi ricontrollare per assicurartene?

2 Mi Piace

Ah grazie per il chiarimento, hai ragione.

Non mi è chiaro come identificare l’ID del singolo Post; l’ID della Categoria è 10 e penso che l’ID dell’Argomento sia 723?
Aggiornamento: Aha, l’ho trovato! C’è un data-post-id sull’elemento DOM \u003carticle\u003e

Non vedo questo endpoint nella documentazione API… dovrebbe essere un PUT? con qualche dato?
Aggiornamento: sì un PUT, senza dati — ha funzionato! Grazie @JammyDodger !!

2 Mi Piace