Пример #1
0
 /**
  *	Compilacion de GRUPOS de ACCESO
  */
 function compilar_metadatos_generales_grupos_acceso($limpiar_existentes = false)
 {
     toba_proyecto_db::set_db($this->db);
     if ($limpiar_existentes) {
         $archivos = toba_manejador_archivos::get_archivos_directorio($this->get_dir_generales_compilados(), '/toba_mc_gene__grupo/');
         foreach ($archivos as $archivo) {
             unlink($archivo);
         }
     }
     $this->manejador_interface->mensaje('Perfiles funcionales', false);
     foreach ($this->get_indice_grupos_acceso() as $grupo_acceso) {
         $nombre_clase = 'toba_mc_gene__grupo_' . $grupo_acceso;
         $archivo = $this->get_dir_generales_compilados() . '/' . $nombre_clase . '.php';
         $clase = new toba_clase_datos($nombre_clase);
         //-- Menu -------------------------------
         $datos = toba_proyecto_db::get_items_menu($this->get_id(), array($grupo_acceso));
         $temp = array();
         foreach ($datos as $dato) {
             $temp[$dato['proyecto'] . '-' . $dato['item']] = $dato;
         }
         $clase->agregar_metodo_datos('get_items_menu', $temp);
         //-- Control acceso ---------------------
         $datos = toba_proyecto_db::get_items_accesibles($this->get_id(), array($grupo_acceso));
         $temp = array();
         foreach ($datos as $dato) {
             $temp[$dato['proyecto'] . '-' . $dato['item']] = $dato;
         }
         $clase->agregar_metodo_datos('get_items_accesibles', $temp);
         //-- Permisos ---------------------------
         $datos = toba_proyecto_db::get_lista_permisos($this->get_id(), array($grupo_acceso));
         $temp = array();
         foreach ($datos as $dato) {
             $temp[$dato['nombre'] . '-'] = $dato;
             //Se concatena un string porque asi el merge unifica si o si aunque el nombre sea un numero
         }
         $clase->agregar_metodo_datos('get_lista_permisos', $temp);
         //-- Acceso items zonas -----------------
         foreach ($this->get_indice_zonas() as $zona) {
             $datos = toba_proyecto_db::get_items_zona($this->get_id(), array($grupo_acceso), $zona);
             $temp = array();
             foreach ($datos as $dato) {
                 $temp[$dato['item_proyecto'] . '-' . $dato['item']] = $dato;
             }
             $clase->agregar_metodo_datos('get_items_zona__' . $zona, $temp);
         }
         //-- Membresía -------------------
         $miembros = toba_proyecto_db::get_perfiles_funcionales_asociados($this->get_id(), $grupo_acceso);
         $clase->agregar_metodo_datos('get_membresia', $miembros);
         //Guardo el archivo
         $clase->guardar($archivo);
         $this->manejador_interface->progreso_avanzar();
     }
     //-- Agrego los items publicos en un archivo aparte, para que el usuario no autentificado pueda navegarlos
     $nombre_clase = 'toba_mc_gene__items_publicos';
     $archivo = $this->get_dir_generales_compilados() . '/' . $nombre_clase . '.php';
     $clase = new toba_clase_datos($nombre_clase);
     $datos = toba_proyecto_db::get_items_accesibles($this->get_id(), array());
     $temp = array();
     foreach ($datos as $dato) {
         $temp[$dato['proyecto'] . '-' . $dato['item']] = $dato;
     }
     $clase->agregar_metodo_datos('get_items_accesibles', $temp);
     $clase->guardar($archivo);
     $this->manejador_interface->progreso_avanzar();
     $this->manejador_interface->progreso_fin();
 }
Пример #2
0
 /**
  *	Devuelve la lista de items de la zona a los que puede acceder el grupo actual
  */
 function get_items_zona($zona, $grupos_acceso = null)
 {
     if (!isset($grupos_acceso)) {
         $grupos_acceso = toba::manejador_sesiones()->get_perfiles_funcionales_activos();
     }
     if (toba::nucleo()->utilizar_metadatos_compilados($this->id)) {
         $rs = $this->recuperar_datos_compilados_grupo('toba_mc_gene__grupo_', $grupos_acceso, 'get_items_zona__' . $zona, true, array('orden'));
     } else {
         $rs = toba_proyecto_db::get_items_zona($this->id, $grupos_acceso, $zona);
     }
     return $rs;
 }