]> git.llucax.com Git - mecon/samurai.git/blobdiff - lib/SAMURAI/HTML/Perfil.php
Agregue la documentacion de Perfil Embebido y Usuario Embebido, y las referencias...
[mecon/samurai.git] / lib / SAMURAI / HTML / Perfil.php
index 931d707b19bc13999fe1efa78aacefbfbaf8fb2a..10dd15f60cfc026487e28bbe689a329a119b097d 100644 (file)
 // $Id$
 //
 
-//require_once 'MECON/general.php';
-//prepend_include_path('/home/mmarrese/public_html/meconlib/lib/');
+/** \page page_samurai_html_perfil Perfil Embebido
 
-//REQUIRE ONCE GENERALES {{{
+\section page_samurai_html_perfil_descripcion Descripcion
+    Samurai provee de una funcion que permite embeber la funcionalidad de 
+    perfiles 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 perfiles que se haya realizado un
+    session_start().
+
+\section page_samurai_html_perfil_funcionamiento Funcionamiento
+    Es una copia de la seccion Perfiles 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_perfil_funcionamiento_validaciones Validaciones y Condiciones
+        - Los espacios entre las palabras que componen el nombre de un
+          perfil son eliminados. Ej: Agregar    Usuario
+          se cambia por Agregar Usuario.
+        - Es obligatorio que los perfiles contengan al menos un permiso.
+        - No puede haber dos perfiles con los mismos permisos.
+        - No se pueden borrar perfiles que esten asociados a usuarios.
+        - No se pueden ingresar pefiles nuevos que ya esten cargados.
+
+\section page_samurai_html_perfil_ejemplo Ejemplo
+    SAMURAI_HTML_Perfil agrega el contenido directamente en el marco que se este
+    utilizando.
+    Para embeber los perfiles hay que hacerlo de la siguiente manera
+
+    \code
+    include 'SAMURAI/HTML/Perfil.php';
+    SAMURAI_HTML_Perfil($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_perfil_permisos Pasos Finales
+    Para que los usuarios puedan acceder a los perfiles embebidos es necesario
+    que en el sistema en el cual se este embebiendo se agregen los permisos que
+    utiliza la seccion Perfiles (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
+        - perfil alta
+        - perfil baja
+        - perfil modificacion
+        - perfil tipo
+*/
+
+//REQUIRE ONCE {{{
 require_once 'SAMURAI/DB.php';
 require_once 'SAMURAI/Perm.php';
 require_once 'SAMURAI/constantes.php';
@@ -37,24 +89,18 @@ require_once 'MECON/HTML/Image.php';
 require_once 'PEAR.php';
 // }}}
 
-// Funciones para agregar la seccion SAMURAI_Perfil en los sistemas.
-// Con esto se pueden embeber el abm de perfiles como una seccion/subseccion mas
-// de un sistema cualquiera.
-// Es necesario para que funcione que se haya realizado un session_start()
-// antes, por ejemplo en el prepend.
-
-    /**
-     * Funcion que se encarga agregar los componentes necesarios al sistema para que
-     * se pueda realizar un abm de perfiles.
-     * Sin los parametros no funciona
-     *
-     * @param MECON_Marco &$MARCO      Referencia al objeto MECON_Marco que se este utilizando en la pagina
-     * @param int          $id_sistema Identificador del sistema en el cual se esta trabajando
-     *
-     * @return void
-     */
-//SAMURAI_Perfil_Html {{{
-function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
+/** 
+ * Funcion que se encarga agregar los componentes necesarios al sistema para
+ * que se pueda realizar un abm de perfiles.
+@see \ref page_samurai_html_perfil
+ *
+ * @param MECON_Marco &$MARCO      Referencia al objeto MECON_Marco que se este utilizando en la pagina
+ * @param int          $id_sistema Identificador del sistema en el cual se esta trabajando
+ *
+ * @return void
+ */
+//SAMURAI_HTML_Perfil {{{
+function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
 
     //INICIALIZO OBJETOS GENERALES {{{
     //REALIZO CONEXION
@@ -64,13 +110,23 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
     $SAMURAI_PERM = new SAMURAI_Perm ($_SESSION['usuario'], $id_sistema, $DB);
     //}}}
 
+    if (@$_POST['samurai_accion'] == 'abm' || @$_GET['samurai_perfiles'] == 'abm') {
+        $OPCION = 'abm';
+    }
+    elseif (@$_POST['samurai_accion'] == 'nuevo' || @$_GET['samurai_perfiles'] == 'nuevo') {
+        $OPCION = 'nuevo';
+    }
+    else {
+        $OPCION = 'listado';
+    }
+    
     //POSIBLES ACCIONES
     // listado -> Listado de los perfiles ya creados en el sistema.
     // nuevo   -> Pantalla de seleccion o de ingreso de un nuevo nombre.
     // abm     -> Formulario para la carga de la info del perfil.
 
     //LISTADO {{{
-    if ((!@$_GET['samurai_perfiles'] && !@$_POST['samurai_accion'])|| @$_GET['samurai_perfiles'] == 'listado') {
+    if ($OPCION == 'listado') {
         //VEO SI PUEDE ACCEDER{{{
         $SAMURAI_PERM->chequear(SAMURAI_ALTA_PERFIL,SAMURAI_BAJA_PERFIL,SAMURAI_MODI_PERFIL);
         //}}}
@@ -132,14 +188,14 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
             }
         // }}}
         //AGREGO LA INFO AL MARCO {{{
-            $MARCO->addBody($TABLA3);
-            $MARCO->addBody($TABLA2->toHtml(1));
-            $MARCO->addBody($TABLA);
+            $MARCO->addBodyContent($TABLA3);
+            $MARCO->addBodyContent($TABLA2->toHtml(1));
+            $MARCO->addBodyContent($TABLA);
         //}}}
     }
     //}}}
     //NUEVO {{{
-    elseif (@$_GET['samurai_perfiles'] == 'nuevo' || @$_POST['samurai_accion'] == 'nuevo') {
+    elseif ($OPCION == 'nuevo') {
         //VEO SI PUEDE ACCEDER{{{
         $SAMURAI_PERM->chequear(SAMURAI_ALTA_PERFIL);
         //}}}
@@ -150,7 +206,7 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
         //AGREGO LOS ELEMENTOS DEL FORM {{{
             $FORM->addElement ('hidden', 'samurai_accion', 'nuevo');
             $FORM->addElement ('header', 'cabecera'   , 'Nuevo Perfil');
-            $FORM->addElement ('select', 'perfiles'   , 'Perfiles', '', array('size' => '1'));
+            $FORM->addElement ('select', 'perfiles'   , 'Perfiles', null, array('size' => '1'));
             $FORM->addElement ('text'  , 'filtro'     , 'Filtrar' , array('size' => '50'));
             $FORM->addElement ('text'  , 'descripcion', 'Nombre'  , array('size' => '50'));
             $group[] = HTML_QuickForm::createElement('submit', 'continuar', 'Continuar');
@@ -166,7 +222,7 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
             $perfiles    =& $FORM->getElement('perfiles');
             $descripcion =& $FORM->getElement('descripcion');
             if (@$botones['cancelar']) {
-                header('Location: '.$_SERVER['PHP_SELF']);
+                header('Location: '.$_SERVER['PHP_SELF'].'/');
             }
             if (!isset($botones['filtrar'])) {
                 $PERFILES = SAMURAI_Perfil::getArrayPerfiles($DB);
@@ -236,16 +292,16 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
             $row    = array ($imagen->toHtml().'&nbsp;<b>SISTEMA: '.$SISTEMA->getNombre().'</b>');
             $TABLA3->addRow($row,'align=left');    
         //}}} 
-            $MARCO->addBody($TABLA3);
+            $MARCO->addBodyContent($TABLA3);
             if (isset($TABLA)) {
-                $MARCO->addBody($TABLA);
+                $MARCO->addBodyContent($TABLA);
             }
-            $MARCO->addBody($FORM);
+            $MARCO->addBodyContent($FORM);
         //}}}
     }
     //}}}
     //ABM {{{
-    elseif (@$_GET['samurai_perfiles'] == 'abm' || @$_POST['samurai_accion'] == 'abm') {
+    elseif ($OPCION == 'abm') {
         //VEO SI PUEDE ACCEDER{{{
         $SAMURAI_PERM->chequear(SAMURAI_ALTA_PERFIL,SAMURAI_BAJA_PERFIL,SAMURAI_MODI_PERFIL);
         //}}}
@@ -261,7 +317,7 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
             }
             $FORM    =& new MECON_HTML_QuickForm ('samurai_perfiles','post',$_SERVER['PHP_SELF']);
             $SISTEMA =& new SAMURAI_Sistema ($DB, $id_sistema);
-            $PERFIL  =& new SAMURAI_Perfil ($DB, $id_perfil);
+            $PERFIL  =& new SAMURAI_Perfil ($DB, $id_perfil, $id_sistema);
 
             if ($PERFIL->getResponsable()) {
                 $responsable = $PERFIL->getResponsable();
@@ -357,6 +413,8 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
                 }
                 // }}}
                 else {
+                    $samurai_accion =& $FORM->getElement('samurai_accion');
+                    $samurai_accion->setValue('listado');
                     $id_perfil    =& $FORM->getElement  ('id_perfil'  );
                     $desc_perfil  =& $FORM->getElement  ('desc_perfil');
                     $permisos     =& $FORM->getElement  ('permisos'   );
@@ -375,7 +433,7 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
                     $PERFIL->setPermisos   ($permisos->getSelected()); //Le asigno al perfil los permisos seleccionados
                     
                     if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) {
-                        $PERFIL->setTipo       ($tipo_perfil_tmp['0']   );
+                        $PERFIL->setTipo($tipo_perfil_tmp['0']);
                     }
                     
                     //Grabo y verifico si se produjo algun error
@@ -389,7 +447,8 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
                     }
                     else {
                         $FORM->freeze();
-                        header('Location: '.$_SERVER['PHP_SELF']);
+                        header('Location: '.$_SERVER ['PHP_SELF'].'/');
+                        exit;
                     }
                 }
             }
@@ -400,14 +459,14 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
             $TABLA3 = new MECON_HTML_Tabla ('cellspacing=0');
             $TABLA3->addRow($row,'align=left');    
 
-            $MARCO->addTitle('ABM Perfil');
-            $MARCO->addBody($TABLA3);
+            $MARCO->addBodyContent($TABLA3);
             if (isset($ERROR)) {
-                $MARCO->addBody($ERROR);
+                $MARCO->addBodyContent($ERROR);
             }
-            $MARCO->addBody($FORM);
+            $MARCO->addBodyContent($FORM);
     //}}}
     }
     //}}}
 }
+//}}}
 ?>