Oh, non mi dispiacerebbe affatto. Sarebbe ideale se l’azione principale del pulsante a discesa fosse ‘Elimina utente’ e, utilizzando il menu a discesa, si potesse selezionare invece ‘Sospendi utente’. In questo modo, supponendo che la maggior parte non sia configurata con SSO, non si aggiunga alcun lavoro extra, ma per coloro che si trovano in questa situazione, offra un modo rapido per sospendere un utente invece di eliminarlo.
@Roman, vuoi aggiungere questo alla tua lista? Lo ritengo utile per i siti con SSO.
Quando eliminiamo gli utenti dalla coda di revisione, appare un popup ‘404 Not Found’:
(Ho appena aggiornato all’ultima versione, ma il problema persiste)
Darò un’occhiata. Questi utenti sono in attesa di approvazione?
Approvazione ed eliminazione degli utenti segnalati per spam.
Mi sono appena reso conto di gestire anche un altro sito dove questo non succede e ho il sospetto che possa avere a che fare con il Plugin Follow
, dato che di recente ha subito alcune modifiche relative agli utenti eliminati. @merefield, cosa ne pensi?
Al momento non ho idea. Puoi essere più specifico? Hai prove dai log?
Nella scheda Rete del browser: qual è l’URL di quel 404?
L’unico (minimo) problema attuale del Plugin (per quanto ne sappia) è che, se disinstalli il plugin, devi eliminare le notifiche associate (script presente nell’OP del plugin). Questo non è correlato agli utenti eliminati.
Non sono riuscito a riprodurre il problema nemmeno localmente. Il messaggio di errore mi fa pensare che il frontend stia inviando una richiesta AJAX a un endpoint inesistente. @bartv Potresti condividere la scheda Rete del tuo browser dopo aver eseguito l’azione di eliminazione?
Vorrei sapere se assomiglia a questo:
Lo farò la prossima volta che succede ![]()
Il plugin esegue un monkey patch su UserDestroyer, che viene chiamato quando si esegue l’azione di eliminazione dalla coda di revisione. Questo aspetto sembra sospetto:
Se in qualche modo following_ids include un ID non valido, User#find genererà un’eccezione e l’utente vedrà un messaggio “404 Not Found”. Consiglio di utilizzare User.find_by(id: ...) invece.
Non posso dire se questo sia ciò che è successo sul sito di @bartv senza guardare nel DB, quindi la prossima volta che succede, consiglio di controllare i following_ids dell’utente segnalato.
Grazie. È vero ed è un punto molto utile.
Vorrei comunque avere i log e la conferma dell’URL 404.
Probabilmente ci sono anche altri modi per rendere tutto più robusto.
Spinto: FIX: make code invoked when deleting users more robust · discourse/discourse-follow@b523b3a · GitHub grazie!
Abbiamo unito una PR per aggiungere questa azione. Conferma, conferma + elimina e conferma + sospendi sono ora raggruppati insieme:
Ho rimosso il plugin Follow ma il problema persiste. Nel log di Rails vedo:
Started PUT "/review/6793/perform/reject_user_block?version=0" for xx.xx.xx.xx at 2020-09-03 09:45:48 +0000
Processing by ReviewablesController#perform as */*
Parameters: {"version"=>"0", "reviewable_id"=>"6793", "action_id"=>"reject_user_block"}
Job exception: undefined method `strip' for nil:NilClass
Rendering text template
Rendered text template (Duration: 0.0ms | Allocations: 1)
Started GET "/t/global-variables/331828" for xx.xx.xx.xx at 2020-09-03 09:45:48 +0000
Processing by TopicsController#show as HTML
Parameters: {"slug"=>"global-variables", "topic_id"=>"331828"}
Completed 404 Not Found in 292ms (ActiveRecord: 0.0ms | Allocations: 124598)
ActiveRecord::RecordNotFound (Couldn't find all Topics with 'id': (1185852, 1185853, 1186324, 1186929, 1191089) [WHERE ("topics"."deleted_at" IS NULL)] (found 4 results, but was looking for 5).)
lib/plugin/instance.rb:393:in `block in on'
lib/discourse_event.rb:14:in `block in trigger'
lib/discourse_event.rb:13:in `trigger'
app/models/user.rb:1567:in `trigger_user_destroyed_event'
app/models/reviewable.rb:353:in `perform'
app/controllers/reviewables_controller.rb:192:in `perform'
app/controllers/application_controller.rb:340:in `block in with_resolved_locale'
app/controllers/application_controller.rb:340:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:336:in `call'
config/initializers/008-rack-cors.rb:25:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:22:in `call'
lib/middleware/request_tracker.rb:176:in `call'
La riga ActiveRecord::RecordNotFound è interessante perché appare ogni volta che provo a eliminare un utente dalla coda di revisione, e con esattamente gli stessi ID dei topic.
Ho controllato gli ID dei topic e si tratta tutti di post che utilizzano il plugin Events. E infatti, uno di essi è stato eliminato. Sono perplesso sul perché questa azione dalla coda di revisione dovrebbe verificare proprio questi.
@merefield sembra che ti stia di nuovo rivolgendo a voi, scusa ![]()
EDIT: modificato il link al plugin
È un plugin core.
Aspetta, sto usando
git clone GitHub - angusmcleod/discourse-events: Allows you to manage events in Discourse · GitHub
Non è quello giusto (più)? (Penso di aver collegato la pagina sbagliata lì, sto correggendo)
Questi sono gli eventi. @fzngagan, hai qualche pensiero a riguardo?
Cliccandoci, mi reindirizza al repository corretto.
Haha, no, il problema riguarda l’eliminazione di un utente dalla Coda di revisione.
Questo non è relativo a un plugin, è un file della libreria principale.
Perché pensi che Events sia coinvolto?


