Fork me on GitHub






Permission dans un module
Semi pro
Inscrit: 08/03/2006 21:08
Messages: 1176
Bonjour,

J'aurai voulu savoir comment intégrer la gestion des permissions dans un nouveau module. Je n'arrive pas à trouver une explication du fonctionnement, quelqu'un pourrait-il m'éclairer?

Merci beaucoup

Posté le : 18/01/2009 23:57
Partager Twitter Partagez cette article sur GG+
Re: Permission dans un module
Semi pro
Inscrit: 26/03/2004 17:57
De Metz
Messages: 1210
Tu veut creer un system de permission ? rien de plus simple et de compliquer. xoops gere presque tous seul les permissions le mieux pour comprendre le system et d'ouvrir un module et de regarder comment c'est fait pour integrer un system de permission pour mon module j'ai juste modifier quelque variable et un formulaire.

le fichier et en générl admin / groupperms.php

groupperm_global pour mpmanager.

Cordialement, Venom

Posté le : 19/01/2009 01:01
Partager Twitter Partagez cette article sur GG+
Re: Permission dans un module
Semi pro
Inscrit: 08/03/2006 21:08
Messages: 1176
Merci pour tes informations!

par contre tu dois mettre quoi comme commande dans dans ton fichier submit.php (exemple) pour que cela fonctionne?

A+

Posté le : 19/01/2009 06:35
Partager Twitter Partagez cette article sur GG+
Re: Permission dans un module
Semi pro
Inscrit: 26/03/2004 17:57
De Metz
Messages: 1210
Whoua dur Alors on a 2 fichier

1) admin/groupperm_global.php

La on vas mettre un appelle a la classe des permissions

include_once XOOPS_ROOT_PATH '/class/xoopsform/grouppermform.php';


Puis on vas construire notre formulaire de permission

function list_groups()
{
    global 
$xoopsModule ;

    
$global_perms_array = array(
        
GPERM_VIEW => _TR_CONF_VIEW ,
        
GPERM_EDIT => _TR_CONF_EDIT ,
        
GPERM_SUP_EDIT => _TR_CONF_SUP_EDIT ,
//        GPERM_EDITABLE => _ALBM_GPERM_G_EDITABLE ,
        
GPERM_DELETE => _TR_CONF_DEL ,
        
GPERM_SUP_DELETE => _TR_CONF_SUP_DEL ,
//        GPERM_DELETABLE => _ALBM_GPERM_G_DELETABLE ,
        
GPERM_UP => _TR_CONF_UP ,
        
GPERM_DL => _TR_CONF_DL ,
    ) ;

    
$form = new XoopsGroupPermForm'' $xoopsModule->mid() , 'tr_global') ;
    foreach( 
$global_perms_array as $perm_id => $perm_name ) {
        
$form->addItem$perm_id $perm_name ) ;
    }

    echo 
$form->render() ;
}


ou GPERM_VIEW et le nom de la variable et _TR_CONF_VIEW la traduction que tu déclare plus tard dans modinfo.php pareil pour GPERM_EDIT => _TR_CONF_EDIT , ect..

ensuite tu appelle ta fonction

echo "<div id='toptable'>";
list_groups() ;
echo 
"</div>n" ;


bon en gros c'est ça manque deux trois truc mais bon...

ensuite tu crée un fichier get_perm.php que tu inclus dans ton header pour qu'il soit appelé dans toute les pages

<?php
if( ! defined'XOOPS_ROOT_PATH' ) ) exit ;

$global_perms ;
if( 
is_object$xoopsDB ) ) {
    if( ! 
is_object$xoopsUser ) ) {
        
$whr_groupid "gperm_groupid=".XOOPS_GROUP_ANONYMOUS ;
    } else {
        
$groups =& $xoopsUser->getGroups() ;
        
$whr_groupid "gperm_groupid IN (" ;
        foreach( 
$groups as $groupid ) {
            
$whr_groupid .= "$groupid," ;
        }
        
$whr_groupid substr$whr_groupid , -) . ")" ;
    }
//    $rs = $xoopsDB->query( "SELECT gperm_itemid FROM ".$xoopsDB->prefix("group_permission")." WHERE gperm_modid='$myalbum_mid' AND gperm_name='myalbum_global' AND ($whr_groupid)" ) ;
    
$rs $xoopsDB->query"SELECT gperm_itemid FROM ".$xoopsDB->prefix("group_permission")." LEFT JOIN ".$xoopsDB->prefix("modules")." m ON gperm_modid=m.mid WHERE m.dirname='$mydirname' AND gperm_name='tr_global' AND ($whr_groupid)" ) ;
    while( list( 
$itemid ) = $xoopsDB->fetchRow$rs ) ) {
        
$global_perms |= $itemid ;
    }
}
?>




Ensuite a toi de vérifier les permissions a chaque page

if( ! ( $global_perms GPERM_UP ) ) {
    
redirect_header"index.php" _TR_NO_LEVEL) ;
    exit ;
}



Cordialement, Venom

Posté le : 19/01/2009 16:00
Partager Twitter Partagez cette article sur GG+
Re: Permission dans un module
Semi pro
Inscrit: 08/03/2006 21:08
Messages: 1176
Super réponse! Merci beaucoup.

Je testerai bientôt! Par contre je me suis toujours demandé, ça veut dire quoi le "2" de cette ligne:

redirect_header"index.php" _TR_NO_LEVEL) ;


Car c'est pas toujours le même nombre!

A+

Posté le : 19/01/2009 23:19
Partager Twitter Partagez cette article sur GG+
Re: Permission dans un module
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2554
la durée en seconde d'affichage du message, ce me semble.
JJDAI

Posté le : 20/01/2009 00:46

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



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

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