/** * 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(); }
function get_perfiles_funcionales_asociados($perfil) { if (toba::nucleo()->utilizar_metadatos_compilados($this->id)) { $perfiles = $this->recuperar_datos_compilados_grupo('toba_mc_gene__grupo_', array($perfil), 'get_membresia', true); foreach ($perfiles as $perfil_miembro) { $this->get_perfiles_funcionales_asociados($perfil_miembro); } } else { $perfiles = toba_proyecto_db::get_perfiles_funcionales_asociados($this->id, $perfil); } return $perfiles; }