<?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  >-------------------
//--------------------------------------------------------------------------
Example #2
0
 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());
 }
Example #3
0
 /**
  *	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('&nbsp;', 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;
 }