Setaccio per utenti non idonei
- nunzio
- Nuovo Utente
- Messaggi: 22
- Iscritto il: 25/12/2018, 11:36
- Link del Forum: http://lontanievicini.it/online
Setaccio per utenti non idonei
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)
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)
- alex75
- 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
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.
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.
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<
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<
- Kimera_V2
- Utente
- Messaggi: 146
- Iscritto il: 08/03/2018, 12:56
- Link del Forum: https://www.creepypastaworld.it
Re: Setaccio per utenti non idonei
Ci sarebbe anche questa ext https://www.phpbb.com/customise/db/exte ... for_phpbb/ che rende il tutto automatico
- twm
- 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
Grazie per la segnalazione, mi permetterà pulire un po' il db dagli utenti inutili
- nunzio
- Nuovo Utente
- Messaggi: 22
- Iscritto il: 25/12/2018, 11:36
- Link del Forum: http://lontanievicini.it/online
Re: Setaccio per utenti non idonei
Grazie Alex,
purtroppo mi rendo conto di essermi spiegato male.
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
purtroppo mi rendo conto di essermi spiegato male.
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
- Barrnet
- 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
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).
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.
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
- nunzio
- Nuovo Utente
- Messaggi: 22
- Iscritto il: 25/12/2018, 11:36
- Link del Forum: http://lontanievicini.it/online
Re: Setaccio per utenti non idonei
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:
Grazie molte
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
- nunzio
- Nuovo Utente
- Messaggi: 22
- Iscritto il: 25/12/2018, 11:36
- Link del Forum: http://lontanievicini.it/online
Re: Setaccio per utenti non idonei
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
grazie
- Barrnet
- 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
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.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:Grazie molteCodice: 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
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.
- alex75
- 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
Le alternative ci sono. Ne sono state proposte altre 2 .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:Grazie molteCodice: 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
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<
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<