X-Git-Url: https://git.llucax.com/mecon/samurai.git/blobdiff_plain/e96f92763e52997990f65c34e1a44c4deeb56e17..6cb1ba00555851a6661c7a5ad6395526160afb1f:/lib/SAMURAI/HTML/Usuario.php diff --git a/lib/SAMURAI/HTML/Usuario.php b/lib/SAMURAI/HTML/Usuario.php index 51eaf69..8206fda 100644 --- a/lib/SAMURAI/HTML/Usuario.php +++ b/lib/SAMURAI/HTML/Usuario.php @@ -19,6 +19,60 @@ // // $Id$ // +// +// + +/** \page page_samurai_html_usuario Usuario Embebido + +\section page_samurai_html_usuario_descripcion Descripcion + Samurai provee de una funcion que permite embeber la funcionalidad de + usuarios 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 usuarios que se haya realizado un + session_start(). + +\section page_samurai_html_usuario_funcionamiento Funcionamiento + Es una copia de la seccion Usuarios 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_usuario_funcionamiento_validaciones Validaciones y Condiciones + - Cualquier usuario que se quiera agregar debe haberse logueado al + menos una vez a la intranet. + - No puede cargarse dos veces el mismo usuario en un sistema. + - Cada vez que se carga un usuario es necesario asignarle al menos + un perfil, sino no va a permitir que se ingrese el mismo. + +\section page_samurai_html_usuario_ejemplo Ejemplo + SAMURAI_HTML_Usuario agrega el contenido directamente en el marco que se + este utilizando. + Para embeber los usuarios hay que hacerlo de la siguiente manera + + \code + include 'SAMURAI/HTML/Usuario.php'; + SAMURAI_HTML_Usuario($MARCO, $ID_SISTEMA); + \endcode + + \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. + +\section page_samurai_html_usuario_permisos Pasos Finales + Para que los usuarios puedan acceder a los usuarios embebidos es necesario + que en el sistema en el cual se este embebiendo se agregen los permisos que + utiliza la seccion Usuarios (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. + + Permisos + - usuario alta + - usuario baja + - usuario modificacion +*/ //REQUIRE ONCE {{{ require_once 'MECON/HTML/QuickForm.php'; @@ -32,13 +86,10 @@ require_once 'SAMURAI/constantes.php'; //}}} -// Funciones para agregar la seccion SAMURAI_Usuario en los sistemas. -// Con esto se pueden embeber el abm de usuarios como una seccion/subseccion mas -// de un sistema cualquiera. - -/** - * Funcion que se encarga agregar los componentes necesarios al sistema para que - * se pueda realizar un abm de usuarios. +/** + * Funcion que se encarga agregar los componentes necesarios al sistema para + * que se pueda realizar un abm de usuarios. +@see \ref page_samurai_html_usuario * * @param MECON_Marco &$MARCO Referencia al objeto MECON_Marco que se este * utilizando en la pagina @@ -61,7 +112,7 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) { $SAMURAI_PERM = new SAMURAI_Perm ($_SESSION['usuario'], $id_sistema, $DB); //}}} //VERIFICO SI SE TIENE ACCESO A LA PAGINA{{{ - $SAMURAI_PERM->chequear(SAMURAI_ALTA_USUARIO, SAMURAI_BAJA_USUARIO, SAMURAI_MODI_USUARIO); + $SAMURAI_PERM->chequear(SAMURAI_PERM_USUARIO_ALTA, SAMURAI_PERM_USUARIO_BAJA, SAMURAI_PERM_USUARIO_MODIF); //}}} if (@$_POST['samurai_accion'] == 'abm' || @$_GET['samurai_usuarios'] == 'abm') { @@ -96,16 +147,16 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) { $TABLA3->addRow($row,'align=left'); //Agrego el link a nuevo - if ($SAMURAI_PERM->tiene(SAMURAI_ALTA_USUARIO)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_ALTA)) { $row = array ($aHref.'Agregar Nuevo Usuario'); $TABLA2->addRow($row,'align=right'); } //Genero la cabecera de la tabla $row = array ('Login','Nombre'); - if ($SAMURAI_PERM->tiene(SAMURAI_MODI_USUARIO)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_MODIF)) { $row[] = 'Modif.'; } - if ($SAMURAI_PERM->tiene(SAMURAI_BAJA_USUARIO)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_BAJA)) { $row[] = 'Elim.'; } $TABLA->addRow($row,'cabecera'); @@ -115,10 +166,10 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) { $Modif = ereg_replace('##ACCION##', 'm' , $Modif ); $Elim = ereg_replace('##ACCION##', 'e' , $Elim ); $row = array ($usuario->getLogin(), $usuario->getNombre()); - if ($SAMURAI_PERM->tiene(SAMURAI_MODI_USUARIO)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_MODIF)) { $row[] = $Modif; } - if ($SAMURAI_PERM->tiene(SAMURAI_BAJA_USUARIO)) { + if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_BAJA)) { $row[] = $Elim; } @@ -126,9 +177,9 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) { } // }}} //DIBUJO LA PAGINA {{{ - $MARCO->addBody($TABLA3); - $MARCO->addBody($TABLA2->toHtml(1)); - $MARCO->addBody($TABLA); + $MARCO->addBodyContent($TABLA3); + $MARCO->addBodyContent($TABLA2->toHtml(1)); + $MARCO->addBodyContent($TABLA); // }}} } //}}} @@ -143,10 +194,26 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) { $validar = 1; $login = 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; + } + //}}} $TABLA = new MECON_HTML_Tabla ('cellspacing=0'); $FORM = new MECON_HTML_QuickForm ('samurai_usuarios','post', $_SERVER['PHP_SELF']); $SISTEMA = new SAMURAI_Sistema($DB, $id_sistema); - $USUARIO = new SAMURAI_Usuario($DB, $login); + $USUARIO = new SAMURAI_Usuario($DB, $login, $id_sistema); // }}} //OBTENGO LOS DATOS DE LA BASE {{{ $tmps = SAMURAI_Perfil::getPerfiles($DB, null, $id_sistema); @@ -173,7 +240,8 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) { } $FORM->addElement ('select', 'perfiles' , 'Perfiles', $PERFILES, array('size' => '5', 'multiple' => 'true')); $FORM->addElement ('hidden', 'responsable', $_SESSION['samurai']['login']); - $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'); } @@ -219,7 +287,6 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) { // }}} else { $login2 =& $FORM->getElement ('login' ); - $nombre =& $FORM->getElement ('nombre' ); $perfiles =& $FORM->getElement ('perfiles'); $group =& $FORM->getElement ('botones' ); $group =& $group->getElements('aceptar' ); @@ -228,6 +295,7 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) { if ($login) { $login3 = $login2->_text; + $nombre =& $FORM->getElement ('nombre' ); } else { $login3 = $login2->getValue(); @@ -264,11 +332,11 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) { } // }}} //DIBUJO LA PAGINA {{{ - $MARCO->addBody($TABLA); + $MARCO->addBodyContent($TABLA); if (isset($ERROR)) { - $MARCO->addBody($ERROR); + $MARCO->addBodyContent($ERROR); } - $MARCO->addBody($FORM); + $MARCO->addBodyContent($FORM); // }}} } //}}}