X-Git-Url: https://git.llucax.com/mecon/samurai.git/blobdiff_plain/6c96af7186fde066713c880405778e445eff079b..6cb1ba00555851a6661c7a5ad6395526160afb1f:/lib/SAMURAI/HTML/Usuario.php diff --git a/lib/SAMURAI/HTML/Usuario.php b/lib/SAMURAI/HTML/Usuario.php index 26b988f..8206fda 100644 --- a/lib/SAMURAI/HTML/Usuario.php +++ b/lib/SAMURAI/HTML/Usuario.php @@ -19,25 +19,77 @@ // // $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'; require_once 'MECON/HTML/Error.php'; require_once 'MECON/HTML/Tabla.php'; require_once 'MECON/HTML/Image.php'; + require_once 'SAMURAI/Perm.php'; require_once 'SAMURAI/Perfil.php'; require_once 'SAMURAI/Usuario.php'; require_once 'SAMURAI/Sistema.php'; 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 @@ -46,8 +98,12 @@ * * @return void */ -//SAMURAI_Usuario_Html {{{ -function SAMURAI_Usuario_Html(&$MARCO, $id_sistema) { +//SAMURAI_HTML_Usuario {{{ +function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) { + + $_SESSION['samurai']['id_sistema'] = $id_sistema; + $_SESSION['samurai']['login'] = $_SESSION['usuario']; + //INICIALIZO OBJETOS GENERALES {{{ //REALIZO CONEXION $tmp = new SAMURAI_DB(); @@ -56,16 +112,23 @@ function SAMURAI_Usuario_Html(&$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') { + $OPCION = 'abm'; + } + else { + $OPCION = 'listado'; + } //POSIBLES ACCIONES // listado -> Listado de los usuarios ya creados en el sistema. // abm -> Formulario para la carga de la info del usuario. //LISTADO {{{ - if ((!@$_GET['samurai_usuarios'] && !@$_POST['samurai_accion'])|| @$_GET['samurai_usuarios'] == 'listado') { + if ($OPCION == 'listado') { //LINKS {{{ - $aHref = ''; + $aHref = ''; $aHrefModif = $aHref.'Modificar Usuario'; $aHrefElim = $aHref.'Eliminar Usuario'; // }}} @@ -84,16 +147,16 @@ function SAMURAI_Usuario_Html(&$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'); @@ -103,10 +166,10 @@ function SAMURAI_Usuario_Html(&$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; } @@ -114,15 +177,14 @@ function SAMURAI_Usuario_Html(&$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); // }}} } //}}} //ABM {{{ - elseif (@$_GET['samurai_usuarios'] == 'abm' || @$_POST['samurai_accion'] == 'abm') { + elseif ($OPCION == 'abm') { //CREO LOS OBJETOS NECESARIOS {{{ if (@$_GET['login']) { $login = $_GET['login']; @@ -132,10 +194,26 @@ function SAMURAI_Usuario_Html(&$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); @@ -162,7 +240,8 @@ function SAMURAI_Usuario_Html(&$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'); } @@ -203,12 +282,11 @@ function SAMURAI_Usuario_Html(&$MARCO, $id_sistema) { // VEO SI SE CANCELO {{{ $botones = $FORM->getSubmitValue('botones'); if (@$botones['cancelar']) { - header('Location: '.$_SERVER['PHP_SELF']); + header('Location: '.$_SERVER['PHP_SELF'].'/'); } // }}} else { $login2 =& $FORM->getElement ('login' ); - $nombre =& $FORM->getElement ('nombre' ); $perfiles =& $FORM->getElement ('perfiles'); $group =& $FORM->getElement ('botones' ); $group =& $group->getElements('aceptar' ); @@ -217,6 +295,7 @@ function SAMURAI_Usuario_Html(&$MARCO, $id_sistema) { if ($login) { $login3 = $login2->_text; + $nombre =& $FORM->getElement ('nombre' ); } else { $login3 = $login2->getValue(); @@ -244,20 +323,20 @@ function SAMURAI_Usuario_Html(&$MARCO, $id_sistema) { } } else { - $FORM->removeElement(); +// $FORM->removeElement(); $FORM->freeze(); - header('Location: '.$_SERVER['PHP_SELF']); + header('Location: '.$_SERVER['PHP_SELF'].'/'); } } } } // }}} //DIBUJO LA PAGINA {{{ - $MARCO->addBody($TABLA); + $MARCO->addBodyContent($TABLA); if (isset($ERROR)) { - $MARCO->addBody($ERROR); + $MARCO->addBodyContent($ERROR); } - $MARCO->addBody($FORM); + $MARCO->addBodyContent($FORM); // }}} } //}}}