X-Git-Url: https://git.llucax.com/mecon/samurai.git/blobdiff_plain/5dcf8b5c022fcab918882187fbfeeecca836e642..840abcc48a16d1149da9922585135f09a41e789a:/lib/SAMURAI/HTML/Perfil.php
diff --git a/lib/SAMURAI/HTML/Perfil.php b/lib/SAMURAI/HTML/Perfil.php
index f19b04b..5ded92b 100644
--- a/lib/SAMURAI/HTML/Perfil.php
+++ b/lib/SAMURAI/HTML/Perfil.php
@@ -20,10 +20,62 @@
// $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,28 +89,19 @@ 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) {
- $_SESSION['samurai']['id_sistema'] = $id_sistema;
- $_SESSION['samurai']['login'] = $_SESSION['usuario'];
-
//INICIALIZO OBJETOS GENERALES {{{
//REALIZO CONEXION
$tmp = new SAMURAI_DB();
@@ -67,15 +110,25 @@ 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);
+ $SAMURAI_PERM->chequear(SAMURAI_PERM_PERFIL_ALTA,SAMURAI_PERM_PERFIL_BAJA,SAMURAI_PERM_PERFIL_MODIF);
//}}}
//LINKS {{{
$aHref = '';
@@ -97,20 +150,20 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
$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 ('Ingresar Nuevo Perfil');
$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';
}
- if ($SAMURAI_PERM->tiene(SAMURAI_MODI_PERFIL)) {
+ if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_MODIF)) {
$row[] = 'Modif.';
}
- if ($SAMURAI_PERM->tiene(SAMURAI_BAJA_PERFIL)) {
+ if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_BAJA)) {
$row[] = 'Elim.';
}
@@ -122,29 +175,29 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
$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();
}
- if ($SAMURAI_PERM->tiene(SAMURAI_MODI_PERFIL)) {
+ if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_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 {{{
- $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);
+ $SAMURAI_PERM->chequear(SAMURAI_PERM_PERFIL_ALTA);
//}}}
//CREO LOS OBJETO NECESARIOS {{{
$FORM =& new MECON_HTML_QuickForm ('samurai_perfiles','post',$_SERVER['PHP_SELF']);
@@ -153,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');
@@ -169,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);
@@ -239,18 +292,18 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
$row = array ($imagen->toHtml().' SISTEMA: '.$SISTEMA->getNombre().'');
$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);
+ $SAMURAI_PERM->chequear(SAMURAI_PERM_PERFIL_ALTA,SAMURAI_PERM_PERFIL_BAJA,SAMURAI_PERM_PERFIL_MODIF);
//}}}
//CREO LOS OBJETO NECESARIOS {{{
if (@$_GET['id_perfil']) {
@@ -264,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();
@@ -300,7 +353,7 @@ function SAMURAI_Perfil_Html(&$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'));
- 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);
@@ -322,7 +375,7 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
$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');
@@ -332,7 +385,7 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
$permisos->setSelected($PERFIL->getPermisos());
- if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) {
+ if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) {
$tipo_perfil->setSelected($PERFIL->getTipo());
}
@@ -360,11 +413,13 @@ 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' );
- 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();
}
@@ -377,8 +432,8 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
$PERFIL->setResponsable($responsable->getValue());
$PERFIL->setPermisos ($permisos->getSelected()); //Le asigno al perfil los permisos seleccionados
- if ($SAMURAI_PERM->tiene(SAMURAI_TIPO_PERFIL)) {
- $PERFIL->setTipo ($tipo_perfil_tmp['0'] );
+ if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) {
+ $PERFIL->setTipo($tipo_perfil_tmp['0']);
}
//Grabo y verifico si se produjo algun error
@@ -392,7 +447,8 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
}
else {
$FORM->freeze();
- header('Location: '.$_SERVER['PHP_SELF']);
+ header('Location: '.$_SERVER ['PHP_SELF'].'/');
+ exit;
}
}
}
@@ -403,13 +459,14 @@ function SAMURAI_Perfil_Html(&$MARCO, $id_sistema) {
$TABLA3 = new MECON_HTML_Tabla ('cellspacing=0');
$TABLA3->addRow($row,'align=left');
- $MARCO->addBody($TABLA3);
+ $MARCO->addBodyContent($TABLA3);
if (isset($ERROR)) {
- $MARCO->addBody($ERROR);
+ $MARCO->addBodyContent($ERROR);
}
- $MARCO->addBody($FORM);
+ $MARCO->addBodyContent($FORM);
//}}}
}
//}}}
}
+//}}}
?>