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 l’ho testato approfonditamente quanto altri qui (grazie!!), ma mi sembra che la soluzione al problema indicato nel primo post sia piuttosto semplice.

  • non consentire la cancellazione degli argomenti “Chi siamo” dall’amministrazione utenti (da parte di moderatori/amministratori del sito)

Quando si tenta di eseguire questa operazione, impedirlo e visualizzare un messaggio di errore informativo. Sto spostando la discussione in Contribute > Bug perché è un bug che gli argomenti “Chi siamo” possano essere cancellati nel caso sopra descritto.

Ho appena creato un utente di test e l’ho utilizzato per creare una categoria, poi ho cancellato l’utente dall’amministrazione utenti. Mi ha permesso di cancellare l’utente direttamente anche se aveva un argomento. La paternità dell’argomento “Chi siamo” è stata trasferita all’utente di sistema! Quindi almeno questo caso d’uso sembra essere piuttosto sicuro a questo riguardo.

Ho anche provato il caso di cancellazione auto (è necessario prima declassare l’utente per vedere il pulsante di cancellazione dell’account). Anche la cancellazione di quell’utente ha trasferito la paternità degli argomenti al sistema. Inoltre, noto che il valore predefinito per delete user self max post count è impostato a 1, il che significa che, per impostazione predefinita, non è possibile per un utente cancellarsi se ha più di un argomento. Quindi siamo comunque al sicuro qui.

E ho provato a cancellare l’utente tramite l’amministrazione utenti. Curiosamente, finché c’era solo l’argomento “Chi siamo” non ho visto il pulsante di cancellazione del messaggio. Ma dopo aver creato un secondo argomento, il pulsante di cancellazione del messaggio è apparso. Selezionarlo e digitare il testo lungo di conferma ha funzionato – sono riuscito a cancellare i messaggi dell’utente, incluso l’argomento “Chi siamo”. Finalmente una riproduzione! :wink:

E infine, sono riuscito anche a cancellare l’argomento “Chi siamo” utilizzando le azioni multiple. Un’altra riproduzione! Ops, ora vedo che non riesco a riprodurre la cancellazione degli argomenti “Chi siamo” tramite azioni multiple. Semplicemente fallisce silenziosamente.

Alla luce di quanto sopra, possiamo ignorare i casi di cancellazione utente (tramite amministrazione utenti e cancellazione auto) perché la paternità viene trasferita 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