]> git.llucax.com Git - mecon/samurai.git/blobdiff - lib/SAMURAI/HTML/Usuario.php
Cambios. No se utiliza mas $_SESSION[samurai][login] en cambio se utiliza $_SESSION...
[mecon/samurai.git] / lib / SAMURAI / HTML / Usuario.php
index 26b988f4772b5a314e246f1e70d6d751a3cbed23..95d4ebadd8751f2e29a0b20b542c1096427db8ab 100644 (file)
 //
 // $Id$
 //
+//
+//
+/** \page page_samurai_html_usuario Usuario Embebido
+
+
+\section page_samurai_html_usuario_descripcion Descripcion
+
+    Funcion que sirve para embeber la funcionalidad de los usuario 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).
+
+\section page_samurai_html_usuario_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.
+
+    \subsection page_samurai_html_usuario_funcionamiento_validaciones Validaciones
+        Se realizan las siguientes validaciones:
+            - 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. Solo
+              se modifican sus datos.
+            - Cada vez que se carga un usuario es necesario asignarle al menos
+              un permiso, sino no va a permitir que se ingrese el mismo.
+
+\section page_samurai_html_usuario_ejemplo Ejemplo
+    La utilizacion de usuario embebido no genera condiciones, queda a criterio
+    del desarrollador incluir esta funcionalidad en el lugar que quiera.
+
+    De esta manera se agrega la funcionalidad:
+    \code
+    include 'SAMURAI/HTML/Usuario.php';
+
+    SAMURAI_HTML_Usuario($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.
+
+    Antes o despues de esto se pueden agregar componentes pertenecientes al
+    sistema.
+
+    \note Es necesario para ver el contenido de la pagina hacer 
+    $MARCO->display() al final de la misma.
+*/
 
 //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.
  *
  * @param MECON_Marco &$MARCO      Referencia al objeto MECON_Marco que se este
  *                                 utilizando en la pagina
  *
  * @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();
@@ -58,14 +113,21 @@ function SAMURAI_Usuario_Html(&$MARCO, $id_sistema) {
     //VERIFICO SI SE TIENE ACCESO A LA PAGINA{{{
     $SAMURAI_PERM->chequear(SAMURAI_ALTA_USUARIO, SAMURAI_BAJA_USUARIO, SAMURAI_MODI_USUARIO);
     //}}}
+    
+    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      = '<a href="'.$_SERVER['PHP_SELF'].'?accion=##ACCION##&login=##NUEVO##&samurai_usuarios=abm">';
+            $aHref      = '<a href="'.$_SERVER['PHP_SELF'].'?samurai_usuarios=abm&accion=##ACCION##&login=##NUEVO##">';
             $aHrefModif = $aHref.'<img src="/MECON/images/general_modificar.gif" border="0" alt="Modificar Usuario"></a>';
             $aHrefElim  = $aHref.'<img src="/MECON/images/general_eliminar.gif"  border="0" alt="Eliminar Usuario" ></a>';
         // }}}
@@ -117,12 +179,11 @@ function SAMURAI_Usuario_Html(&$MARCO, $id_sistema) {
             $MARCO->addBody($TABLA3);
             $MARCO->addBody($TABLA2->toHtml(1));
             $MARCO->addBody($TABLA);
-            
         // }}}
     }
     //}}}
     //ABM {{{
-    elseif (@$_GET['samurai_usuarios'] == 'abm' || @$_POST['samurai_accion'] == 'abm') {
+    elseif ($OPCION == 'abm') {
         //CREO LOS OBJETOS NECESARIOS {{{
             if (@$_GET['login']) {
                 $login = $_GET['login'];
@@ -203,7 +264,7 @@ 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 {
@@ -244,9 +305,9 @@ function SAMURAI_Usuario_Html(&$MARCO, $id_sistema) {
                             }
                         }
                         else {
-                            $FORM->removeElement();
+//                            $FORM->removeElement();
                             $FORM->freeze();
-                            header('Location: '.$_SERVER['PHP_SELF']);
+                            header('Location: '.$_SERVER['PHP_SELF'].'/');
                         }
                     }
                 }