X-Git-Url: https://git.llucax.com/mecon/samurai.git/blobdiff_plain/6c96af7186fde066713c880405778e445eff079b..0cf56477ad378a18f1d9daad478a4e14427b6b3b:/lib/SAMURAI/HTML/Usuario.php
diff --git a/lib/SAMURAI/HTML/Usuario.php b/lib/SAMURAI/HTML/Usuario.php
index 26b988f..2eb933f 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.'';
$aHrefElim = $aHref.'';
// }}}
@@ -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'];
@@ -135,7 +197,7 @@ function SAMURAI_Usuario_Html(&$MARCO, $id_sistema) {
$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);
@@ -203,12 +265,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 +278,7 @@ function SAMURAI_Usuario_Html(&$MARCO, $id_sistema) {
if ($login) {
$login3 = $login2->_text;
+ $nombre =& $FORM->getElement ('nombre' );
}
else {
$login3 = $login2->getValue();
@@ -244,20 +306,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);
// }}}
}
//}}}