From 0ecc42815b25c93505bdc63406044ebd4c37283b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mart=C3=ADn=20Marrese?= Date: Fri, 4 Jul 2003 17:59:27 +0000 Subject: [PATCH] - Terminados el Abm de Sistemas y el Abm de Permisos. Con las asociaciones entre Sistemas y Permisos --- doc/uml/Samurai.xmi | 156 +++++++---------- sistema/conf/confSecciones.php | 26 ++- sistema/local_lib/Perfil.php | 99 ++++++----- sistema/local_lib/Permiso.php | 194 ++++++++++++++++----- sistema/local_lib/Permiso/consultas.php | 8 +- sistema/local_lib/Sistema.php | 47 ++--- sistema/local_lib/Usuario.php | 139 ++++++--------- sistema/local_lib/prepend.php | 2 + sistema/www/index.php | 5 +- sistema/www/permisos/permisos-abm.php | 117 +++++++++++++ sistema/www/permisos/permisos.php | 73 ++++++++ sistema/www/sistemas/sistemas-abm.php | 89 +++++----- sistema/www/sistemas/sistemas-permisos.php | 66 ++++--- sistema/www/sistemas/sistemas.php | 14 +- 14 files changed, 637 insertions(+), 398 deletions(-) create mode 100644 sistema/www/permisos/permisos-abm.php create mode 100644 sistema/www/permisos/permisos.php diff --git a/doc/uml/Samurai.xmi b/doc/uml/Samurai.xmi index b91c3a4..32f42a1 100644 --- a/doc/uml/Samurai.xmi +++ b/doc/uml/Samurai.xmi @@ -9,33 +9,20 @@ - + - - - - - - - - - - - - - - - - - - - - + + + + @@ -43,18 +30,12 @@ - - - - - - - - - - - - + + + @@ -147,20 +128,20 @@ x2c:get set" name="asociaciones" static="0" scope="201" /> - - - - - - - + + - - - + + + + + - + @@ -179,75 +160,76 @@ x2c:include: DB.php" name="DB" static="0" scope="200" /> - + - - - - + + + + - - + + - + - - + + - - + + - + - - + + - + - - + + - - + + - + - - + + - + - - + + - + - - + + @@ -262,27 +244,21 @@ x2c:include: DB.php" name="DB" static="0" scope="200" /> - - - - - - + + - - - + + + - - - + @@ -299,7 +275,7 @@ x2c:include: DB.php" name="DB" static="0" scope="200" /> - + @@ -345,17 +321,9 @@ x2c:include: DB.php" name="DB" static="0" scope="200" /> - - - - - - - - diff --git a/sistema/conf/confSecciones.php b/sistema/conf/confSecciones.php index 988a500..42f5e08 100644 --- a/sistema/conf/confSecciones.php +++ b/sistema/conf/confSecciones.php @@ -1,5 +1,5 @@ 'SAMURAI', 'pie_sistema' => 'Sistema de Administracion y Mantenimiento de Usuarios Relativos A Intranet - Ministerio de Economia', 'id_sistema' => '1', @@ -32,6 +33,7 @@ 'db_pass' => 'intranet', 'db_host' => 'bal747f', 'db_name' => 'samurai', +//}}} //Directorios web del sistema, salvo el root, todos son opcionales //Si no se ponen, o estan vacias se asume lo que dice el comentario al lado de cada una 'directorios' => array ( 'root' => '/sistemas/samurai', // obligatorio @@ -48,11 +50,11 @@ //SECCIONES VISIBLES POR TODOS LOS USUARIOS array ( 'nombre' => 'Usuarios', - 'imagenComun' => 'usuarios', + 'imagenComun' => 'usuarios.gif', 'imagenMouseOn' => '', 'imagenSelect' => '', 'link' => 'usuarios', - 'tipoMenu' => 'oculto', + 'tipoMenu' => 'oculto', 'hijos' => array ( array ( 'nombre' => 'Filtrar Usuario', 'imagenComun' => '', @@ -72,7 +74,7 @@ ), array ( 'nombre' => 'perfiles', - 'imagenComun' => 'perfiles', + 'imagenComun' => 'perfiles.gif', 'imagenMouseOn' => '', 'imagenSelect' => '', 'link' => 'perfiles', @@ -90,7 +92,7 @@ ), array ( 'nombre' => 'consultas', - 'imagenComun' => 'general_consultas', + 'imagenComun' => 'general_consultas.gif', 'imagenMouseOn' => '', 'imagenSelect' => '', 'link' => 'consultas', @@ -109,7 +111,7 @@ //SECCIONES VISIBLES POR LOS DESARROLLADORES array ( 'nombre' => 'Sistemas', - 'imagenComun' => 'sistemas', + 'imagenComun' => 'general_sistemas.gif', 'imagenMouseOn' => '', 'imagenSelect' => '', 'link' => 'sistemas/sistemas', @@ -120,34 +122,28 @@ 'imagenMouseOn' => '', 'imagenSelect' => '', 'link' => 'sistemas/sistemas-abm', - 'subhijos' => array ( '', - ), ), array ( 'nombre' => 'Definir Permisos', 'imagenComun' => '', 'imagenMouseOn' => '', 'imagenSelect' => '', 'link' => 'sistemas/sistemas-permisos', - 'subhijos' => array ( '', - ), ), ), ), array ( 'nombre' => 'Permisos', - 'imagenComun' => 'permisos', + 'imagenComun' => 'permisos.gif', 'imagenMouseOn' => '', 'imagenSelect' => '', - 'link' => 'permisos', + 'link' => 'permisos/permisos', 'tipoMenu' => 'oculto', 'hijos' => array ( array ( 'nombre' => 'ABM Permisos', 'imagenComun' => '', 'imagenMouseOn' => '', 'imagenSelect' => '', - 'link' => 'permisos-abm', - 'subhijos' => array ( 'sarasa5', - ), + 'link' => 'permisos/permisos-abm', ), ), ), diff --git a/sistema/local_lib/Perfil.php b/sistema/local_lib/Perfil.php index 9a8d200..34a3783 100644 --- a/sistema/local_lib/Perfil.php +++ b/sistema/local_lib/Perfil.php @@ -67,102 +67,107 @@ class Perfil { */ var $_db; - // ~X2C - - // +X2C Operation 229 /** - * Constructor. Si recibe un identificador como parametro, busca la informacion en la base. + * Gets Id. * - * @param Samurai_DB &$db Objeto conexion - * @param int $id Identificador del perfil. + * @return int + * @access public + */ + function getId() + { + return $this->_id; + } + /** + * Sets Id. + * + * @param int $id Id. * * @return void * @access public */ - function Perfil(&$db, $id = null)// ~X2C + function setId($id) { - if (!is_null($id)) { - //BUSCAR INFO EN LA DB, - //SETEAR LAS VI - } - else { - //INICIALIZO LA VI - $this->_id = null; - $this->_descripcion = null; - $this->_tipo = null; - } + $this->_id = $id; } - // -X2C - // +X2C Operation 230 /** - * Devuelve el identificador del perfil. + * Gets Descripcion. * - * @return int + * @return string * @access public */ - function getId()// ~X2C + function getDescripcion() { - return $this->_id; + return $this->_descripcion; } - // -X2C - - // +X2C Operation 231 /** - * Devuelve la descripcion del perfil. + * Sets Descripcion. + * + * @param string $descripcion Descripcion. * - * @return getDescPerfilstring + * @return void * @access public */ - function getDescripcion()// ~X2C + function setDescripcion($descripcion) { - return $this->_descripcion; + $this->_descripcion = $descripcion; } - // -X2C - // +X2C Operation 232 /** - * Devuelve el tipo de perfil. + * Gets Tipo. * * @return string * @access public */ - function getTipo()// ~X2C + function getTipo() { return $this->_tipo; } - // -X2C - - // +X2C Operation 233 /** - * Setea la descripcion del perfil. + * Sets Tipo. * - * @param string $descripcion Descripcion del perfil. + * @param string $tipo Tipo. * * @return void * @access public */ - function setDescripcion($descripcion = null)// ~X2C + function setTipo($tipo) { - $this->_descripcion = $descripcion; + $this->_tipo = $tipo; } - // -X2C - // +X2C Operation 234 + // ~X2C + + // +X2C Operation 229 /** - * Setea el tipo de perfil. + * Constructor. Si recibe un identificador como parametro, busca la informacion en la base. * - * @param string $tipo Tipo de perfil. + * @param Samurai_DB &$db Objeto conexion + * @param int $id Identificador del perfil. * * @return void * @access public */ - function setTipo($tipo = null)// ~X2C + function Perfil(&$db, $id = null)// ~X2C { - $this->_tipo = $tipo; + if (!is_null($id)) { + //BUSCAR INFO EN LA DB, + //SETEAR LAS VI + } + else { + //INICIALIZO LA VI + $this->_id = null; + $this->_descripcion = null; + $this->_tipo = null; + } } // -X2C + + + + + } // -X2C Class :Perfil ?> \ No newline at end of file diff --git a/sistema/local_lib/Permiso.php b/sistema/local_lib/Permiso.php index e660e88..cc51373 100644 --- a/sistema/local_lib/Permiso.php +++ b/sistema/local_lib/Permiso.php @@ -24,7 +24,7 @@ // $Rev$ // -#require_once 'PEAR.php'; +require_once 'PEAR.php'; @@ -62,75 +62,106 @@ class Permiso { /** * Indentificador del ultimo que realizo alguna operacion sobre el permiso * - * @var string $reponsable + * @var string $responsable * @access private */ - var $_reponsable; + var $_responsable; - // ~X2C - - // +X2C Operation 259 /** - * Constructor. Si recibe como parametro el identificador del permiso, busca la informacion en la DB. + * Gets Id. * - * @param Samurai_DB &$db Objeto conexion - * @param int $id Identificador del permiso + * @return int + * @access public + */ + function getId() + { + return $this->_id; + } + /** + * Sets Id. + * + * @param int $id Id. * * @return void * @access public */ - function Permiso(&$db, $id = null)// ~X2C + function setId($id) { - $this->_db = $db; - $this->_id = $id; - $this->_descripcion = null; - if (!is_null($id)) { - $this->_obtenerDatosDb(); - } + $this->_id = $id; } - // -X2C - // +X2C Operation 260 /** - * Devuelve el identificador del permiso. + * Gets Descripcion. * - * @return int + * @return string * @access public */ - function getId()// ~X2C + function getDescripcion() { - return $this->_id; + return $this->_descripcion; + } + /** + * Sets Descripcion. + * + * @param string $descripcion Descripcion. + * + * @return void + * @access public + */ + function setDescripcion($descripcion) + { + $this->_descripcion = $descripcion; } - // -X2C - // +X2C Operation 261 /** - * Devuelve la descripcion del permiso. + * Gets Responsable. * * @return string * @access public */ - function getDescripcion()// ~X2C + function getResponsable() { - return $this->_descripcion; + return $this->_responsable; } - // -X2C + /** + * Sets Responsable. + * + * @param string $responsable Responsable. + * + * @return void + * @access public + */ + function setResponsable($responsable) + { + $this->_responsable = $responsable; + } + + // ~X2C - // +X2C Operation 262 + // +X2C Operation 259 /** - * Setea la descripcion del permiso. + * Constructor. Si recibe como parametro el identificador del permiso, busca la informacion en la DB. * - * @param string $descripcion Descripcion del permiso. + * @param Samurai_DB &$db Objeto conexion + * @param int $id Identificador del permiso * * @return void * @access public */ - function setDescripcion($descripcion = null)// ~X2C + function Permiso(&$db, $id = null)// ~X2C { - $this->_descripcion = $descripcion; + $this->_db = $db; + $this->_id = $id; + $this->setDescripcion(null); + if (!is_null($id)) { + $this->_obtenerDatosDb(); + } } // -X2C + + + // +X2C Operation 295 /** * Obtiene de la base de datos la informacion del permiso @@ -163,32 +194,105 @@ class Permiso { } // -X2C - // +X2C Operation 297 + + + // +X2C Operation 316 /** - * Setea el valor del responsable + * Modifica la base de datos segun accion * - * @param string $responsable Identificador del responsable + * @param string $accion Indica la accion a realizar * - * @return void + * @return mixed * @access public */ - function setResponsable($responsable)// ~X2C + function guardarDatos($accion = grabar)// ~X2C { - $this->_responsable = $responsable; + $accion = strtolower($accion); + switch ($accion) { + case 'grabar': + $res = $this->_grabarDb(); + break; + case 'modificar': + $res = $this->_modificarDb(); + break; + case 'eliminar': + $res = $this->_borrarDb(); + break; + } + return $res; } // -X2C - // +X2C Operation 298 + // +X2C Operation 317 /** - * @return string - * @access public + * Graba en base el permiso + * + * @return mixed + * @access protected */ - function getResponsable()// ~X2C + function _grabarDb()// ~X2C { - return $this->_responsable; + $idPermiso = $this->_db->nextId('permiso'); + $datos = array ( + 'id_permiso' => $idPermiso, + 'desc_permiso' => $this->getDescripcion(), + 'responsable' => $this->getResponsable(), + ); + return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_INSERT); + } + // -X2C + + // +X2C Operation 318 + /** + * Borra de la base el permiso + * + * @return mixed + * @access protected + */ + function _borrarDb()// ~X2C + { + $sql = include 'Permiso/consultas.php'; + $datos[] = $this->getId(); + //Verifico que el permiso no tenga asociaciones + $tmp = $sql['verificar_asociaciones1'].$sql['obtener_datos_permiso2']; + $dbh = $this->_db->prepare($tmp); + $res = $this->_db->execute($dbh, $datos); + if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta']) { + return new PEAR_Error("Hay sistemas asociados al permiso seleccionado"); + } + $tmp = $sql['verificar_asociaciones2'].$sql['obtener_datos_permiso2']; + $dbh = $this->_db->prepare($tmp); + $res = $this->_db->execute($dbh, $datos); + if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta'] == 0) { + return new PEAR_Error("Hay pefiles asociados al permiso seleccionado"); + } + // + //Borro el permiso de la base + $tmp = $sql['borrar_permiso'].$sql['obtener_datos_permiso2']; + $dbh = $this->_db->prepare($tmp); + return $this->_db->execute($dbh, $datos); + // + } + // -X2C + + // +X2C Operation 319 + /** + * Actualiza los datos del permiso + * + * @return mixed + * @access protected + */ + function _modificarDb()// ~X2C + { + $datos = array ( + 'id_permiso' => $this->getId(), + 'desc_permiso' => $this->getDescripcion(), + 'responsable' => $this->getResponsable(), + ); + return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_UPDATE, 'id_permiso ='.$this->getId()); } // -X2C } // -X2C Class :Permiso -?> \ No newline at end of file +?> diff --git a/sistema/local_lib/Permiso/consultas.php b/sistema/local_lib/Permiso/consultas.php index 93e0bb0..63657ff 100644 --- a/sistema/local_lib/Permiso/consultas.php +++ b/sistema/local_lib/Permiso/consultas.php @@ -24,8 +24,10 @@ // $Rev$ // return array ( - 'obtener_datos_permiso' => 'SELECT id_permiso, desc_permiso, responsable - FROM permiso ', - 'obtener_datos_permiso2' => 'WHERE id_permiso = ? ', + 'obtener_datos_permiso' => 'SELECT id_permiso, desc_permiso, responsable FROM permiso ', + 'obtener_datos_permiso2' => 'WHERE id_permiso = ? ', + 'borrar_permiso' => 'DELETE FROM permiso ', + 'verificar_asociaciones1' => 'SELECT IF(0,count(*),NULL) as cuenta FROM perm_sist ', + 'verificar_asociaciones2' => 'SELECT IF(0,count(*),NULL) as cuenta FROM perm_perfil_sist ', ); ?> diff --git a/sistema/local_lib/Sistema.php b/sistema/local_lib/Sistema.php index 65e54b4..b4020d8 100644 --- a/sistema/local_lib/Sistema.php +++ b/sistema/local_lib/Sistema.php @@ -24,7 +24,7 @@ // $Rev$ // -#require_once 'PEAR.php'; +require_once 'PEAR.php'; require_once 'Samurai_DB.php'; require_once 'Date.php'; @@ -602,13 +602,14 @@ class Sistema { 'estado' => 1 ); $res = $this->_db->autoExecute('sistema', $datos, DB_AUTOQUERY_INSERT); - - if (DB::isError($res)) { - trigger_error('Error al tratar de insertar el sistema -> '.$res, E_USER_ERROR); + if (PEAR::isError($res)) { + return $res; } - //Grabo los permisos - $this->_grabarPermisosDb($idSistema); + $res = $this->_grabarPermisosDb($idSistema); + if (PEAR::isError($res)) { + return $res; + } } // -X2C @@ -627,15 +628,16 @@ class Sistema { $datos = array( 'responsable' => $responsable, 'estado' => 0 ); - $res = $this->_db->autoExecute('sistema', $datos, DB_AUTOQUERY_UPDATE, 'id_sistema = '.$idSistema); - if (DB::isError($res)) { - trigger_error('Error en sistema -> '.$res, E_USER_ERROR); + if (PEAR::isError($res)) { + return $res; } - //Borro los permisos que tiene asignado el sistema //Borro absolutamente todos los permisos que tiene asociado -> No hay vuelta a atras - $this->_borrarPermisosDb($idSistema); + $res = $this->_borrarPermisosDb($idSistema); + if (PEAR::isError($res)) { + return $res; + } } // -X2C @@ -665,14 +667,19 @@ class Sistema { 'responsable' => $this->getResponsable(), ); $res = $this->_db->autoExecute('sistema', $datos, DB_AUTOQUERY_UPDATE, 'id_sistema = '.$idSistema); - - if (DB::isError($res)) { - trigger_error('Error al tratar de insertar el sistema -> '.var_dump($res), E_USER_ERROR); + if (PEAR::isError($res)) { + return $res; } //Borro los permisos que no tengan observaciones - $this->_borrarPermisosDb($idSistema, ''); + $res = $this->_borrarPermisosDb($idSistema, ''); + if (PEAR::isError($res)) { + return $res; + } //Grabo los permisos que selecciono - $this->_grabarPermisosDb($idSistema); + $res = $this->_grabarPermisosDb($idSistema); + if (PEAR::isError($res)) { + return $res; + } } // -X2C @@ -694,8 +701,8 @@ class Sistema { foreach ($this->_permisos as $permiso) { $datos = array ($permiso['0'], $idSistema, $this->getResponsable()); $res = $this->_db->execute($re, $datos); - if (DB::isError($res)) { - trigger_error('Error en perm_sist -> '.var_dump($res), E_USER_ERROR); + if (PEAR::isError($res)) { + return $res; } } } @@ -729,8 +736,8 @@ class Sistema { } $dbh = $this->_db->prepare($tmp); $res = $this->_db->execute($dbh, $datos); - if (DB::isError($res)) { - trigger_error('Error al tratar de borrar la relacion entre permiso y sistema -> '.var_dump($res), E_USER_ERROR); + if (PEAR::isError($res)) { + return $res; } } // -X2C diff --git a/sistema/local_lib/Usuario.php b/sistema/local_lib/Usuario.php index 3634c29..c86838d 100644 --- a/sistema/local_lib/Usuario.php +++ b/sistema/local_lib/Usuario.php @@ -36,7 +36,7 @@ */ class Usuario { /** - * Login del usuario en intranet. + * Login del usuario en intranet.x2c: get set * * @var string $login * @access private @@ -75,147 +75,112 @@ class Usuario { */ var $_db; - // ~X2C - - // +X2C Operation 216 /** - * Constructor.Recibe como parametro opcional el login del usuario. y busca en la base la informacion referida a el. - * - * @param Samurai_DB &$db Objeto conexion. - * @param string $login Login del usuario + * Gets Nrodoc. * - * @return void + * @return int * @access public */ - function Usuario(&$db, $login = null)// ~X2C + function getNrodoc() { - if (!is_null($login)) { - //BUSCAR INFO EN LA DB, - //SETEAR LAS VI - } - else { - //INICIALIZO LA VI - $this->_login = null; - $this->_nrodoc = null; - $this->_nombre = null; - $this->_fecha = null; - } - + return $this->_nrodoc; } - // -X2C - - // +X2C Operation 217 /** - * Devuelve el string del login del usuario. + * Sets Nrodoc. * - * @return string - * @access public - */ - function getLogin()// ~X2C - { - return $this->_login; - } - // -X2C - - // +X2C Operation 218 - /** - * Devuelve el int con el numero de documento del usuario. + * @param int $nrodoc Nrodoc. * - * @return int + * @return void * @access public */ - function getNrodoc()// ~X2C + function setNrodoc($nrodoc) { - return $this->_nrodoc; + $this->_nrodoc = $nrodoc; } - // -X2C - // +X2C Operation 219 /** - * Devuelve un datetime con la fecha en la cual el usuario se logueo por ultima vez a intranet. + * Gets Nombre. * - * @return date + * @return string * @access public */ - function getFecha()// ~X2C + function getNombre() { - return $this->_fecha; + return $this->_nombre; } - // -X2C - - // +X2C Operation 220 /** - * Setea el login del usuario. + * Sets Nombre. * - * @param string $login Login a asignar al usuario + * @param string $nombre Nombre. * * @return void * @access public */ - function setLogin($login = null)// ~X2C + function setNombre($nombre) { - $this->_login = login; + $this->_nombre = $nombre; } - // -X2C - // +X2C Operation 221 /** - * Setea el numero de documento del usuario. + * Gets Fecha. * - * @param int $nrodoc Numero de documento a asignar al usuario. - * - * @return void + * @return date * @access public */ - function setNrodoc($nrodoc = null)// ~X2C + function getFecha() { - $this->_nrodoc = $nrodoc; + return $this->_fecha; } - // -X2C - - // +X2C Operation 222 /** - * Setea el nombre del usuario. + * Sets Fecha. * - * @param string $nombre Nombre del usuario. + * @param date $fecha Fecha. * * @return void * @access public */ - function setNombre($nombre = null)// ~X2C + function setFecha($fecha) { - $this->_nombre = $nombre; + $this->_fecha = $fecha; } - // -X2C - // +X2C Operation 223 + // ~X2C + + // +X2C Operation 216 /** - * Setea la fecha de ultimo logueo del usuario. + * Constructor.Recibe como parametro opcional el login del usuario. y busca en la base la informacion referida a el. * - * @param date $fecha Fecha de ultimo logueo del usuario. + * @param Samurai_DB &$db Objeto conexion. + * @param string $login Login del usuario * * @return void * @access public */ - function setFecha($fecha = null)// ~X2C + function Usuario(&$db, $login = null)// ~X2C { - $this->_fecha = $fecha; - } - // -X2C + if (!is_null($login)) { + //BUSCAR INFO EN LA DB, + //SETEAR LAS VI + } + else { + //INICIALIZO LA VI + $this->_login = null; + $this->_nrodoc = null; + $this->_nombre = null; + $this->_fecha = null; + } - // +X2C Operation 224 - /** - * Devuelve el nombre del usuario. - * - * @return string - * @access public - */ - function getNombre()// ~X2C - { - return $this->_nombre; } // -X2C + + + + + + + + } // -X2C Class :Usuario ?> \ No newline at end of file diff --git a/sistema/local_lib/prepend.php b/sistema/local_lib/prepend.php index faba42d..efde56e 100644 --- a/sistema/local_lib/prepend.php +++ b/sistema/local_lib/prepend.php @@ -5,6 +5,8 @@ require_once 'MECON/general.php'; prepend_include_path('/var/www/sistemas/samurai'); +//prepend_include_path('/home/llucar/public/meconlib/trondco/lib'); + require_once 'MECON/Marco.php'; require_once 'local_lib/Samurai_DB.php'; require_once 'local_lib/Samurai.php'; diff --git a/sistema/www/index.php b/sistema/www/index.php index 2f2a4df..073d1fb 100644 --- a/sistema/www/index.php +++ b/sistema/www/index.php @@ -23,7 +23,10 @@ // $Date$ // $Rev$ // + require_once 'HTML/Image.php'; + $MARCO = new Marco ('../conf/confSecciones.php'); - $MARCO->addBody(''); + $MARCO->addBody(new HTML_Image('images/inicio.jpg')); + $MARCO->setEspacios(false); $MARCO->display(); ?> diff --git a/sistema/www/permisos/permisos-abm.php b/sistema/www/permisos/permisos-abm.php new file mode 100644 index 0000000..2d379fd --- /dev/null +++ b/sistema/www/permisos/permisos-abm.php @@ -0,0 +1,117 @@ + +// +----------------------------------------------------------------------+ +// +// $Id$ +// $Author$ +// $URL$ +// $Date$ +// $Rev$ +// + + require_once 'MECON/HTML/QuickForm.php'; + +//CREO LOS OBJETO NECESARIOS {{{ + $SAMURAI = new Samurai($DB); + $FORM = new MECON_HTML_QuickForm ('permisos_abm','post','permisos-abm'); +// }}} +//AGREGO LOS ELEMENTOS DEL FORM {{{ + $FORM->addElement ('header', 'cabecera', 'ABM Permisos'); + $FORM->addElement ('hidden', 'id_permiso'); + $FORM->addElement ('text' , 'desc_permiso', 'Descripcion', array('size'=>'50')); + $FORM->addElement ('static', 'responsable' , 'Responsable', $_SESSION['samurai']['login']); + $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar'); + $FORM->addGroup($group,'botones'); +// }}} +//AGREGO LAS REGLAS DE VALIDACION DE LOS ELEMENTOS {{{ + $FORM->addRule('desc_permiso', 'El campo descripcion es obligatorio', 'required', '', 'client'); +// }}} +//CREO EL OBJETO PERMISO {{{ + //Obtengo el id del permiso. + $idPermiso =& $FORM->getElement('id_permiso'); + if (isset($_GET['accion']) && $_GET['accion'] != '') { + //Viene en el get es -> modificar o eliminar, me ocupo yo. + $id_permiso = $_GET['idPermiso']; + $idPermiso->setValue($id_permiso); + } + else { + //Viene en el post, no me ocupo yo. + $id_permiso = $idPermiso->getValue(); + } + $PERMISO = new Permiso ($DB, $id_permiso); +// }}} +//SETEO LOS VALORES DE LOS ELEMENTOS DEL OBJETO FORM {{{ + if (isset($_GET['accion']) && $_GET['accion'] != '') { + //MODIFICACION -> agrego la info a los elementos + $desc_permiso =& $FORM->getElement ('desc_permiso'); + $responsable =& $FORM->getElement ('responsable' ); + $group =& $FORM->getElement ('botones' ); + $group =& $group->getElements('aceptar' ); + $aceptar =& $group[0]; + + $desc_permiso->setValue ($PERMISO->getDescripcion()); + + if ($PERMISO->getResponsable() != '') { + $responsable->setValue($PERMISO->getResponsable()); + } + + $aceptar->setValue('Modificar'); + + //ELIMINACION -> modifico el valor del boton + if ($_GET['accion'] == 'e') { + $aceptar->setValue('Eliminar'); + $FORM->freeze(); + } + } +// }}} +//VALIDO EL FORMULARIO {{{ + if ($FORM->validate()) { + $desc_permiso =& $FORM->getElement ('desc_permiso'); + $responsable =& $FORM->getElement ('responsable' ); + $group =& $FORM->getElement ('botones' ); + $group =& $group->getElements('aceptar' ); + $aceptar =& $group[0]; + + $PERMISO->setDescripcion($desc_permiso->getValue()); + $PERMISO->setResponsable($responsable->_text); //TODO URGENTE Modificar esto. No tiene metodo static::getValue() + + //Verifico si se produjo algun error + $res = $PERMISO->guardarDatos($aceptar->getValue()); + + if (PEAR::isError($res)) { + $group = array (); + $group[] = HTML_QuickForm::createElement('static', 'error' , 'Error:', $res->getMessage()); + $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , $aceptar->getValue()); + $FORM->removeElement('botones'); + $FORM->addGroup($group,'botones', '', '
'); + } + else { + $FORM->freeze(); + header('Location: permisos'); + } + } +// }}} + +//DIBUJO LA PAGINA {{{ + $MARCO = new Marco ('../../conf/confSecciones.php'); + $MARCO->addTitle('ABM Permisos'); + $MARCO->addBody($FORM); + $MARCO->display(); +// +//FIN +?> diff --git a/sistema/www/permisos/permisos.php b/sistema/www/permisos/permisos.php new file mode 100644 index 0000000..db852f8 --- /dev/null +++ b/sistema/www/permisos/permisos.php @@ -0,0 +1,73 @@ + +// +----------------------------------------------------------------------+ +// +// $Id$ +// $Author$ +// $URL$ +// $Date$ +// $Rev$ +// + + require_once 'MECON/HTML/Tabla.php'; + +//LINKS A PERMISOS-ABM {{{ + $aHref = ''; + $aHrefModif = $aHref.'Modificar Permiso'; + $aHrefElim = $aHref.'Eliminar Permiso'; +// }}} +//CREO LOS OBJETOS NECESARIOS {{{ + if (isset($_SESSION['samurai']['id_sistema'])) { + $SAMURAI = new Samurai($DB,$_SESSION['samurai']['id_sistema']); + } + else { + $SAMURAI = new Samurai($DB); + } + $TABLA2 = new Tabla ('cellspacing=0'); + $TABLA = new Tabla ('cellpadding=2'); + +// }}} +//OBTENGO LA INFORMACION DE LA BASE {{{ + $permisos = $SAMURAI->getPermisos(); +// }}} +//AGREGO LOS DATOS A LAS TABLAS {{{ + $row = array ($aHref.'Ingresar Nuevo Permiso'); + $TABLA2->addRow($row,'align=right'); + $row = array ('Id','Descripcion','Modif.','Elim.'); + $TABLA->addRow($row,'cabecera'); + foreach ($permisos as $permiso) { + $Modif = ereg_replace('##NUEVO##' , $permiso->getId(), $aHrefModif); + $Elim = ereg_replace('##NUEVO##' , $permiso->getId(), $aHrefElim ); + $Modif = ereg_replace('##ACCION##' , 'm' , $Modif ); + $Elim = ereg_replace('##ACCION##' , 'e' , $Elim ); + $row = array ( $permiso->getId(), + $permiso->getDescripcion(), + $Modif, + $Elim, + ); + $TABLA->addRow($row); + } +// }}} +//DIBUJO LA PAGINA {{{ + $MARCO = new Marco ('../../conf/confSecciones.php'); + $MARCO->addBody($TABLA2->toHtml(1)); + $MARCO->addBody($TABLA); + $MARCO->display(); +// }}} +//FIN +?> diff --git a/sistema/www/sistemas/sistemas-abm.php b/sistema/www/sistemas/sistemas-abm.php index 72a0259..6d5db38 100644 --- a/sistema/www/sistemas/sistemas-abm.php +++ b/sistema/www/sistemas/sistemas-abm.php @@ -1,5 +1,5 @@ getSelectPermisos(); -// -//REGISTRO EL ELEMENTO mdate -//Van a ir en el quickform nuestro - $FORM->registerElementType ('mdate', 'MECON/HTML/QuickForm/mdate.php', 'HTML_QuickForm_mdate'); - $FORM->registerRule ('fecha', 'function', 'validate', 'HTML_QuickForm_mdate'); - $FORM->setRequiredNote ('* indica un campo obligatorio'); -// -//AGREGO LOS ELEMENTOS DEL FORM +// }}} +//AGREGO LOS ELEMENTOS DEL FORM {{{ $FORM->addElement ('header' , 'cabecera' , 'ABM Sistemas'); $FORM->addElement ('hidden' , 'id_sistema'); $FORM->addElement ('text' , 'nombre_sistema' , 'Nombre' , array('size' => '30')); $FORM->addElement ('textarea', 'desc_sistema' , 'Descripcion' , array('rows' => '2','cols'=>'50')); - $FORM->addElement ('mdate' , 'fecha_inicio' , 'Fecha Inicio' , array('language'=>'es','format'=>'dFY')); - $FORM->addElement ('mdate' , 'fecha_fin' , 'Fecha Fin' , array('language'=>'es','format'=>'dFY')); - $FORM->addElement ('mdate' , 'fecha_implementacion', 'Fecha Implementacion', array('language'=>'es','format'=>'dFY')); + $FORM->addElement ('mdate' , 'fecha_inicio' , 'Fecha Inicio' ); + $FORM->addElement ('mdate' , 'fecha_fin' , 'Fecha Fin' ); + $FORM->addElement ('mdate' , 'fecha_implementacion', 'Fecha Implementacion'); $FORM->addElement ('textarea', 'contacto' , 'Contacto' , array('rows' => '2','cols'=>'50')); $FORM->addElement ('select' , 'permisos' , 'Permisos' , $PERMISOS, array('size' => '5', 'multiple' => 'multiple')); $FORM->addElement ('static' , 'responsable' , 'Responsable' , $_SESSION['samurai']['login']); - //Toma por default al que esta logueado, pero si este dato - //es diferente no hay problema, ya lo considere $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar'); $FORM->addGroup($group,'botones'); -// -//AGREGO LAS REGLAS DE VALIDACION DE LOS ELEMENTOS - $FORM->addRule('nombre_sistema', 'El campo nombre es obligatorio' , 'required', '', 'client'); - $FORM->addRule('desc_sistema' , 'El campo descripcion es obligatorio' , 'required', '', 'client'); - $FORM->addRule('fecha_inicio' , 'El campo fecha inicio es obligatorio', 'numeric' , '', 'client'); - $FORM->addRule('contacto' , 'El campo contacto es obligatorio' , 'required', '', 'client'); -// -//LAS FECHAS SOLO LAS VALIDO SI ES UN NUEVO SISTEMA O SI ES UNA MODIFICACION - $FORM->addRule('fecha_inicio' , 'No es una fecha Valida', 'fecha', '', 'client'); - $FORM->addRule('fecha_fin' , 'No es una fecha Valida', 'fecha', '', 'client'); - $FORM->addRule('fecha_implementacion', 'No es una fecha Valida', 'fecha', '', 'client'); -// -//CREO EL OBJETO SISTEMA +// }}} +//AGREGO LAS REGLAS DE VALIDACION DE LOS ELEMENTOS {{{ + $FORM->addRule('nombre_sistema' , 'El campo nombre es obligatorio' , 'required'); + $FORM->addRule('desc_sistema' , 'El campo descripcion es obligatorio' , 'required'); + $FORM->addRule('fecha_inicio' , 'El campo fecha inicio es obligatorio', 'required'); + $FORM->addRule('fecha_inicio' , 'La fecha no es válida' , 'fecha' ); + $FORM->addRule('fecha_fin' , 'La fecha no es válida' , 'fecha' ); + $FORM->addRule('fecha_implementacion', 'La fecha no es válida' , 'fecha' ); + $FORM->addRule('contacto' , 'El campo contacto es obligatorio' , 'required'); +// }}} +//CREO EL OBJETO SISTEMA {{{ //Obtengo el id del sistema. $idSistema =& $FORM->getElement('id_sistema'); @@ -81,8 +70,8 @@ } $SISTEMA = new Sistema ($DB, $id_sistema); -// -//SETEO LOS VALORES DE LOS ELEMENTOS DEL OBJETO FORM +// }}} +//SETEO LOS VALORES DE LOS ELEMENTOS DEL OBJETO FORM {{{ if (isset($_GET['accion']) && $_GET['accion'] != '') { //MODIFICACION -> agrego la info a los elementos $nombre_sistema =& $FORM->getElement ('nombre_sistema' ); @@ -135,8 +124,8 @@ $FORM->freeze(); } } -// -//VALIDO EL FORMULARIO +// }}} +//VALIDO EL FORMULARIO {{{ if ($FORM->validate()) { $nombre_sistema =& $FORM->getElement ('nombre_sistema' ); $desc_sistema =& $FORM->getElement ('desc_sistema' ); @@ -180,19 +169,27 @@ $SISTEMA->setPermisos($permisos->getSelected()); $SISTEMA->setResponsable($responsable->_text); //TODO URGENTE Modificar esto. No tiene hay metodo static::getValue() $FORM->freeze(); - $SISTEMA->guardarDatos($aceptar->getValue()); - header('Location: sistemas'); + $res = $SISTEMA->guardarDatos($aceptar->getValue()); + + if (PEAR::isError($res)) { + $group = array (); + $group[] = HTML_QuickForm::createElement('static', 'error' , 'Error:', $res->getMessage()); + $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , $aceptar->getValue()); + $FORM->removeElement('botones'); + $FORM->addGroup($group,'botones', '', '
'); + } + else { + $FORM->freeze(); + header('Location: sistemas'); + } } -// - -//DIBUJO LA PAGINA - $renderer =& new HTML_QuickForm_Renderer_Tabla('width="100%"'); - $FORM->accept($renderer); +// }}} +//DIBUJO LA PAGINA {{{ $MARCO = new Marco ('../../conf/confSecciones.php'); $MARCO->addTitle('ABM Sistema'); - $MARCO->addBody($renderer->toHtml()); + $MARCO->addBody($FORM); $MARCO->display(); -// +// }}} //FIN ?> diff --git a/sistema/www/sistemas/sistemas-permisos.php b/sistema/www/sistemas/sistemas-permisos.php index e10b0b3..1d40f36 100644 --- a/sistema/www/sistemas/sistemas-permisos.php +++ b/sistema/www/sistemas/sistemas-permisos.php @@ -1,5 +1,5 @@ setResponsable($_SESSION['samurai']['login']); -//AGREGO LA INFORMACION DEL SISTEMA +//AGREGO LA INFORMACION DEL SISTEMA {{{ $row = array ('Id', 'Nombre', 'Descripcion'); $TABLASIST->addRow($row, 'cabecera'); $row = array ($SISTEMA->getId(), $SISTEMA->getNombre(), $SISTEMA->getDescripcion()); $TABLASIST->addRow($row, 'comun'); -// -//AGREGO LOS ELEMENTOS DEL FORM +// }}} +//AGREGO LOS ELEMENTOS DEL FORM {{{ //Obtengo la lista de permisos $PERMISOS = $SAMURAI->getSelectPermisos(); //Agrego elementos $FORM->addElement ('header', 'cabecera' , 'Agregar una asociacion'); $FORM->addElement ('hidden', 'idSistema' , $idSistema); $FORM->addElement ('select', 'permisos' , 'Permisos' , $PERMISOS, array('size' => '1')); - $FORM->addElement ('hidden', 'permant'); - $FORM->addElement ('hidden', 'obsant'); + $FORM->addElement ('hidden', 'permant'); //Permiso anterior + $FORM->addElement ('hidden', 'obsant'); //Obseracion anterior $FORM->addElement ('text' , 'observacion', 'Observacion', array('size' => '30')); $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar'); $FORM->addGroup($group,'botones', '', ', '); -// -//VALIDO EL FORMULARIO +// }}} +//VALIDO EL FORMULARIO {{{ if ($FORM->validate()) { $idPermiso =& $FORM->getElement ('permisos' ); $idPerm_ant =& $FORM->getElement ('permant' ); @@ -99,8 +98,8 @@ $aceptar->setValue('Grabar'); } } -// -//VERIFICO COMO DEBO LLAMAR AL BOTON SUBMIT +// }}} +//VERIFICO COMO DEBO LLAMAR AL BOTON SUBMIT {{{ if (isset($_GET['accion'])) { $group =& $FORM->getElement ('botones'); $group =& $group->getElements('aceptar'); @@ -114,8 +113,8 @@ $FORM->freeze(); } } -// -//CAPTURO SI HAY ACCION -> MODIFICAR O ELIMINAR -> MUESTRO LOS DATOS EN EL FORM +// }}} +//CAPTURO SI HAY ACCION -> MODIFICAR O ELIMINAR -> MUESTRO LOS DATOS EN EL FORM {{{ if (isset($_GET['accion'])) { $idPermiso =& $FORM->getElement ('permisos' ); $idPerm_ant =& $FORM->getElement ('permant' ); @@ -126,8 +125,8 @@ $observacion->setValue($_GET['observacion']); $obs_ant->setValue($_GET['observacion']); } -// -//AGREGO LA INFORMACION DE LAS ASOCIACIONES +// }}} +//AGREGO LA INFORMACION DE LAS ASOCIACIONES {{{ $aHref = ''; $aHrefModif = $aHref.'Modificar'; $aHrefElim = $aHref.'Eliminar'; @@ -136,18 +135,18 @@ $asocs = $SISTEMA->getAsociaciones(); - $idPerm_ant =& $FORM->getElement ('permant' ); - $obs_ant =& $FORM->getElement ('obsant' ); + $idPerm_ant =& $FORM->getElement ('permant'); + $obs_ant =& $FORM->getElement ('obsant' ); foreach ($asocs as $key => $asoc) { $estilo = 'comun'; $permiso = new Permiso($DB, $asoc['id']); $Modif = ereg_replace('##PERMISO##', $asoc['id'] , $aHrefModif); - $Elim = ereg_replace('##PERMISO##', $asoc['id'] , $aHrefElim); - $Modif = ereg_replace('##OBS##' , $asoc['obs'], $Modif); - $Elim = ereg_replace('##OBS##' , $asoc['obs'], $Elim); - $Modif = ereg_replace('##ACCION##' , 'm', $Modif); - $Elim = ereg_replace('##ACCION##' , 'e', $Elim); + $Elim = ereg_replace('##PERMISO##', $asoc['id'] , $aHrefElim ); + $Modif = ereg_replace('##OBS##' , $asoc['obs'], $Modif ); + $Elim = ereg_replace('##OBS##' , $asoc['obs'], $Elim ); + $Modif = ereg_replace('##ACCION##' , 'm' , $Modif ); + $Elim = ereg_replace('##ACCION##' , 'e' , $Elim ); if ($permiso->getId() == $idPerm_ant->getValue() && $asoc['obs'] == $obs_ant->getValue()) { $estilo = 'titulo'; @@ -157,23 +156,20 @@ $TABLAPERM->addRow($row, $estilo); } -// -//DIBUJO LA PAGINA - $renderer =& new HTML_QuickForm_Renderer_Tabla('width="100%"'); - $FORM->accept($renderer); - +// }}} +//DIBUJO LA PAGINA {{{ $MARCO = new Marco ('../../conf/confSecciones.php'); $MARCO->addTitle('Asociar Permisos y Sistemas'); //AGREGO LA TABLA DEL SISTEMA $MARCO->addBody($TABLASIST); $MARCO->addBody('
'); //AGREGO LA TABLA DEL FORM - $MARCO->addBody($renderer); + $MARCO->addBody($FORM); $MARCO->addBody('
'); //AGREGO LA TABLA DE PERMISOS $MARCO->addBody($TABLAPERM); $MARCO->display(); -// +// }}} //FIN ?> diff --git a/sistema/www/sistemas/sistemas.php b/sistema/www/sistemas/sistemas.php index 5aac445..874322b 100644 --- a/sistema/www/sistemas/sistemas.php +++ b/sistema/www/sistemas/sistemas.php @@ -32,7 +32,12 @@ $body = ''; - $SAMURAI = new Samurai($DB,$_SESSION['samurai']['id_sistema']); + if (isset($_SESSION['samurai']['id_sistema'])) { + $SAMURAI = new Samurai($DB,$_SESSION['samurai']['id_sistema']); + } + else { + $SAMURAI = new Samurai($DB); + } $sistemas = $SAMURAI->getSistemas(); @@ -49,7 +54,7 @@ $Elim = ereg_replace('##NUEVO##' , $sistema->getId(), $aHrefElim); $Modif = ereg_replace('##ACCION##' , 'm' , $Modif); $Elim = ereg_replace('##ACCION##' , 'e' , $Elim); - $Perm = ereg_replace('##SISTEMA##', $sistema->getId(), $aHrefPerm);; + $Perm = ereg_replace('##SISTEMA##', $sistema->getId(), $aHrefPerm); $fecha_inicio = $sistema->getFechaInicio(); $fecha_fin = $sistema->getFechaFin(); @@ -71,10 +76,9 @@ } //Agrego las cosas al cuerpo de la pagina - $body.=$TABLA2->toHtml(1); - $body.=$TABLA->toHtml().'
'; $MARCO = new Marco ('../../conf/confSecciones.php'); - $MARCO->addBody($body); + $MARCO->addBody($TABLA2->toHtml(1)); + $MARCO->addBody($TABLA); $MARCO->display(); ?> -- 2.43.0