Asignar permisos a modulo personalizado

Events happening in the community are now at Drupal community events on www.drupal.org.
tonoFlores's picture

Que tal comunidad:

Me encuentro realizando un modulo personalizado que accede a los datos de una bd externa, sin embargo los datos que despliegue solo seran para usuarios registrados. Hasta este momento ya accedo a la bd sin ningun problema y en el apartado de admin/people/permissions ya aparece mi modulo para asignarle permisos pero no respeta la restriccion del acceso. Se que esto se logra con hook_permission y hook menu pero los diferentes post que he consultado no han logrado resolver mi dilema. Anexo codigo saludos!

<?php
  
   
function bdvinos_menu() {
    
$items['vinos/listar'] = array(
      
'title' => 'Lista de Vinos',
       
'page callback' => 'bdvinos_vinos_listar',
     
'access callback' => TRUE,
       );
        return
$items;
     }  

  function
bdvinos_vinos_listar() {
    
$bd_vinos = array(
     
'database' => 'vinos',
        
'username' => 'root',
      
'password' => 'password',
      
'host' => 'localhost',
     
'driver' => 'mysql',
       );

   
$core = array('cache', 'cache_path', 'cache_filter', 'cache_bootstrap', 'cache_page');
      
$cache_tables = array_merge(module_invoke_all('flush_caches'), $core);
       foreach (
$cache_tables as $table) {
           
cache_clear_all('*', $table, TRUE);
     }

      try{
         
Database::addConnectionInfo('vinos', 'default', $bd_vinos);
           
db_set_active('vinos');
      } catch (
Exception $e){
           
db_set_active();
          return
"se produjo un error al marcar la BD activa: ".$e;
        }

       
$sql = "SELECT * from vinos";
       
$results = db_query($sql);
    
$salida = "";

       foreach(
$results as $res){
           
$salida = $salida."[ID] =".$res->id." [NOMBRE] = ".$res->titulo;
     }

    
db_set_active();
       return
$salida;
    }

function
bdvinos_permission() {
        return array(
             
'Acceso vinos' => array(
                 
'title' => t('Permisos BD Vinos'),
          ),
         );
}

function
bdvinos_menu() {
     
$items = array();
     
$items['bdvinos'] = array(
          
'title' => 'Lista de Vinos',
           
'page callback' => 'bdvinos_vinos_listar',
         
'access arguments' => array('Acceso vinos'),
           
'type' => MENU_CALLBACK,
          );
     return
$items;
}
?>

Comments

Función repetida

georch's picture

Hola Toño,

Echando un ojo rápido veo que tienes repetida la función "bdvinos_menu", la primera sin restricción y la segunda con el 'access arguments' entonces la ruta "vinos/listar" no tiene restricción y "bdvinos" si está restringida.

Saludos,

georch

México

Group categories

Grupos locales

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: