IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

MkFramework Discussion :

Onglet Permissions dans la barre de debug et question sur le Menu


Sujet :

MkFramework

  1. #1
    Membre habitué
    Homme Profil pro
    Assistant statisticien
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Assistant statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Points : 168
    Points
    168
    Par défaut 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
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    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.
    Fichiers attachés Fichiers attachés
    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. #3
    Membre habitué
    Homme Profil pro
    Assistant statisticien
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Assistant statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Points : 168
    Points
    168
    Par défaut
    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

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    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é
    Homme Profil pro
    Assistant statisticien
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Assistant statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Points : 168
    Points
    168
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/06/2015, 22h02
  2. Onglets dans la barre de titre
    Par Rataah dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/05/2011, 10h35
  3. Réponses: 5
    Dernier message: 10/11/2009, 13h32
  4. Modifications dans la barre d'onglets du site www.developpez.com
    Par Marc Lussac dans le forum Evolutions du club
    Réponses: 12
    Dernier message: 20/01/2008, 22h12
  5. Réponses: 15
    Dernier message: 12/01/2007, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo