]> git.llucax.com Git - mecon/samurai.git/blobdiff - lib/SAMURAI/HTML/Perfil.php
Ahora sel-sistema solo muestra los sistemas a los cuales el usuario tiene acceso...
[mecon/samurai.git] / lib / SAMURAI / HTML / Perfil.php
index a1e1e5a878bc174ace3611c048c675e0171313ef..5ded92b95fa419841a713ecf5352f1c772f57cf7 100644 (file)
 // $Id$
 //
 
 // $Id$
 //
 
+/** \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';
 require_once 'SAMURAI/DB.php';
 require_once 'SAMURAI/Perm.php';
 require_once 'SAMURAI/constantes.php';
@@ -35,28 +89,19 @@ require_once 'MECON/HTML/Image.php';
 require_once 'PEAR.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__HTML_Perfil {{{
+/** 
+ * 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) {
 
 function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
 
-    $_SESSION['samurai']['id_sistema'] = $id_sistema;
-    $_SESSION['samurai']['login'] = $_SESSION['usuario'];
-    
     //INICIALIZO OBJETOS GENERALES {{{
     //REALIZO CONEXION
     $tmp = new SAMURAI_DB();
     //INICIALIZO OBJETOS GENERALES {{{
     //REALIZO CONEXION
     $tmp = new SAMURAI_DB();
@@ -65,7 +110,6 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
     $SAMURAI_PERM = new SAMURAI_Perm ($_SESSION['usuario'], $id_sistema, $DB);
     //}}}
 
     $SAMURAI_PERM = new SAMURAI_Perm ($_SESSION['usuario'], $id_sistema, $DB);
     //}}}
 
-    
     if (@$_POST['samurai_accion'] == 'abm' || @$_GET['samurai_perfiles'] == 'abm') {
         $OPCION = 'abm';
     }
     if (@$_POST['samurai_accion'] == 'abm' || @$_GET['samurai_perfiles'] == 'abm') {
         $OPCION = 'abm';
     }
@@ -84,7 +128,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
     //LISTADO {{{
     if ($OPCION == 'listado') {
         //VEO SI PUEDE ACCEDER{{{
     //LISTADO {{{
     if ($OPCION == 'listado') {
         //VEO SI PUEDE ACCEDER{{{
-        $SAMURAI_PERM->chequear(SAMURAI_ALTA_PERFIL,SAMURAI_BAJA_PERFIL,SAMURAI_MODI_PERFIL);
+        $SAMURAI_PERM->chequear(SAMURAI_PERM_PERFIL_ALTA,SAMURAI_PERM_PERFIL_BAJA,SAMURAI_PERM_PERFIL_MODIF);
         //}}}
         //LINKS {{{
             $aHref      = '<a href="'.$_SERVER['PHP_SELF'].'?accion=##ACCION##&id_perfil=##NUEVO##&samurai_perfiles=abm">';
         //}}}
         //LINKS {{{
             $aHref      = '<a href="'.$_SERVER['PHP_SELF'].'?accion=##ACCION##&id_perfil=##NUEVO##&samurai_perfiles=abm">';
@@ -106,20 +150,20 @@ function SAMURAI_HTML_Perfil(&$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_PERFIL)) {
+            if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_ALTA)) {
                 $row   = array ('<a href="'.$_SERVER['PHP_SELF'].'?samurai_perfiles=nuevo"><img src="/MECON/images/general_nuevo.gif" border="0">Ingresar&nbsp;Nuevo&nbsp;Perfil</a>');
                 $TABLA2->addRow($row,'align=right');    
             }
 
             //Genero la cabecera de la tabla
             $row   = array ('Id','Descripcion');
                 $row   = array ('<a href="'.$_SERVER['PHP_SELF'].'?samurai_perfiles=nuevo"><img src="/MECON/images/general_nuevo.gif" border="0">Ingresar&nbsp;Nuevo&nbsp;Perfil</a>');
                 $TABLA2->addRow($row,'align=right');    
             }
 
             //Genero la cabecera de la tabla
             $row   = array ('Id','Descripcion');
-            if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) {
+            if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) {
                 $row[] = 'Tipo';
             }    
                 $row[] = 'Tipo';
             }    
-            if ($SAMURAI_PERM->tiene(SAMURAI_MODI_PERFIL)) {
+            if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_MODIF)) {
                 $row[] = 'Modif.';
             }    
                 $row[] = 'Modif.';
             }    
-            if ($SAMURAI_PERM->tiene(SAMURAI_BAJA_PERFIL)) {
+            if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_BAJA)) {
                 $row[] = 'Elim.';
             }    
             
                 $row[] = 'Elim.';
             }    
             
@@ -131,29 +175,29 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
                 $Elim  = ereg_replace('##ACCION##', 'e'             , $Elim      );
                 $row = array ($perfil->getId(), $perfil->getDescripcion());
                 
                 $Elim  = ereg_replace('##ACCION##', 'e'             , $Elim      );
                 $row = array ($perfil->getId(), $perfil->getDescripcion());
                 
-                if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) {
+                if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) {
                     $row[] = $perfil->getTipo();
                 }    
                     $row[] = $perfil->getTipo();
                 }    
-                if ($SAMURAI_PERM->tiene(SAMURAI_MODI_PERFIL)) {
+                if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_MODIF)) {
                     $row[] = $Modif;
                 }    
                     $row[] = $Modif;
                 }    
-                if ($SAMURAI_PERM->tiene(SAMURAI_BAJA_PERFIL)) {
+                if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_BAJA)) {
                     $row[] = $Elim;
                 }    
                 $TABLA->addRow($row);
             }
         // }}}
         //AGREGO LA INFO AL MARCO {{{
                     $row[] = $Elim;
                 }    
                 $TABLA->addRow($row);
             }
         // }}}
         //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 ($OPCION == 'nuevo') {
         //VEO SI PUEDE ACCEDER{{{
         //}}}
     }
     //}}}
     //NUEVO {{{
     elseif ($OPCION == 'nuevo') {
         //VEO SI PUEDE ACCEDER{{{
-        $SAMURAI_PERM->chequear(SAMURAI_ALTA_PERFIL);
+        $SAMURAI_PERM->chequear(SAMURAI_PERM_PERFIL_ALTA);
         //}}}
         //CREO LOS OBJETO NECESARIOS {{{
             $FORM    =& new MECON_HTML_QuickForm ('samurai_perfiles','post',$_SERVER['PHP_SELF']);
         //}}}
         //CREO LOS OBJETO NECESARIOS {{{
             $FORM    =& new MECON_HTML_QuickForm ('samurai_perfiles','post',$_SERVER['PHP_SELF']);
@@ -162,7 +206,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
         //AGREGO LOS ELEMENTOS DEL FORM {{{
             $FORM->addElement ('hidden', 'samurai_accion', 'nuevo');
             $FORM->addElement ('header', 'cabecera'   , 'Nuevo Perfil');
         //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');
             $FORM->addElement ('text'  , 'filtro'     , 'Filtrar' , array('size' => '50'));
             $FORM->addElement ('text'  , 'descripcion', 'Nombre'  , array('size' => '50'));
             $group[] = HTML_QuickForm::createElement('submit', 'continuar', 'Continuar');
@@ -248,18 +292,18 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
             $row    = array ($imagen->toHtml().'&nbsp;<b>SISTEMA: '.$SISTEMA->getNombre().'</b>');
             $TABLA3->addRow($row,'align=left');    
         //}}} 
             $row    = array ($imagen->toHtml().'&nbsp;<b>SISTEMA: '.$SISTEMA->getNombre().'</b>');
             $TABLA3->addRow($row,'align=left');    
         //}}} 
-            $MARCO->addBody($TABLA3);
+            $MARCO->addBodyContent($TABLA3);
             if (isset($TABLA)) {
             if (isset($TABLA)) {
-                $MARCO->addBody($TABLA);
+                $MARCO->addBodyContent($TABLA);
             }
             }
-            $MARCO->addBody($FORM);
+            $MARCO->addBodyContent($FORM);
         //}}}
     }
     //}}}
     //ABM {{{
     elseif ($OPCION == 'abm') {
         //VEO SI PUEDE ACCEDER{{{
         //}}}
     }
     //}}}
     //ABM {{{
     elseif ($OPCION == 'abm') {
         //VEO SI PUEDE ACCEDER{{{
-        $SAMURAI_PERM->chequear(SAMURAI_ALTA_PERFIL,SAMURAI_BAJA_PERFIL,SAMURAI_MODI_PERFIL);
+        $SAMURAI_PERM->chequear(SAMURAI_PERM_PERFIL_ALTA,SAMURAI_PERM_PERFIL_BAJA,SAMURAI_PERM_PERFIL_MODIF);
         //}}}
         //CREO LOS OBJETO NECESARIOS {{{
             if (@$_GET['id_perfil']) {
         //}}}
         //CREO LOS OBJETO NECESARIOS {{{
             if (@$_GET['id_perfil']) {
@@ -273,7 +317,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
             }
             $FORM    =& new MECON_HTML_QuickForm ('samurai_perfiles','post',$_SERVER['PHP_SELF']);
             $SISTEMA =& new SAMURAI_Sistema ($DB, $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();
 
             if ($PERFIL->getResponsable()) {
                 $responsable = $PERFIL->getResponsable();
@@ -309,7 +353,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
                 $FORM->addElement ('hidden', 'desc_ant'   , $descripcion);
                 $FORM->addElement ('static', 'desc_perfil', 'Descripcion', $descripcion);
                 $FORM->addElement ('select', 'permisos'   , 'Permisos'   , $PERMISOS, array('size' => '5', 'multiple' => 'true'));
                 $FORM->addElement ('hidden', 'desc_ant'   , $descripcion);
                 $FORM->addElement ('static', 'desc_perfil', 'Descripcion', $descripcion);
                 $FORM->addElement ('select', 'permisos'   , 'Permisos'   , $PERMISOS, array('size' => '5', 'multiple' => 'true'));
-                if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) {
+                if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) {
                     $FORM->addElement ('select', 'tipo_perfil', 'Tipo Perfil', array('E' => 'Externo', 'I' => 'Interno', 'D' => 'Dios'), array ('size' => '1'));
                 }
                 $FORM->addElement ('hidden', 'responsable', $responsable);
                     $FORM->addElement ('select', 'tipo_perfil', 'Tipo Perfil', array('E' => 'Externo', 'I' => 'Interno', 'D' => 'Dios'), array ('size' => '1'));
                 }
                 $FORM->addElement ('hidden', 'responsable', $responsable);
@@ -331,7 +375,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
                 $desc_perfil  =& $FORM->getElement  ('desc_perfil');
                 $permisos     =& $FORM->getElement  ('permisos'   );
                 
                 $desc_perfil  =& $FORM->getElement  ('desc_perfil');
                 $permisos     =& $FORM->getElement  ('permisos'   );
                 
-                if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) {
+                if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) {
                     $tipo_perfil  =& $FORM->getElement  ('tipo_perfil');
                 }
                 $responsable  =& $FORM->getElement  ('responsable');
                     $tipo_perfil  =& $FORM->getElement  ('tipo_perfil');
                 }
                 $responsable  =& $FORM->getElement  ('responsable');
@@ -341,7 +385,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
 
                 $permisos->setSelected($PERFIL->getPermisos());
                 
 
                 $permisos->setSelected($PERFIL->getPermisos());
                 
-                if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) {
+                if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) {
                     $tipo_perfil->setSelected($PERFIL->getTipo());
                 }
 
                     $tipo_perfil->setSelected($PERFIL->getTipo());
                 }
 
@@ -375,7 +419,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
                     $desc_perfil  =& $FORM->getElement  ('desc_perfil');
                     $permisos     =& $FORM->getElement  ('permisos'   );
                     
                     $desc_perfil  =& $FORM->getElement  ('desc_perfil');
                     $permisos     =& $FORM->getElement  ('permisos'   );
                     
-                    if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) {
+                    if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) {
                         $tipo_perfil  =& $FORM->getElement  ('tipo_perfil');
                         $tipo_perfil_tmp  =  $tipo_perfil->getSelected();
                     }
                         $tipo_perfil  =& $FORM->getElement  ('tipo_perfil');
                         $tipo_perfil_tmp  =  $tipo_perfil->getSelected();
                     }
@@ -388,7 +432,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
                     $PERFIL->setResponsable($responsable->getValue());
                     $PERFIL->setPermisos   ($permisos->getSelected()); //Le asigno al perfil los permisos seleccionados
                     
                     $PERFIL->setResponsable($responsable->getValue());
                     $PERFIL->setPermisos   ($permisos->getSelected()); //Le asigno al perfil los permisos seleccionados
                     
-                    if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) {
+                    if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) {
                         $PERFIL->setTipo($tipo_perfil_tmp['0']);
                     }
                     
                         $PERFIL->setTipo($tipo_perfil_tmp['0']);
                     }
                     
@@ -415,13 +459,14 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
             $TABLA3 = new MECON_HTML_Tabla ('cellspacing=0');
             $TABLA3->addRow($row,'align=left');    
 
             $TABLA3 = new MECON_HTML_Tabla ('cellspacing=0');
             $TABLA3->addRow($row,'align=left');    
 
-            $MARCO->addBody($TABLA3);
+            $MARCO->addBodyContent($TABLA3);
             if (isset($ERROR)) {
             if (isset($ERROR)) {
-                $MARCO->addBody($ERROR);
+                $MARCO->addBodyContent($ERROR);
             }
             }
-            $MARCO->addBody($FORM);
+            $MARCO->addBodyContent($FORM);
     //}}}
     }
     //}}}
 }
     //}}}
     }
     //}}}
 }
+//}}}
 ?>
 ?>