]> git.llucax.com Git - mecon/samurai.git/blobdiff - lib/SAMURAI/HTML/Usuario.php
Modificaciones para el molesto de Hernan.
[mecon/samurai.git] / lib / SAMURAI / HTML / Usuario.php
index 95d4ebadd8751f2e29a0b20b542c1096427db8ab..8206fda995402d159a5fb4732d5b19e5ade452de 100644 (file)
 //
 //
 //
 //
 //
 //
-/** \page page_samurai_html_usuario Usuario Embebido
 
 
+/** \page page_samurai_html_usuario Usuario Embebido
 
 \section page_samurai_html_usuario_descripcion Descripcion
 
 \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).
+    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
 
 \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.
+    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
-        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.
+    \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
 
 \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:
+    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';
     \code
     include 'SAMURAI/HTML/Usuario.php';
-
     SAMURAI_HTML_Usuario($MARCO, $ID_SISTEMA);
     \endcode
     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.
+     
+    \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_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.
 
 
-    \note Es necesario para ver el contenido de la pagina hacer 
-    $MARCO->display() al final de la misma.
+    Permisos
+        - usuario alta
+        - usuario baja
+        - usuario modificacion
 */
 
 //REQUIRE ONCE {{{
 */
 
 //REQUIRE ONCE {{{
     require_once 'SAMURAI/constantes.php';
 //}}}
 
     require_once 'SAMURAI/constantes.php';
 //}}}
 
-/** Funcion que se encarga agregar los componentes necesarios al sistema para
+/** 
+ * Funcion que se encarga agregar los componentes necesarios al sistema para
  * que se pueda realizar un abm de usuarios.
  * 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
  *
  * @param MECON_Marco &$MARCO      Referencia al objeto MECON_Marco que se este
  *                                 utilizando en la pagina
@@ -111,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 = 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') {
     //}}}
     
     if (@$_POST['samurai_accion'] == 'abm' || @$_GET['samurai_usuarios'] == 'abm') {
@@ -146,16 +147,16 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) {
             $TABLA3->addRow($row,'align=left');    
 
             //Agrego el link a nuevo
             $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.'<img src="/MECON/images/general_nuevo.gif" border="0">Agregar Nuevo Usuario</a>');
                 $TABLA2->addRow($row,'align=right');    
             }
             //Genero la cabecera de la tabla
             $row  = array ('Login','Nombre');
                 $row   = array ($aHref.'<img src="/MECON/images/general_nuevo.gif" border="0">Agregar Nuevo Usuario</a>');
                 $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.';
             }
                 $row[] = 'Modif.';
             }
-            if ($SAMURAI_PERM->tiene(SAMURAI_BAJA_USUARIO)) {
+            if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_BAJA)) {
                 $row[] = 'Elim.';
             }
             $TABLA->addRow($row,'cabecera');
                 $row[] = 'Elim.';
             }
             $TABLA->addRow($row,'cabecera');
@@ -165,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());
                 $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;
                 }
                     $row[] = $Modif;
                 }
-                if ($SAMURAI_PERM->tiene(SAMURAI_BAJA_USUARIO)) {
+                if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_BAJA)) {
                     $row[] = $Elim;
                 }
 
                     $row[] = $Elim;
                 }
 
@@ -176,9 +177,9 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) {
             }
         // }}}
         //DIBUJO LA PAGINA {{{
             }
         // }}}
         //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);
         // }}}
     }
     //}}}
         // }}}
     }
     //}}}
@@ -193,10 +194,26 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) {
                 $validar = 1;
                 $login = null;
             }
                 $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);
             $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);
         // }}}
         //OBTENGO LOS DATOS DE LA BASE {{{
             $tmps = SAMURAI_Perfil::getPerfiles($DB, null, $id_sistema);
@@ -223,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']);
                 }
                 $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');
             }
                 $group[] = HTML_QuickForm::createElement('submit', 'cancelar', 'Cancelar', array ('onClick' => 'javascript:window.location = \''.$_SERVER['PHP_SELF'].'\';return false;'));
                 $FORM->addGroup($group,'botones');
             }
@@ -269,7 +287,6 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) {
                 // }}}
                 else {
                     $login2   =& $FORM->getElement  ('login'   ); 
                 // }}}
                 else {
                     $login2   =& $FORM->getElement  ('login'   ); 
-                    $nombre   =& $FORM->getElement  ('nombre'  );
                     $perfiles =& $FORM->getElement  ('perfiles');
                     $group    =& $FORM->getElement  ('botones' );
                     $group    =& $group->getElements('aceptar' );
                     $perfiles =& $FORM->getElement  ('perfiles');
                     $group    =& $FORM->getElement  ('botones' );
                     $group    =& $group->getElements('aceptar' );
@@ -278,6 +295,7 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) {
 
                     if ($login) {
                         $login3 = $login2->_text;
 
                     if ($login) {
                         $login3 = $login2->_text;
+                        $nombre   =& $FORM->getElement  ('nombre'  );
                     }
                     else {
                         $login3 = $login2->getValue();
                     }
                     else {
                         $login3 = $login2->getValue();
@@ -314,11 +332,11 @@ function SAMURAI_HTML_Usuario(&$MARCO, $id_sistema) {
             }
         // }}}
         //DIBUJO LA PAGINA {{{
             }
         // }}}
         //DIBUJO LA PAGINA {{{
-            $MARCO->addBody($TABLA);
+            $MARCO->addBodyContent($TABLA);
             if (isset($ERROR)) {
             if (isset($ERROR)) {
-                $MARCO->addBody($ERROR);
+                $MARCO->addBodyContent($ERROR);
             }
             }
-            $MARCO->addBody($FORM);
+            $MARCO->addBodyContent($FORM);
         // }}}
     }
     //}}}
         // }}}
     }
     //}}}