// +X2C Class 377 :SAMURAI_Perm
/**
* Chequeador de permisos.
+Para la libreria de perl:
+@see perm.epl
*
* @package SAMURAI
* @access public
*/
var $_sistema;
+ /**
+ * Base de datos a usar en las conexiones.
+ *
+ * @var DB $db
+ * @access protected
+ */
+ var $_db;
+
+ /**
+ * Observaciones de los permisos.
+ *
+ * @var array $observaciones
+ * @access protected
+ */
+ var $_observaciones = array();
+
/**
* Sets Sistema.
*
// +X2C Operation 380
/**
* Constructor.
+Para la libreria de perl:
+@see perm.epl
*
* @param int $login Login del usuario para el cual obtener los permisos.
* @param int $sistema Sistema con el cual se va a trabajar.
foreach ($db->getAll($query, DB_FETCHMODE_ASSOC) as $row) {
$this->_permisos[$row['sistema']][] = $row['permiso'];
}
+ $this->_db =& $db;
}
// -X2C
* @return array
* @access public
*/
- function getPermisos($sistema = '') // ~X2C
+ function getPermisos($sistema = null) // ~X2C
{
- $sistema = $sistema ? $sistema : $this->_sistema;
+ $sistema = is_null($sistema) ? $this->_sistema : $sistema;
return @$this->_permisos[$sistema] ? $this->_permisos[$sistema] : array();
}
// -X2C
}
// -X2C
+ // +X2C Operation 391
+ /**
+ * Obtiene las observaciones de un permiso para un sistema.
+ *
+ * @param int $perm Obtiene las observaciones de un permiso para un sistema.
+ * @param int $sistema Sistema al cual pertenecen los permisos.
+ *
+ * @return array
+ * @access public
+ */
+ function getObservaciones($perm, $sistema = null) // ~X2C
+ {
+ $sistema = is_null($sistema) ? $this->_sistema : $sistema;
+ if (!@is_array($this->_observaciones[$sistema][$perm])) {
+ $this->_observaciones[$sistema][$perm] = array();
+ $query = '
+ SELECT ps.observaciones AS observaciones
+ FROM samurai.perm_sist AS ps
+ WHERE ps.id_permiso = '.$this->_db->quote($perm).'
+ AND ps.id_sistema = '.$this->_db->quote($sistema);
+ foreach ($this->_db->getAll($query, DB_FETCHMODE_ASSOC) as $row) {
+ $this->_observaciones[$sistema][$perm][] = $row['observaciones'];
+ }
+ }
+ return $this->_observaciones[$sistema][$perm];
+ }
+ // -X2C
+
+ /**
+ * Obtiene los datos de los usuarios que tienen el permiso indicado.
+ *
+ * @param db $db Base de datos.
+ * @param int $sistema Identificador del sistema al que pertenece el permiso.
+ * @param int $perm Identificador del permiso.
+ * @param string $obs Observación de la asignación del permiso.
+ *
+ * @return array
+ * @access public
+ * @static
+ */
+ function getUsuariosPermiso (&$db, $sistema, $perm, $obs = null)
+ {
+ $sql = "SELECT PSU.login,
+ U.nombre,
+ LEFT (P.desc_perfil, LOCATE(' ', P.desc_perfil)) desc_perfil
+ FROM samurai.perfil_sist_usuario AS PSU,
+ usuario.Usuario AS U,
+ samurai.perm_perfil_sist AS PPS,
+ samurai.perfil AS P
+ WHERE U.login = PSU.login AND
+ PSU.id_perfil = PPS.id_perfil AND
+ PPS.id_perfil = P.id_perfil AND
+ PSU.id_sistema = $sistema AND
+ PPS.id_permiso = $perm ";
+
+ $sql.= (is_null($obs))?
+ " ORDER BY U.nombre":
+ " AND PPS.observaciones = '". $obs. "' ORDER BY U.nombre";
+
+ return $db->getAll($sql);
+
+ }
+
} // -X2C Class :SAMURAI_Perm
?>
\ No newline at end of file