function __construct() { parent::__construct('Grupos de Acceso'); foreach (toba_info_permisos::get_grupos_acceso() as $grupo) { $hijos[] = new catalogo_perfiles_grupo($this, $grupo['usuario_grupo_acc'], $grupo['nombre']); } $this->set_hijos($hijos); $this->agregar_icono(array('imagen' => toba_recurso::imagen_toba('nucleo/preferencias.gif', false), 'ayuda' => 'Administrar GRUPOS de ACCESO')); $opciones['menu'] = true; $opciones['celda_memoria'] = 'central'; $this->agregar_utileria(array('imagen' => toba_recurso::imagen_toba('nucleo/agregar.gif', false), 'ayuda' => 'Crear un nuevo grupo de acceso', 'vinculo' => toba::vinculador()->get_url(toba_editor::get_id(), 1000261, null, $opciones), 'target' => apex_frame_centro)); }
function conf__permisos() { $asignados = $this->get_entidad()->tabla('permisos')->get_filas(); $grupos = toba_info_permisos::get_grupos_acceso(toba_editor::get_proyecto_cargado()); $datos = array(); foreach ($grupos as $grupo) { //El grupo esta asignado al item? $esta_asignado = false; foreach ($asignados as $asignado) { //Si esta asignado ponerle el nombre del grupo y chequear el checkbox if ($asignado['usuario_grupo_acc'] == $grupo['usuario_grupo_acc']) { $grupo['tiene_permiso'] = 1; $grupo['item'] = $this->s__id_item['item']; $esta_asignado = true; } } //Si no esta asignado poner el item y deschequear el checkbox if (!$esta_asignado) { $grupo['tiene_permiso'] = 0; $grupo['item'] = $this->s__id_item['item']; } $datos[] = $grupo; } return $datos; }
function conf__cuadro_restricciones($componente) { if (isset($this->s__filtro)) { $datos = toba_info_permisos::get_restricciones_proyecto($this->get_proyecto_seleccionado()); $componente->set_datos($datos); } }
function get_perfiles_datos() { return toba_info_permisos::get_perfiles_datos(); }
function get_indice_permisos() { $rs = toba_info_permisos::get_lista_permisos(); $datos = array(); foreach ($rs as $dato) { $datos[] = $dato['nombre']; } return $datos; }
function get_lista_perfiles_disponibles() { //Permitir seleccionar sólo aquellos que no creen ciclos $datos = $this->datos('accesos')->get(); $perfil = null; if (isset($datos) && !is_null($datos['usuario_grupo_acc'])) { $perfil = $datos['usuario_grupo_acc']; } return toba_info_permisos::get_perfiles_funcionales_pueden_ser_miembros($this->s__proyecto, $perfil); }
function conf__listado() { $filtro = isset($this->filtro) ? $this->filtro : array(); return toba_info_permisos::get_lista_permisos($filtro); }
function get_grafo() { $grafo = new Structures_Graph(true); $perfiles = toba_info_permisos::get_perfiles_funcionales($this->s__filtro['proyecto']); //Nodos $miembros = array(); foreach ($perfiles as $perfil) { $nodo = new Structures_Graph_Node(); $nodo->setData($perfil); $nodos[$perfil['usuario_grupo_acc']] =& $nodo; $grafo->addNode($nodo); unset($nodo); //Anulo el nodo, de otra manera sobre escribe todos con los valores del ultimo setData (weird) } //Relaciones foreach ($perfiles as $perfil) { //Necesita pasarle la conexion porque aun no termino la transacción $miembros = toba_info_permisos::get_perfiles_funcionales_miembros($perfil['proyecto'], $perfil['usuario_grupo_acc'], toba::db()); foreach ($miembros as $miembro) { $nodos[$perfil['usuario_grupo_acc']]->connectTo($nodos[$miembro['usuario_grupo_acc_pertenece']]); } } return $grafo; }