X-Git-Url: https://git.llucax.com/mecon/samurai.git/blobdiff_plain/52ec6b73aae5937cd9c04e150e6b261b8be98b01..e3f1a9e49399986f8071b55d63a0425f5a60ca68:/lib/SAMURAI/HTML/Perfil.php diff --git a/lib/SAMURAI/HTML/Perfil.php b/lib/SAMURAI/HTML/Perfil.php index 372abf8..72af3dc 100644 --- a/lib/SAMURAI/HTML/Perfil.php +++ b/lib/SAMURAI/HTML/Perfil.php @@ -23,54 +23,56 @@ /** \page page_samurai_html_perfil Perfil Embebido \section page_samurai_html_perfil_descripcion Descripcion - Funcion que sirve para embeber la funcionalidad de los perfiles dentro de - los sistemas que asi lo requieran (Es una copia de la funcionalidad de la - seccion). - Necesita para funcionar que se le pase como parametro la referencia al - objeto MECON_Marco que se este utilizando, ademas del identificador del - sistema del sistema en el cual se esta trabajando. - El funcionamiento es completamente independiente del sistema en el cual se - trabaje, no es necesario que se ingrese como seccion o subseccion. De hecho - como se ve en el ejemplo solo se embebe una tabla o formulario pero se - pueden agregar cosas particulares antes y despues de el. - - \note Trabaja con variables de sesion asi que es necesario que antes de llamar a - esta funcion se haya realizado un session_start() (Por ejemplo en el prepend). + Samurai provee de una funcion que permite embeber la funcionalidad de + perfiles dentro de aquellos sistemas que asi lo requieran. + Es completamente independiente del sistema en el cual trabaja y puede ser + agregado de cualquier manera (Seccion, Subseccion o Contenido) al sistema. + + \note Es necesario para embeber los perfiles que se haya realizado un + session_start(). \section page_samurai_html_perfil_funcionamiento Funcionamiento - Al ser una copia de la seccion de Samurai, los permisos y validaciones que - se realizan en esta funcion son las mismas que se realizan en Samurai. + Es una copia de la seccion Perfiles dentro de SAMURAI. Se relizan las mismas + verificaciones, tiene las mismas condiciones y se utilizan los mismos + permisos que en este. - \subsection page_samurai_html_perfil_funcionamiento_validaciones Validaciones - Se realizan las siguientes validaciones: - - Los nombres de los perfiles nuevos deben ser distintos. - - Los espacios entre las palabras que componen el nombre de un - perfil son eliminados. Ej: Agregar    Usuario - se cambia por Agregar Usuario. - - Es obligatorio que los perfiles contengan al menos un permiso. - - No puede haber dos perfiles con los mismos permisos. - - No se pueden borrar perfiles que esten asociados a usuarios. + \subsection page_samurai_html_perfil_funcionamiento_validaciones Validaciones y Condiciones + - Los espacios entre las palabras que componen el nombre de un + perfil son eliminados. Ej: Agregar    Usuario + se cambia por Agregar Usuario. + - Es obligatorio que los perfiles contengan al menos un permiso. + - No puede haber dos perfiles con los mismos permisos. + - No se pueden borrar perfiles que esten asociados a usuarios. + - No se pueden ingresar pefiles nuevos que ya esten cargados. \section page_samurai_html_perfil_ejemplo Ejemplo - La utilizacion de perfiles embebido no genera condiciones, queda a criterio - del desarrollador incluir esta funcionalidad en el lugar que quiera. + SAMURAI_HTML_Perfil agrega el contenido directamente en el marco que se este + utilizando. + Para embeber los perfiles hay que hacerlo de la siguiente manera - De esta manera se agrega la funcionalidad: \code include 'SAMURAI/HTML/Perfil.php'; - SAMURAI_HTML_Perfil($MARCO, $ID_SISTEMA); \endcode - En donde $MARCO es el objeto MECON_Marco que utiliza el sistema y - $ID_SISTEMA es el identificador numerico del sistema en el cual se esta - trabajando. + \note $MARCO es el objeto MECON_Marco o el objeto HTML_DietMarco de + intranet. + $ID_SISTEMA es el identificador numerico en el cual se esta realizando la + accion de embeber. - Antes o despues de esto se pueden agregar componentes pertenecientes al - sistema. +\section page_samurai_html_perfil_permisos Pasos Finales + Para que los usuarios puedan acceder a los perfiles embebidos es necesario + que en el sistema en el cual se este embebiendo se agregen los permisos que + utiliza la seccion Perfiles (enumerados mas abajo), y que estos mediante + perfiles se asignen a usuarios. + Esto implica que por lo menos un usuario tendra que ser cargado desde + SAMURAI para que este tenga acceso a la zona embebida. - \note Es necesario para ver el contenido de la pagina hacer - $MARCO->display() al final de la misma. + Permisos + - perfil alta + - perfil baja + - perfil modificacion + - perfil tipo */ //REQUIRE ONCE {{{ @@ -87,8 +89,10 @@ require_once 'MECON/HTML/Image.php'; require_once 'PEAR.php'; // }}} -/** Funcion que se encarga agregar los componentes necesarios al sistema para - * que se pueda realizar un abm de perfiles. Sin los parametros no funciona +/** + * Funcion que se encarga agregar los componentes necesarios al sistema para + * que se pueda realizar un abm de perfiles. +@see \ref page_samurai_html_perfil * * @param MECON_Marco &$MARCO Referencia al objeto MECON_Marco que se este utilizando en la pagina * @param int $id_sistema Identificador del sistema en el cual se esta trabajando @@ -124,7 +128,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) { //LISTADO {{{ if ($OPCION == 'listado') { //VEO SI PUEDE ACCEDER{{{ - $SAMURAI_PERM->chequear(SAMURAI_ALTA_PERFIL,SAMURAI_BAJA_PERFIL,SAMURAI_MODI_PERFIL); + $SAMURAI_PERM->chequear(SAMURAI_PERM_PERFIL_ALTA,SAMURAI_PERM_PERFIL_BAJA,SAMURAI_PERM_PERFIL_MODIF); //}}} //LINKS {{{ $aHref = ''; @@ -146,20 +150,20 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) { $TABLA3->addRow($row,'align=left'); //Agrego el link a nuevo - if ($SAMURAI_PERM->tiene(SAMURAI_ALTA_PERFIL)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_ALTA)) { $row = array ('Ingresar Nuevo Perfil'); $TABLA2->addRow($row,'align=right'); } //Genero la cabecera de la tabla - $row = array ('Id','Descripcion'); - if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) { + $row = array ('Id','DescripciĆ³n'); + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) { $row[] = 'Tipo'; } - if ($SAMURAI_PERM->tiene(SAMURAI_MODI_PERFIL)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_MODIF)) { $row[] = 'Modif.'; } - if ($SAMURAI_PERM->tiene(SAMURAI_BAJA_PERFIL)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_BAJA)) { $row[] = 'Elim.'; } @@ -171,29 +175,29 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) { $Elim = ereg_replace('##ACCION##', 'e' , $Elim ); $row = array ($perfil->getId(), $perfil->getDescripcion()); - if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) { $row[] = $perfil->getTipo(); } - if ($SAMURAI_PERM->tiene(SAMURAI_MODI_PERFIL)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_MODIF)) { $row[] = $Modif; } - if ($SAMURAI_PERM->tiene(SAMURAI_BAJA_PERFIL)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_BAJA)) { $row[] = $Elim; } $TABLA->addRow($row); } // }}} //AGREGO LA INFO AL MARCO {{{ - $MARCO->addBody($TABLA3); - $MARCO->addBody($TABLA2->toHtml(1)); - $MARCO->addBody($TABLA); + $MARCO->addBodyContent($TABLA3); + $MARCO->addBodyContent($TABLA2->toHtml(1)); + $MARCO->addBodyContent($TABLA); //}}} } //}}} //NUEVO {{{ elseif ($OPCION == 'nuevo') { //VEO SI PUEDE ACCEDER{{{ - $SAMURAI_PERM->chequear(SAMURAI_ALTA_PERFIL); + $SAMURAI_PERM->chequear(SAMURAI_PERM_PERFIL_ALTA); //}}} //CREO LOS OBJETO NECESARIOS {{{ $FORM =& new MECON_HTML_QuickForm ('samurai_perfiles','post',$_SERVER['PHP_SELF']); @@ -236,15 +240,13 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) { $res = ''; $tmp = $perfiles->getSelected(); if ((!@$descripcion->getvalue() && $tmp['0'] == '--') || ($descripcion->getvalue() && $tmp['0'] != '--')) { - $res = new PEAR_Error("Debe seleccionar un perfil del combo o ingresar un nombre en la casilla correspondiente.
- Solo una de las dos opciones."); + $res = new PEAR_Error("Debe seleccionar un perfil del combo o ingresar un nombre en la casilla correspondiente.
Solo una de las dos opciones."); @$descripcion->setValue(''); } elseif ($tmp['0'] != '--') { //verificar que el sistema no tenga una asociacion con ese perfil if (SAMURAI_Perfil::existeAsociacion($DB, $tmp['0'], $id_sistema)) { - $res = new PEAR_Error("El sistema ya tiene asociado el perfil seleccionado, - modifique sus permisos desde la seccion perfiles."); + $res = new PEAR_Error("El sistema ya tiene asociado el perfil seleccionado, modifique sus permisos desde la seccion perfiles."); } else { header('Location: '.$_SERVER['PHP_SELF'].'?samurai_perfiles=abm&id_perfil='.$tmp['0']); @@ -264,9 +266,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) { $rta = rtrim($rta); // if (SAMURAI_Perfil::existePerfil($DB, $rta)) { - $res = new PEAR_Error("Ya existe un perfil con ese nombre, seleccionelo del combo.
- Recuerde que varios espacios se reduciran a uno solo - (Ej: Agregar     Usuario -> Agregar Usuario)"); + $res = new PEAR_Error("Ya existe un perfil con ese nombre, seleccionelo del combo.
Recuerde que varios espacios se reduciran a uno solo (Ej: Agregar     Usuario -> Agregar Usuario)"); } else { $temp = ereg_replace(' ' , '%20', $rta); //Cambio los espacios por %20 para que no chille el netscape @@ -288,18 +288,18 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) { $row = array ($imagen->toHtml().' SISTEMA: '.$SISTEMA->getNombre().''); $TABLA3->addRow($row,'align=left'); //}}} - $MARCO->addBody($TABLA3); + $MARCO->addBodyContent($TABLA3); if (isset($TABLA)) { - $MARCO->addBody($TABLA); + $MARCO->addBodyContent($TABLA); } - $MARCO->addBody($FORM); + $MARCO->addBodyContent($FORM); //}}} } //}}} //ABM {{{ elseif ($OPCION == 'abm') { //VEO SI PUEDE ACCEDER{{{ - $SAMURAI_PERM->chequear(SAMURAI_ALTA_PERFIL,SAMURAI_BAJA_PERFIL,SAMURAI_MODI_PERFIL); + $SAMURAI_PERM->chequear(SAMURAI_PERM_PERFIL_ALTA,SAMURAI_PERM_PERFIL_BAJA,SAMURAI_PERM_PERFIL_MODIF); //}}} //CREO LOS OBJETO NECESARIOS {{{ if (@$_GET['id_perfil']) { @@ -311,6 +311,22 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) { else { $id_perfil = null; } + //XXX OBTENGO LA ACCION {{{ + switch (@$_REQUEST['accion']) { + case 'm': + $b_accion = 'Modificar'; + $accion = 'm'; + break; + case 'e': + $b_accion = 'Eliminar'; + $accion = 'e'; + break; + default: + $b_accion = 'Grabar'; + $accion = ''; + break; + } + //}}} $FORM =& new MECON_HTML_QuickForm ('samurai_perfiles','post',$_SERVER['PHP_SELF']); $SISTEMA =& new SAMURAI_Sistema ($DB, $id_sistema); $PERFIL =& new SAMURAI_Perfil ($DB, $id_perfil, $id_sistema); @@ -347,13 +363,14 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) { $FORM->addElement ('header', 'cabecera', 'ABM Perfiles'); $FORM->addElement ('hidden', 'id_perfil', $id_perfil); $FORM->addElement ('hidden', 'desc_ant' , $descripcion); - $FORM->addElement ('static', 'desc_perfil', 'Descripcion', $descripcion); + $FORM->addElement ('static', 'desc_perfil', 'DescripciĆ³n', $descripcion); $FORM->addElement ('select', 'permisos' , 'Permisos' , $PERMISOS, array('size' => '5', 'multiple' => 'true')); - if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) { $FORM->addElement ('select', 'tipo_perfil', 'Tipo Perfil', array('E' => 'Externo', 'I' => 'Interno', 'D' => 'Dios'), array ('size' => '1')); } $FORM->addElement ('hidden', 'responsable', $responsable); - $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar'); + $FORM->addElement ('hidden', 'accion', $accion); + $group[] = HTML_QuickForm::createElement('submit', 'aceptar', $b_accion); $group[] = HTML_QuickForm::createElement('submit', 'cancelar', 'Cancelar', array ('onClick' => 'javascript:window.location=\''.$_SERVER['PHP_SELF'].'\';return false;')); $FORM->addGroup($group,'botones'); } @@ -371,7 +388,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) { $desc_perfil =& $FORM->getElement ('desc_perfil'); $permisos =& $FORM->getElement ('permisos' ); - if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) { $tipo_perfil =& $FORM->getElement ('tipo_perfil'); } $responsable =& $FORM->getElement ('responsable'); @@ -381,7 +398,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) { $permisos->setSelected($PERFIL->getPermisos()); - if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) { $tipo_perfil->setSelected($PERFIL->getTipo()); } @@ -415,7 +432,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) { $desc_perfil =& $FORM->getElement ('desc_perfil'); $permisos =& $FORM->getElement ('permisos' ); - if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) { $tipo_perfil =& $FORM->getElement ('tipo_perfil'); $tipo_perfil_tmp = $tipo_perfil->getSelected(); } @@ -428,7 +445,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) { $PERFIL->setResponsable($responsable->getValue()); $PERFIL->setPermisos ($permisos->getSelected()); //Le asigno al perfil los permisos seleccionados - if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) { $PERFIL->setTipo($tipo_perfil_tmp['0']); } @@ -455,11 +472,11 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) { $TABLA3 = new MECON_HTML_Tabla ('cellspacing=0'); $TABLA3->addRow($row,'align=left'); - $MARCO->addBody($TABLA3); + $MARCO->addBodyContent($TABLA3); if (isset($ERROR)) { - $MARCO->addBody($ERROR); + $MARCO->addBodyContent($ERROR); } - $MARCO->addBody($FORM); + $MARCO->addBodyContent($FORM); //}}} } //}}}