Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/05/2018, 13:44
Avatar de vicram10
vicram10
 
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 9 meses
Puntos: 27
Respuesta: Usar datos de resultado de Query, fuera del While

de la manera como yo lo hago es asi

Tengo una tabla donde es una clave compuesta, o sea se repite una palabra clave y es variable el id del departamento o role

Tabla: menu_acceso

codMenu / user_depart

agregar-usuario / 1
agregar-usuario / 2
agregar-usuario / 5
agregar-usuario / 10

Tengo una funcion que revisa dicha tabla acuerdo al ID_DEPART de cada usuario de la siguiente forma

Código PHP:
Ver original
  1. //para saber si que permisos tiene el usuario que se loguea
  2.     function PermisosMenu($menu)
  3.     {
  4.         global $capaNegocios, $datosUsuario, $user_key;
  5.        
  6.         //el administrador puede ver todo
  7.         if ($datosUsuario['es_admin'] == 1)
  8.         {
  9.             return true;
  10.         }else{
  11.             $idDepart = (int) $datosUsuario['id_depart'];
  12.             //verificamos si tiene los permisos necesarios
  13.             $tienePermiso = $capaNegocios->ContadorRegistrosTabla('menu_acceso', "where codMenu = '$menu' and user_depart = $idDepart");
  14.             if ($tienePermiso > 0)
  15.                 return true;
  16.             else
  17.                 return false;
  18.         }
  19.     }
Obs.: la variable que uso $datosUsuario es un array con los datos del usuario que esta logueado


Para usar dicha funcion lo hago desde el array o constructor de mi menu principal de la siguiente forma

Código PHP:
Ver original
  1. $menu_principal = array(
  2.     'usuarios' => array(
  3.             'titulo_menu' => 'Agregar Usuarios',
  4.             'url' => '?opt=Usuarios/Agregar', //o la url que usas para cada accion
  5.             'visible' => PermisosMenu('agregar-usuario'), //este devuelve true o false como se puede ver arriba
  6.     ),
  7. );

Entonces donde imprimo el menu hago asi

Código PHP:
Ver original
  1. foreach($menu_principal as $key => $value){
  2.     if ($value['visible']){
  3.         echo '<a href="', $value['url'] ,'">', $value['titulo_menu'] ,'</a>';
  4.     }
  5. }
__________________
Asunción Paraguay
Licenciado - Desarrollador Web - Lider de Proyecto/Desarrollador Banco Local
Espacio Geek - Comunidad Tecnologica

Última edición por vicram10; 15/05/2018 a las 13:49 Razón: no funciona la opcion table :P