<?php $editable = toba::zona()->get_editable(); define('separador_camino', '_%_'); $grupo = $editable[1]; $arbol = new toba_catalogo_items(toba_editor::get_proyecto_cargado()); $arbol->cargar_todo(); $arbol->sacar_publicos(); $maximo = $arbol->profundidad(); $formulario = 'permisos'; $boton_post = 'asignar_permisos'; $boton_post_nombre = 'Guardar'; $prefijo_items = 'item_'; //Prefijo de los checkbox if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST[$boton_post])) { if ($_POST[$boton_post] == $boton_post_nombre) { //SI hay un POST, y estuvo disparado por este formulario $items = array(); foreach ($_POST as $etiqueta => $valor) { if (substr($etiqueta, 0, strlen($prefijo_items)) == $prefijo_items) { $nodo = trim(substr($etiqueta, strlen($prefijo_items))); $items[] = $nodo; } } $arbol->cambiar_permisos($items, $grupo); echo ei_mensaje('Los permisos han sido actualizados correctamente'); } } //-------------------------------------------------------------------------- //--------------< INTERFACE DE ASIGNACION de PERMISOS >------------------- //--------------------------------------------------------------------------
function test_rama_otorgar_permisos_item_profundo() { $arbol = new toba_catalogo_items(false, 'toba_testing'); $arbol->sacar_publicos(); $arbol->cambiar_permisos(array(1000210), 'prueba_asignacion'); //Chequeo $items_buscados = array('', 1000202, 1000203, 1000205, 1000208, 1000209, 1000210); $arbol = new toba_catalogo_items(false, 'toba_testing'); $arbol->sacar_publicos(); $arbol->ordenar(); $arbol->dejar_grupo_acceso('prueba_asignacion'); $this->assertEqual($arbol->cantidad_items(), count($items_buscados)); foreach ($arbol->items() as $item) { $this->assertTrue(in_array($item->id(), $items_buscados), 'Las carpetas del camino deben tener permisos'); } $this->asegurar_unicidad($arbol->items()); }
/** * Retorna la lista de carpetas en un formato adecuado para un combo */ static function get_carpetas_posibles($proyecto = null) { if (!isset($proyecto)) { $proyecto = toba_contexto_info::get_proyecto(); } $catalogador = new toba_catalogo_items($proyecto); $catalogador->cargar_todo(array('solo_carpetas' => 1)); if (!defined('ENT_HTML401')) { define('ENT_HTML401', 0); } $esp = html_entity_decode(' ', ENT_COMPAT | ENT_HTML401, "ISO-8859-1"); foreach ($catalogador->items() as $carpeta) { $nivel = $carpeta->get_nivel_prof() - 1; if ($nivel >= 0) { $inden = $esp . str_repeat("|" . str_repeat($esp, 8), $nivel) . "|__{$esp}"; } else { $inden = ""; } $datos[] = array('proyecto' => $proyecto, 'id' => $carpeta->get_id(), 'padre' => $carpeta->get_id(), 'nombre' => $inden . $carpeta->get_nombre()); } return $datos; }