X-Git-Url: https://git.llucax.com/mecon/samurai.git/blobdiff_plain/52ec6b73aae5937cd9c04e150e6b261b8be98b01..6cb1ba00555851a6661c7a5ad6395526160afb1f:/lib/SAMURAI/HTML/Perfil.php
diff --git a/lib/SAMURAI/HTML/Perfil.php b/lib/SAMURAI/HTML/Perfil.php
index 372abf8..72af3dc 100644
--- a/lib/SAMURAI/HTML/Perfil.php
+++ b/lib/SAMURAI/HTML/Perfil.php
@@ -23,54 +23,56 @@
/** \page page_samurai_html_perfil Perfil Embebido
\section page_samurai_html_perfil_descripcion Descripcion
- Funcion que sirve para embeber la funcionalidad de los perfiles 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
+ 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
- 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 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
- Se realizan las siguientes validaciones:
- - Los nombres de los perfiles nuevos deben ser distintos.
- - 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.
+ \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
- La utilizacion de perfiles embebido no genera condiciones, queda a criterio
- del desarrollador incluir esta funcionalidad en el lugar que quiera.
+ 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
- De esta manera se agrega la funcionalidad:
\code
include 'SAMURAI/HTML/Perfil.php';
-
SAMURAI_HTML_Perfil($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_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.
- \note Es necesario para ver el contenido de la pagina hacer
- $MARCO->display() al final de la misma.
+ Permisos
+ - perfil alta
+ - perfil baja
+ - perfil modificacion
+ - perfil tipo
*/
//REQUIRE ONCE {{{
@@ -87,8 +89,10 @@ require_once 'MECON/HTML/Image.php';
require_once 'PEAR.php';
// }}}
-/** Funcion que se encarga agregar los componentes necesarios al sistema para
- * que se pueda realizar un abm de perfiles. Sin los parametros no funciona
+/**
+ * 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
@@ -124,7 +128,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
//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 = '';
@@ -146,20 +150,20 @@ function SAMURAI_HTML_Perfil(&$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)) {
+ $row = array ('Id','DescripciĆ³n');
+ 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.';
}
@@ -171,29 +175,29 @@ function SAMURAI_HTML_Perfil(&$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 ($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']);
@@ -236,15 +240,13 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
$res = '';
$tmp = $perfiles->getSelected();
if ((!@$descripcion->getvalue() && $tmp['0'] == '--') || ($descripcion->getvalue() && $tmp['0'] != '--')) {
- $res = new PEAR_Error("Debe seleccionar un perfil del combo o ingresar un nombre en la casilla correspondiente.
- Solo una de las dos opciones.");
+ $res = new PEAR_Error("Debe seleccionar un perfil del combo o ingresar un nombre en la casilla correspondiente.
Solo una de las dos opciones.");
@$descripcion->setValue('');
}
elseif ($tmp['0'] != '--') {
//verificar que el sistema no tenga una asociacion con ese perfil
if (SAMURAI_Perfil::existeAsociacion($DB, $tmp['0'], $id_sistema)) {
- $res = new PEAR_Error("El sistema ya tiene asociado el perfil seleccionado,
- modifique sus permisos desde la seccion perfiles.");
+ $res = new PEAR_Error("El sistema ya tiene asociado el perfil seleccionado, modifique sus permisos desde la seccion perfiles.");
}
else {
header('Location: '.$_SERVER['PHP_SELF'].'?samurai_perfiles=abm&id_perfil='.$tmp['0']);
@@ -264,9 +266,7 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
$rta = rtrim($rta);
//
if (SAMURAI_Perfil::existePerfil($DB, $rta)) {
- $res = new PEAR_Error("Ya existe un perfil con ese nombre, seleccionelo del combo.
- Recuerde que varios espacios se reduciran a uno solo
- (Ej: Agregar Usuario -> Agregar Usuario)");
+ $res = new PEAR_Error("Ya existe un perfil con ese nombre, seleccionelo del combo.
Recuerde que varios espacios se reduciran a uno solo (Ej: Agregar Usuario -> Agregar Usuario)");
}
else {
$temp = ereg_replace(' ' , '%20', $rta); //Cambio los espacios por %20 para que no chille el netscape
@@ -288,18 +288,18 @@ function SAMURAI_HTML_Perfil(&$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 ($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']) {
@@ -311,6 +311,22 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
else {
$id_perfil = 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;
+ }
+ //}}}
$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, $id_sistema);
@@ -347,13 +363,14 @@ function SAMURAI_HTML_Perfil(&$MARCO, $id_sistema) {
$FORM->addElement ('header', 'cabecera', 'ABM Perfiles');
$FORM->addElement ('hidden', 'id_perfil', $id_perfil);
$FORM->addElement ('hidden', 'desc_ant' , $descripcion);
- $FORM->addElement ('static', 'desc_perfil', 'Descripcion', $descripcion);
+ $FORM->addElement ('static', 'desc_perfil', 'DescripciĆ³n', $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);
- $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');
}
@@ -371,7 +388,7 @@ function SAMURAI_HTML_Perfil(&$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');
@@ -381,7 +398,7 @@ function SAMURAI_HTML_Perfil(&$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());
}
@@ -415,7 +432,7 @@ function SAMURAI_HTML_Perfil(&$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');
$tipo_perfil_tmp = $tipo_perfil->getSelected();
}
@@ -428,7 +445,7 @@ function SAMURAI_HTML_Perfil(&$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)) {
+ if ($SAMURAI_PERM->tiene(SAMURAI_PERM_PERFIL_TIPO)) {
$PERFIL->setTipo($tipo_perfil_tmp['0']);
}
@@ -455,11 +472,11 @@ function SAMURAI_HTML_Perfil(&$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);
//}}}
}
//}}}