Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre habitué
    Onglet Permissions dans la barre de debug et question sur le Menu
    Bonjour Imikado,

    Premièrement dans la fenêtre qui liste les actions et les liens il n'y a pas d'ascenseur vertical pour voir la liste complète.
    Est ce normal??

    Deuxièmement lorsqu'on crée un site avec une gestion de droits est ce normal qu'un sous menu d'un item du menu principal empêche la vision des autres éléments?
    Exemple
    Utilisateur X avec permission pour Consulter synthèse, Liste des commentaires
    item menu principal : SYNTHESE MENSUELLE
    item sous-menu :
    - Consulter synthèse
    - Liste des commentaires
    - Situation par service

    Utilisateur X ne voit pas du tout au final SYNTHESE MENSUELLE.
    Pourquoi?

  2. #2
    Rédacteur

    Pour le plugin debug, vous pouvez remplacer le votre par celui-ci (je mettrai à jour la version du framework, ainsi que sur le market)

    Pour les questions concernant les droits, il me faudrait un exemple de code pour pouvoir vous aider

    La génération des droits via le builder ne créé que la structure de gestion de droits, après c'est à vous d'implementer celle-ci, donc je ne sais pas comment vous l'avez fait exactement
    Je veux bien un exemple de code pour vous aider à résoudre votre soucis.
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. ###raw>post.musername###
    Membre habitué
    Citation Envoyé par imikado Voir le message
    Pour le plugin debug, vous pouvez remplacer le votre par celui-ci (je mettrai à jour la version du framework, ainsi que sur le market)

    Pour les questions concernant les droits, il me faudrait un exemple de code pour pouvoir vous aider

    La génération des droits via le builder ne créé que la structure de gestion de droits, après c'est à vous d'implementer celle-ci, donc je ne sais pas comment vous l'avez fait exactement
    Je veux bien un exemple de code pour vous aider à résoudre votre soucis.
    Voici le main du module manu

    Class module_menu extends abstract_moduleembedded{

    public function _index(){

    $tLink=array(
    'PRODUCTION' => array(
    'Dernière situation' => 'groupe::list',
    ),
    'SYNTHESE MENSUELLE' => array(
    'Consulter synthèse' => 'direction_situation::search',
    'Liste des commentaires (tous services)' => 'direction_situation_tous_services::list',
    'Situation par service' => 'direction_situation::list',

    ),
    'CPG' => array(
    'Tableau de synthèse' => 'cpg::list',
    'Lien MEDIAM' => 'mediam::list',
    ),
    'SMI' => array(
    'TDB PML' => 'tdb_proc_pml::search',
    'Liste des indicateurrs' => 'tdb_proc_pml::list',
    'RNP' => 'rnp::list',
    ),
    'ADMINISTRATION'=> array(
    'Groupes' => 'groupe::list',
    'Actions' => 'actions::list',
    'Liens' => 'items::list',
    'Droits' => 'rightsManager::index',
    'Utilisateurs' => 'users::list',
    'Upload CPG et RNP IJ' => 'groupe::list',
    'Famille caractéristiques indicateurs' => 'fam_caract_indic::list',
    'Périodicité' => 'periodicite_indic::list',
    'Statut d\'indicateurs' => 'statut_indic::list',
    'Service' => 'service::list',
    ),
    'Se déconnecter'=>'auth::logout'

    );

    foreach($tLink as $sLabelPrim => $sLink){
    if (is_array($sLink)){

    foreach($sLink as $sLabelSec=>$sSousMenu){
    if(!_root::getACL()->can('access',$sSousMenu)) {
    unset($tLink[$sLabelPrim]);
    unset($tLink[$sLabelPrim][$sLabelSec]);

    }

    }

    } else {
    if(!_root::getACL()->can('access',$sLink)){
    unset($tLink[$sLabelPrim]);
    }
    }
    }

    $oView=new _view('menu::index');
    $oView->tLink=$tLink;


    return $oView;
    }
    }

    Voici wiew/index.php

    <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
    <div class="container">
    <div class="navbar-header">
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
    <span class="sr-only">Toggle navigation</span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    </button>
    <a class="navbar-brand" href="index.php?:nav=default::index">Cellule Statistiques</a>
    </div>
    <span class="navbar-brand pull-right">
    <?php
    if (_root::getAuth() and _root::getAuth()->getAccount()) {
    echo _root::getAuth()->getAccount()->login ;
    }
    ?>
    </span>

    <div class="collapse navbar-collapse">
    <script>
    function openMenu(id){
    var a=getById('cat'+id);
    if(a){
    if(a.style.display==='none'){
    a.style.display='block';
    }else{
    a.style.display='none';
    }
    }
    }
    </script>

    <ul class="nav navbar-nav">
    <?php $i=0;?>
    <?php foreach($this->tLink as $sLibelle => $sLink): ?>
    <?php if(is_array($sLink))>
    <li class="dropdown"><a href="#" onclick="openMenu(<?php echo $i?>);return false"><?php echo $sLibelle?>
    <ul class="dropdown-menu" style="display:none" id="cat<?php echo $i?>">
    <?php foreach($sLink as $sLibelle2 => $uLink)>
    <?php if(_root::getParamNav()==$uLink)>
    <li class="active"><a href="<?php echo $this->getLink($uLink) ?>"><?php echo $sLibelle2 ?></a></li>
    <?php else>
    <li><a href="<?php echo $this->getLink($uLink) ?>"><?php echo $sLibelle2 ?></a></li>
    <?php endif;?>
    <?php endforeach;?>
    </ul>
    </li>
    <?php $i++;?>
    <?php else>
    <?php if(_root::getParamNav()==$sLink)>
    <li class="active"><a href="<?php echo $this->getLink($sLink) ?>"><?php echo $sLibelle ?></a></li>
    <?php else>
    <li><a href="<?php echo $this->getLink($sLink) ?>"><?php echo $sLibelle ?></a></li>
    <?php endif;?>
    <?php endif;?>
    <?php endforeach;?>
    </ul>


    </div><!--/.nav-collapse -->
    </div>
    </div>

    Le problème existe sous le groupe DIRECTEUR.
    Par contre en admin vu que tous les items sont en access aucun problème
      0  0

  4. #4
    Rédacteur

    En effet il y a une erreur sur la boucle de droits supprimant les accès au menu, vous pouvez modifier ainsi:

    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    foreach ($tLink as $sLabelPrim => $sLink) {
    			if (is_array($sLink)) {
     
    				foreach ($sLink as $sLabelSec => $sSousMenu) {
    					if (!_root::getACL()->can('access', $sSousMenu)) {
    						unset($tLink[$sLabelPrim][$sLabelSec]);
    					}
    				}
     
    				//si aucun sous menu autorise, on supprime le menu
    				if (count($tLink[$sLabelPrim]) == 0) {
    					unset($tLink[$sLabelPrim]);
    				}
    			} else {
    				if (!_root::getACL()->can('access', $sLink)) {
    					unset($tLink[$sLabelPrim]);
    				}
    			}
    		}


    note: en effet il ne faut supprimer l'accès au groupe parent que si il n'y a pas de sous menu autorisé

    Par contre où avez-vous trouver ce code sur le site du framework (pour le corriger) ?
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Membre habitué
    Citation Envoyé par imikado Voir le message
    En effet il y a une erreur sur la boucle de droits supprimant les accès au menu, vous pouvez modifier ainsi:

    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    foreach ($tLink as $sLabelPrim => $sLink) {
    			if (is_array($sLink)) {
     
    				foreach ($sLink as $sLabelSec => $sSousMenu) {
    					if (!_root::getACL()->can('access', $sSousMenu)) {
    						unset($tLink[$sLabelPrim][$sLabelSec]);
    					}
    				}
     
    				//si aucun sous menu autorise, on supprime le menu
    				if (count($tLink[$sLabelPrim]) == 0) {
    					unset($tLink[$sLabelPrim]);
    				}
    			} else {
    				if (!_root::getACL()->can('access', $sLink)) {
    					unset($tLink[$sLabelPrim]);
    				}
    			}
    		}


    note: en effet il ne faut supprimer l'accès au groupe parent que si il n'y a pas de sous menu autorisé

    Par contre où avez-vous trouver ce code sur le site du framework (pour le corriger) ?
    Je n'ai pas trouvé ce code sur le site du framework mais sur ce forum avec en page 4 la discussion Gestion des droits : Menu et Sous Menu
    Créée par llaffont, 23/07/2015 17h11

    Merci pour ton aide précieuse.
    Je n'ai pas encore me pencher sur la création du site mk framework avec bootstrap.
    Je le ferais à partir du 02/11/2016 car ma formation a été validé par mon opca.
    Je pourrais m'y consacrer à plein temps.

###raw>template_hook.ano_emploi###