Setaccio per utenti non idonei

Area dedicata al phpBB 3.3.X
Avatar utente
nunzio
Nuovo Utente
Nuovo Utente
Messaggi: 22
Iscritto il: 25/12/2018, 11:36
Link del Forum: http://lontanievicini.it/online

Re: Setaccio per utenti non idonei

Messaggio da nunzio »

alex75 ha scritto: 12/09/2021, 9:13 Magari potresti spiegare meglio, cosa hanno in comune questi utenti?
Ecco, provo a fare un esempio pratico. Ci sono due tipi di utenti:
utente tipo A = aiko
utente tipo B = 34mbagxbw
Schermata 01.png
Schermata 02.png
il tipo A fa parte del gruppo speciale 'Utenti registrati' ed anche del gruppo 'Lontani e Vicini' mentre il tipo B è inserito di default solo nel gruppo speciale 'Utenti registrati'.
Il problema è cancellare tutti i membri del tipo B (in numero particolarmente elevato) senza incidere su quelli del tipo A
(ovviamente sono presenti altri utenti del tipo A perché inseriti in altri gruppi 'non speciali', come per es. luca)
Schermata 03.png
Spero di essermi spiegato più chiaramente
Grazie molte
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Avatar utente
alex75
Amministratore
Amministratore
Messaggi: 6174
Iscritto il: 23/08/2012, 23:45
Link del Forum: www.phpbb-italia.it
Località: Palermo

Re: Setaccio per utenti non idonei

Messaggio da alex75 »

Si questo l'avevo capito, eri già stato chiaro.
Ma quali sono i requisiti per transitare ai gruppi speciali, che questi utenti da cancellare, non hanno raggiunto?
Gli utenti da cancellare hanno tutti 0 post? o comunque un numero ridotto di post?

EDIT:
Ho dato un'occhiata ai tuoi iscritti.
Hai 56300 utenti iscritti dal 2007 ad agosto 2021 che non hanno mai scrittto un post.
Con l'esempio che ti ho indicato sul mio primo post, puoi cancellarli tutti con un solo click.
post23549.html#p23549
Basta scegliere di voler cancellare tutti gli utenti con post pari a 0.
Puoi anche scegliere di aggiungere ulteriori opzioni, per essere più preciso, ad esempio utenti con 0 post ed iscritti prima del 2020.
Era questo che volevi?
Regolamento Forum
Le nostre guide
Se l'assistenza prestata è stata di tuo gradimento potrai contribuire aiutandoci a sostenere le spese affrontate per tenere in vita questo forum >Cliccando sul seguente Link<
Avatar utente
Kimera_V2
Utente
Utente
Messaggi: 146
Iscritto il: 08/03/2018, 12:56
Link del Forum: https://www.creepypastaworld.it

Re: Setaccio per utenti non idonei

Messaggio da Kimera_V2 »

Scusa Alex ma non potrebbe fare la stessa cosa con l' ext che ho proposto nel primo post?
Ha le stesse opzioni dell' elimina utente di base ma ne ha altre in più tipo la protezione su un determinato gruppo, gli basterebbe selezionere i gruppi da proteggere come amministratori, moderatori globali, lontani e vicini, sponsor ecc.. selezionare il numero di post, la data d' iscrizione e magari anche quella dell' ultimo accesso.
Potrebbe fare una prova in locale e vedere come si comporta questa ext.
Avatar utente
alex75
Amministratore
Amministratore
Messaggi: 6174
Iscritto il: 23/08/2012, 23:45
Link del Forum: www.phpbb-italia.it
Località: Palermo

Re: Setaccio per utenti non idonei

Messaggio da alex75 »

Si anche quella sarebba un'alternativa, infatti era proprio la seconda alternativa a cui alludevo.
Ma sicuramente, essendoci una funzione nativa, sarebbe meglio optare per quella.
Regolamento Forum
Le nostre guide
Se l'assistenza prestata è stata di tuo gradimento potrai contribuire aiutandoci a sostenere le spese affrontate per tenere in vita questo forum >Cliccando sul seguente Link<
Avatar utente
nunzio
Nuovo Utente
Nuovo Utente
Messaggi: 22
Iscritto il: 25/12/2018, 11:36
Link del Forum: http://lontanievicini.it/online

Re: Setaccio per utenti non idonei

Messaggio da nunzio »

alex75 ha scritto: 12/09/2021, 21:30 Si questo l'avevo capito, eri già stato chiaro.
Ma quali sono i requisiti per transitare ai gruppi speciali, che questi utenti da cancellare, non hanno raggiunto?
Gli utenti da cancellare hanno tutti 0 post? o comunque un numero ridotto di post? (...)
Per utilizzare l'esempio del mio post post23693.html#p23693 l'utente aiko si è registrato e poi, diciamo 'manualmente', è stato inserito da un moderatore nel gruppo Lontani e Vicini previa richiesta/presentazione nel campo interessi del profilo. Potrebbe anche non aver postato alcun messaggio ma questa (o la data di iscrizione) non è una condizione per cancellarlo (nel forum in oggetto si accede anche solo per leggere i post degli altri, è normale). Quindi l'unico parametro discriminante è l'appartenenza solo al gruppo speciale 'Utenti registrati' e non ad altri.
Avevo installato l'ext di Kimera_V2 (sicuramente molto utile) su una copia del forum ma non mi è sembrata risolutiva
Dai, vediamo :D:
Grazie a tutti
Avatar utente
alex75
Amministratore
Amministratore
Messaggi: 6174
Iscritto il: 23/08/2012, 23:45
Link del Forum: www.phpbb-italia.it
Località: Palermo

Re: Setaccio per utenti non idonei

Messaggio da alex75 »

Ok, adesso hai tolto ogni dubbio di interpretazione.
Così è sicuramente più complicato, oltretutto ne hai davvero tantissimi.
Regolamento Forum
Le nostre guide
Se l'assistenza prestata è stata di tuo gradimento potrai contribuire aiutandoci a sostenere le spese affrontate per tenere in vita questo forum >Cliccando sul seguente Link<
Avatar utente
nunzio
Nuovo Utente
Nuovo Utente
Messaggi: 22
Iscritto il: 25/12/2018, 11:36
Link del Forum: http://lontanievicini.it/online

Re: Setaccio per utenti non idonei

Messaggio da nunzio »

Grazie Barrnet per il tuo suggerimento. Purtroppo non ha avuto esito positivo.
A partire dalla query da te proposta:

Codice: Seleziona tutto

UPDATE avphpbb_users SET user_type = 1 WHERE group_id = 2 AND user_type != 3 AND user_type != 2 AND user_type != 1
ho provato a eseguire questa per prova

Codice: Seleziona tutto

SELECT * FROM `phpbb3_users` WHERE group_id = 2 AND user_type != 3 AND user_type != 2 AND user_type != 1
(cioè i record con group_id = 2 che non si riferiscono a fondatori, bot, anonimo, e utenti disattivati/inattivi)

e ho avuto come risposta “MySQL ha restituito un insieme vuoto (i.e. zero righe)”, perché in nessun record group_id = 2 mentre immagino intendessi dire group_id = id_del_gruppo_utenti_registrati
Ma così sarebbe selezionato anche quel sottoinsieme di utenti appartenenti anche ad altri gruppi. Ho capito male?
Però, come extrema ratio, questo potrebbe essere un primo passaggio per poi riportare, uno ad uno (!), i gruppi ‘declassati’ del sottoinsieme (ora con user_type = 1) alla loro condizione precedente con:

Codice: Seleziona tutto

UPDATE phpbb3_users SET user_type = 0 WHERE group_id = id_del_gruppo_xx
Infine gestire dall’apposito pannello gli utenti disattivati.
Insomma, potrei provare. Che ne pensate?
Avatar utente
alex75
Amministratore
Amministratore
Messaggi: 6174
Iscritto il: 23/08/2012, 23:45
Link del Forum: www.phpbb-italia.it
Località: Palermo

Re: Setaccio per utenti non idonei

Messaggio da alex75 »

Il group_id indica un solo gruppo di appartenenza dell'utente, ovvero quello predefinito.
Nel tuo forum, hai 3 gruppi speciali, impostati come predefiniti per gli appartenenti, quindi non hai bisogno di ulteriori verifiche.
Il group_id 2 è con certezza, quello degli utenti da eliminare.
Controlla inoltre, come già suggerito, che il prefisso delle tue tabelle sia corretto (nella query si legge avphpbb, che indica prefisso di altervista).
Partendo da queste certezze, potresti creare un nuovo gruppo e semplicemente spostare gli utenti con group_id 2 al nuovo group_id del gruppo appena creato.
Fatto questo elimini, tutti gli appartenenti al nuovo gruppo, con gli esempi indicati prima.
Raccomando sempre, di fare un backup e di provare su un database di test.
Regolamento Forum
Le nostre guide
Se l'assistenza prestata è stata di tuo gradimento potrai contribuire aiutandoci a sostenere le spese affrontate per tenere in vita questo forum >Cliccando sul seguente Link<
Avatar utente
Barrnet
Globalmod
Globalmod
Messaggi: 547
Iscritto il: 13/05/2012, 19:10
Link del Forum: https://videogamezone.eu/forum
Località: Bergamo
Contatta:

Re: Setaccio per utenti non idonei

Messaggio da Barrnet »

nunzio ha scritto: 14/09/2021, 1:09 Grazie Barrnet per il tuo suggerimento. Purtroppo non ha avuto esito positivo.
A partire dalla query da te proposta:

Codice: Seleziona tutto

UPDATE avphpbb_users SET user_type = 1 WHERE group_id = 2 AND user_type != 3 AND user_type != 2 AND user_type != 1
ho provato a eseguire questa per prova

Codice: Seleziona tutto

SELECT * FROM `phpbb3_users` WHERE group_id = 2 AND user_type != 3 AND user_type != 2 AND user_type != 1
(cioè i record con group_id = 2 che non si riferiscono a fondatori, bot, anonimo, e utenti disattivati/inattivi)

e ho avuto come risposta “MySQL ha restituito un insieme vuoto (i.e. zero righe)”, perché in nessun record group_id = 2 mentre immagino intendessi dire group_id = id_del_gruppo_utenti_registrati
Ma così sarebbe selezionato anche quel sottoinsieme di utenti appartenenti anche ad altri gruppi. Ho capito male?
Però, come extrema ratio, questo potrebbe essere un primo passaggio per poi riportare, uno ad uno (!), i gruppi ‘declassati’ del sottoinsieme (ora con user_type = 1) alla loro condizione precedente con:

Codice: Seleziona tutto

UPDATE phpbb3_users SET user_type = 0 WHERE group_id = id_del_gruppo_xx
Infine gestire dall’apposito pannello gli utenti disattivati.
Insomma, potrei provare. Che ne pensate?
Il group_id nella tabella user è il gruppo predefinito dell'utente. Assicurati di non avere la funzionalità "nuovi utenti registrati" attiva, poiché in quel caso il gruppo predefinito non sarebbe più utente registrato ma bensì nuovo utente registrato, il cui id dovrebbe essere 7.
Rispondi