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

Setaccio per utenti non idonei

Messaggio da nunzio »

Ciao a tutti,
provo a spiegare la problematica relativa agli utenti cosiddetti “non idonei”.
Le politiche del forum cui mi riferisco prevedono l’effettivo accesso ai contenuti solo a quegli utenti che – dopo essersi registrati – chiedono esplicitamente, motivandolo, di far parte del “gruppo”. L'intento era, intervenendo alla radice, scoraggiare chi – per gioco, per tornaconto o per vandalismo – invade spazi specifici con post inopportuni, sgradevoli e fastidiosi.
Certo, si sarebbero potute adottare altre modalità ma, purtroppo, … tant’è!
Di fatto, dai tempi dell’avvio del forum (16 anni fa) si sono accumulati più di 50.000 iscritti di cui solo una piccola parte (circa 800) fa parte di un gruppo (diciamo “gruppo_01”) che conferisce i permessi per utilizzare il forum.
L’aiuto che chiedo, dunque, è un’indicazione per eliminare quelle utenze (appartenenti al gruppo predefinito “Utenti registrati”), ‘umane’ o meno, non precisamente interessate all’argomento trattato. Questo senza, ovviamente, incidere sui membri del ‘gruppo_01’ (sottoinsieme del precedente).
Spero di essere stato abbastanza comprensibile e ringrazio da adesso chi potrà darmi qualche suggerimento in merito.
Buona serata a tutti
(phpBB 3.3.4)
Avatar utente
alex75
Amministratore
Amministratore
Messaggi: 6268
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 »

Provo a darti una mano...
Esiste un comando nel PCA poco conusciuto e poco utilizzato, ma credo che sia esattamente ciò che ti serve.
Il comando è: "Cancella utente"
Lo trovi su pca/utenti e gruppi/utenti/cancella utenti.
Vedrai diverse opzioni per la cancellazione, come ad esempio la cancellazione per numero di post, per data dell'ultima azione, data di iscrizione, appartenenza ad un certo gruppo.
Mi soffermo su questo (sapendo che usi autogroups) selezionando un gruppo, cancellerai tutti gli utenti appartenneti a quel gruppo, anche se iscritti ad altri gruppi.
Successivamente vedrai una schermata di conferma, con una lista degli utenti che saranno cancellati.
Toccherà a te scegliere il metodo di aggiunta al gruppo che cancellerai successivamente (Richiami, nemero di Post, data di iscrizione etc etc).
nell'esempio sotto io ho creato un gruppo "xx" e l'ho assegnato a 3 utenti test, per poi cancellarli con un click.
puoi anche scegliere se cancellare gli utenti o disattivarli e se trattenere o cancellare i post.
gruppo xx.png

conferma cancellazione.png
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
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 »

Ci sarebbe anche questa ext https://www.phpbb.com/customise/db/exte ... for_phpbb/ che rende il tutto automatico
Avatar utente
twm
PhpBB Expert
PhpBB Expert
Messaggi: 438
Iscritto il: 14/11/2015, 19:33
Link del Forum: https://lnx.3rotaie.it/forum/
Contatta:

Re: Setaccio per utenti non idonei

Messaggio da twm »

Grazie per la segnalazione, mi permetterà pulire un po' il db dagli utenti inutili
Tito
3rotaie.it
Database server: MySQL(i) 5.5.61-38.13-log Versione PHP: 7.3 Versione phpBB: 3.3.4
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 Alex,
purtroppo mi rendo conto di essermi spiegato male.
alex75 ha scritto: 16/08/2021, 22:24 ... cancellerai tutti gli utenti appartenneti a quel gruppo, anche se iscritti ad altri gruppi. ...
questo è proprio quello che ho necessità di evitare: il mio problema è invece cancellare i membri del gruppo speciale “Utenti registrati” che NON appartengano anche ad altri gruppi.
Capisco che non è semplice.
Forse l'unico modo è intervenire direttamente sul DB con una procedura in php (?) In questo caso il problema (per me) è capire da quali tabelle cancellare le "tracce" degli utenti
In ogni caso, grazie molte
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 »

Ciao,
Cancellare gli utenti direttamente dal database è una pessima idea, poiché probabilmente lasceresti infinite tracce nel resto delle correlazioni tra tabelle nel database. L'idea di usare una query per trovare gli utenti da cancellare però è probabilmente la via più veloce. La tabella "phpbb_users" include una colonna "group_id" che indica il gruppo predefinito dell'utente. Allo stesso modo il pannello di controllo ti offre un pannello per cancellare tutti gli utenti dichiarati inattivi o che non abbiano confermato la propria email.

I preparativi iniziali sarebbero quelli di assicurarsi che tutti gli utenti dei gruppi da non filtrare (admin, mod, gruppi speciali ecc) abbiano come predefinito quel gruppo specifico e non quello "Utente Registrato". Nel caso è disponibile una apposita funzione nel pannello amministrativo per rendere un gruppo quello predefinito di tutti gli utenti iscritti al gruppo (Utenti e Gruppi -> Gestisci Gruppi -> Seleziona "Membri" nella riga del gruppo speciale -> Clicca su "seleziona tutti" -> clicca su "rendi il gruppo predefinito per i membri -> ripetere per ogni pagina).

Il passo successivo è eseguire la seguente query, che si occuperà di impostare come inattivi (user_type = 1) tutti gli utenti che hanno il gruppo utente predefinito come predefinito e che non siano founder, definiti come bot o già disattivati (quest'ultimo filtro è per velocizzare la query, non andando ad aggiornare le righe che hanno già il tipo corretto).

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
A questo punto questi utenti risulteranno disattivati e saranno gestibili da un apposito pannello, reperibile sotto Utenti e Gruppi - > Utenti non attivi. Qui sarà possibile gestirli in massa in 3 modi: Riattivandoli, cancellandoli o mandandogli un sollecito via email per fargli riattivare il proprio profilo, se si volesse dare un "periodo di grazia" per vedere eventuali interessati ritardatari. Cancellare un numero eccessivo di utenti per volta potrebbe rallentare o bloccare temporaneamente il sito, raccomando di selezionare un numero di righe in cui agire consono alla potenza del server su cui è in esecuzione il sito.
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 suggerimento, a questo punto sembra che non ci siano altre soluzioni. Solo volevo chiederti se non credi più corretta questa query:

Codice: Seleziona tutto

UPDATE avphpbb_users SET user_type = 1 WHERE group_id = 2 AND user_type != 3 OR user_type != 2 OR user_type != 1
Grazie molte
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 »

inoltre sarei molto interessato a conoscere su quali tabelle e campi interviene il comando di cancellazione degli utenti (con rif. al pannello 'utenti non attivi')
grazie
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: 11/09/2021, 12:34 Grazie Barrnet per il suggerimento, a questo punto sembra che non ci siano altre soluzioni. Solo volevo chiederti se non credi più corretta questa query:

Codice: Seleziona tutto

UPDATE avphpbb_users SET user_type = 1 WHERE group_id = 2 AND user_type != 3 OR user_type != 2 OR user_type != 1
Grazie molte
Nella tua dopo la clausola AND gli basta che sia soddisfatta almeno una delle condizioni OR e potrebbe portare a risultati imprevisti. Mi sono dimenticato nel pubblicare la mia query di sistemare il prefisso delle tabelle (da avphpbb_users a phpbb_users), nel caso ricordati di sistemarlo in base al tuo prefisso.

Cancellare gli utenti a mano non è mai una buona idea, perché le interazioni fra le varie tabelle - specie quelle aggiunte dalle mod - non sono poche e facilmente prevedibili.
Avatar utente
alex75
Amministratore
Amministratore
Messaggi: 6268
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 »

nunzio ha scritto: 11/09/2021, 12:34 Grazie Barrnet per il suggerimento, a questo punto sembra che non ci siano altre soluzioni. Solo volevo chiederti se non credi più corretta questa query:

Codice: Seleziona tutto

UPDATE avphpbb_users SET user_type = 1 WHERE group_id = 2 AND user_type != 3 OR user_type != 2 OR user_type != 1
Grazie molte
Le alternative ci sono. Ne sono state proposte altre 2 .
Cancellare l'utente manualmente dal database, non è per niente una buona idea e non porta ad un buon risultato, come ti ha anche scritto Barrnet stesso.

Magari potresti spiegare meglio, cosa hanno in comune questi utenti?
- non hanno mai postato? c'è una rapida soluzione
- non postano da un tot tempo? c'è una rapida soluzione
- sono stati richiamati x volte? c'è una rapida soluzione
- hanno un x numero di post? c'è una rapida soluzione
- appartengono al gruppo x? c'è una rapida soluzione
Se rientrano in una di queste condizioni (o li forzi a farli rientrare in una di esse) sono stati proposti altri metodi più sicuri e che non lasciano altre tracce dell'utente, post, mp, profilo, log... e chi più ne ha , più ne metta.

Detto questo, qualunque sia la tua decisione, effettua un backup del database, prima di qualunque modifica.
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<
Rispondi