Fork me on GitHub

Rapport de message :*
 

Re: User dans le groupe 0

Titre du sujet : Re: User dans le groupe 0
par hair_peace sur 17/04/2008 17:25:26

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
++
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

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