Fork me on GitHub




(1) 2 »


User dans le groupe 0
Aspirant
Inscrit: 13/04/2005 16:53
Messages: 66
Bonjour tout l'monde,

j'ai un petit problème avec un utilisateur qui appartient au groupe "0".
En effet, si je regarde les appels SQL j'ai quelque chose du genre:

SELECT COUNT(*)
FROM mysite_group_permission
WHERE (gperm_modid = '1' AND gperm_name = 'module_read' AND gperm_itemid = '65' AND (gperm_groupid = '0' OR gperm_groupid = '2'))

C'est pas très grave sauf que le groupe 0 a des droits dans la table des permissions !!!!!!

Quelq'un aurait-il déjà été confronté à ce problème ???

Merchi

Posté le : 17/04/2008 12:33
Partager Twitter Partagez cette article sur GG+
Re: User dans le groupe 0
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Salut,
Je ne suis pas sûr de bien comprendre ton souci.

Le groupe '0' n'existe pas (ça commence à 1, avec le groupe des webmestres).

C'est une requête que tu lis dans le mode debug de ton site ?
Indique nous plutôt le souci précis que tu rencontres !

Posté le : 17/04/2008 13:04
Partager Twitter Partagez cette article sur GG+
Re: User dans le groupe 0
Aspirant
Inscrit: 13/04/2005 16:53
Messages: 66
Merci pour la réponse blueteen !!!

Souci précis: j'ai un utilisateur qui se voit octroyer des droits qu'il n'a pas.

Sinon, la requête viens bien du mode debug.

Citation :
Le groupe '0' n'existe pas (ça commence à 1, avec le groupe des webmestres).

Justement, c'est ça qui n'est pas normal !!! Le groupe n'existe pas mais pourtant l'utilisateur est affecté à ce groupe.
Et en plus, le groupe 0 a des droits d'accès à des modules !!!

Donc, comment mon utilisateur s'est vu affecté à ce groupe inexistant et comment des droits ont été donnés à ce groupe ? Et enfin, comment nettoyer tout ça ?

Merchi

Posté le : 17/04/2008 13:46
Partager Twitter Partagez cette article sur GG+
Re: User dans le groupe 0
Xoops accro
Inscrit: 04/02/2003 01:54
De Le Mans
Messages: 12273
Bonjour,

Avec quelle version de Xoops cela se produit-il ?

A partir de quel(s) module(s) ton utilisateur se voit-il accordé des droits supplémentaires ?

peux tu exécuter cette requête dans phpmyadmin ?
select * from xoops_groups_users_link where uid= (uid de ton utilisateur spécial) et nous en indiquer le résultat

Posté le : 17/04/2008 13:57
Partager Twitter Partagez cette article sur GG+
Re: User dans le groupe 0
Aspirant
Inscrit: 13/04/2005 16:53
Messages: 66
Hello Christian,

je suis sur la version 16

Citation :
A partir de quel(s) module(s) ton utilisateur se voit-il accordé des droits supplémentaires ?

Je ne suis pas certain de comprendre. J'ai fait un

SELECT *
FROM `xoops_group_permission`
WHERE `gperm_groupid` =0
AND `gperm_name` = 'module_read'


et j'ai une dizaine de gperm_itemid (que ce soit tel ou tel module n'a pas de réelle importance je pense)


Le résultat de votre requête:

link_id |groupid |uid
54      
|2       |65
1150    
|22      |65
1039    
|40      |65
1322    
|46      |65
652     
|0       |65
1159    
|98      |65
1129    
|6       |65
495     
|0       |65
1399    
|109     |65


L'utilisateur est donc bien dans le groupe 0.

Posté le : 17/04/2008 14:24
Partager Twitter Partagez cette article sur GG+
Re: User dans le groupe 0
Xoops accro
Inscrit: 04/02/2003 01:54
De Le Mans
Messages: 12273
Citation :

que ce soit tel ou tel module n'a pas de réelle importance je pense


hé bien si justement, car cela signifie que le développement des modules concernés pourrait être faillible au niveau des permissions, puisque par convention le groupe 0 n'existe pas.

Reste cependant à en étudier les véritables conséquences. Cela consiste :
- à créer un user de test à qui l'on affecte dans le groupe 0 et aucun autre groupe (notamment le groupe des utilisateurs enregistrés)
- à se connecter avec et ensuite tester le comportement du site , module par module.

Posté le : 17/04/2008 16:45
Partager Twitter Partagez cette article sur GG+
Re: User dans le groupe 0
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Je suis curieux de savoir comment ce user est arrivé dans un groupe 0 aussi !
Tu peux nous en dire plus ?
Tu l'as créé à la main ? C'est un compte d'un internaute qui s'est inscrit tout seul ?
Ton group_id monte jusqu'à 109 ?!

Tu fais quoi avec tes groupes ? Tu en as tant que ça ? Ou ce sont des essais avec ajouts/suppressions réguliers ?

Cet utilisateur 65 là, tu as édité son compte à un moment donné ?
Tu as voulu le changer de groupe ou autre ?

Posté le : 17/04/2008 16:56
Partager Twitter Partagez cette article sur GG+
Re: User dans le groupe 0
Aspirant
Inscrit: 13/04/2005 16:53
Messages: 66
Merci vous deux pour les réponses !!!

...modules ... faillible au niveau des permissions...


Je n'ai pas de module modifiant les permissions... c'est Xoops qui les gère et les exploite. Non !?

Pour les tests, c'est simple: si le groupe 0 a des accès, le user appartenant à ce groupe les a aussi... logique


Sinon, j'ai créé l'utilisateur à la main puisque je ne permet pas les inscriptions.

Non, mon group_id ne monte pas jusque 109 mais 120 !!! lol

Ce qu'je fais avec mes groupes ??? je met des utillisateurs dedans et j'affecte des droits (utilisation normale...)

Oui j'en ai tant que ça

Oui j'ai édité son compte et je l'ai changé de groupe. (je pouvais pas ? )


Je crois qu'on ne trouvera pas la cause dans ma situation: trop de groupes, d'users et d'affections créés, modifiés et supprimés.

Sinon j'ai fait:

/*Get gperm_permids where group not exists*/
        
$sql="    SELECT    gperm_id 
                FROM    "
.$xoopsDB->prefix('group_permission')." GP
                WHERE NOT EXISTS(SELECT    groupid
                                FROM    "
.$xoopsDB->prefix('groups')." G
                                WHERE G.groupid=GP.gperm_groupid)"
;
        
$gperm_ids=null;
        if (
$result=$xoopsDB->query($sql)){
            while (
$list=$xoopsDB->fetchArray($result)){
                
$gperm_ids[]=$list['gperm_id'];
            }
            
$return=true;
        }

        
/*Delete perms from gperm_permids*/
        
if ($gperm_ids)
        foreach (
$gperm_ids as $key => $gperm_id){
            
$sql="    DELETE    
                    FROM    "
.$xoopsDB->prefix('group_permission')."
                    WHERE    gperm_id="
.$gperm_id."";
            
$return&=$xoopsDB->query($sql);
        }

pour supprimé les permissions avec des groupes qui n'existent pas

et

/*Get gperm_permids where group not exists*/
        
$sql="    SELECT    linkid 
                FROM    "
.$xoopsDB->prefix('groups_users_link')." GUL
                WHERE NOT EXISTS(SELECT    groupid
                                FROM    "
.$xoopsDB->prefix('groups')." G
                                WHERE G.groupid=GUL.groupid)"
;
        
$linkids=null;
        if (
$result=$xoopsDB->query($sql)){
            while (
$list=$xoopsDB->fetchArray($result)){
                
$linkids[]=$list['linkid'];
            }
            
$return=true;
        }

        
/*Delete perms from gperm_permids*/
        
if ($linkids)
        foreach (
$linkids as $key => $linkid){
            
$sql="    DELETE    
                    FROM    "
.$xoopsDB->prefix('groups_users_link')."
                    WHERE    linkid="
.$linkid."";
            
$return&=$xoopsDB->query($sql);
        }

pour les utilisateur affectés à des groupes qui n'existent pas.

Perso, j'en reste là mais si je découvre la cause, je vous tiens au courant.

Merci encore
++

Posté le : 17/04/2008 17:25
Partager Twitter Partagez cette article sur GG+
Re: User dans le groupe 0
Aspirant
Inscrit: 13/04/2005 16:53
Messages: 66
Pour ceux qui s'intéressent à ce topic,

lors de l'installation d'un module, xoops m'affiche:

Module data inserted successfullyModule ID245
Setting group rights
...
  
Added user access right for Group ID0
  Added user access right 
for Group ID0
  Added user access right 
for Group ID0
  Added user access right 
for Group ID0
  Added user access right 
for Group ID0
  Added user access right 
for Group ID0
  Added user access right 
for Group ID0
  Added admin access right 
for Group ID 1
  Added user access right 
for Group ID1


Cela n'explique pas tout mais ça explique l'attribution de droits au groupe 0. Maintenant pourquoi Xoops (2.0.16) fait ça... ?

Posté le : 30/04/2008 12:19
Partager Twitter Partagez cette article sur GG+
Re: User dans le groupe 0
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
A l'installation de quel module ?
A mon avis c'est plutôt le module en question qui fait ça !

Posté le : 30/04/2008 12:53
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
(1) 2 »



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

56 Personne(s) en ligne (51 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 56 | Plus ...