*/
var $_permisos;
+ /**
+ * @var int $idSistema
+ * @access protected
+ */
+ var $_idSistema;
+
/**
* Gets Id.
*
*
* @param SAMURAI_DB &$db Objeto conexion
* @param int $id Identificador del perfil.
+ * @param int $idSistema Identificador del sistema en el que se esta trabajando
*
* @return void
* @access public
*/
- function SAMURAI_Perfil(&$db, $id = null) // ~X2C
+ function SAMURAI_Perfil(&$db, $id = null, $idSistema = null) // ~X2C
{
$this->_db = $db;
if (!is_null($id)) {
$this->setId($id);
+ $this->_idSistema = $idSistema;
$this->_obtenerDatosDb();
}
else {
$this->_descripcion = null;
$this->_tipo = null;
$this->_permisos = null;
+ $this->_idSistema = null;
}
}
// -X2C
//OBTENGO EL TIPO DE PERFIL
$tmp = $sql['verificar_asociacion'];
$dbh = $this->_db->prepare($tmp);
- $tmp = array ($this->getId(), $_SESSION['samurai']['id_sistema']);
+ $tmp = array ($this->getId(), $this->_idSistema);
$res = $this->_db->execute($dbh,$tmp);
$re = $res->fetchrow(DB_FETCHMODE_ASSOC);
$this->setTipo($re['tipo_perfil']);
//OBTENGO LOS PERMISOS QUE TIENE ASIGNADO EL PERFIL DESDE PERM_PERFIL_SIST
$tmp = $sql['obtener_permisos'];
$dbh = $this->_db->prepare($tmp);
- $tmp = array ($this->getId(), $_SESSION['samurai']['id_sistema']);
+ $tmp = array ($this->getId(), $this->_idSistema);
$res = $this->_db->execute($dbh,$tmp);
$rta = array ();
while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
}
//GRABO EN PERFIL_SIST
$datos = array ('id_perfil' => $this->getId(),
- 'id_sistema' => $_SESSION['samurai']['id_sistema'],
+ 'id_sistema' => $this->_idSistema,
'tipo_perfil' => $this->getTipo(),
'responsable' => $this->getResponsable(),
);
//Verifico en perfil_sist_usuario
$tmp = $sql['verif_perfil_sist_usuario'];
$dbh = $this->_db->prepare($tmp);
- $datos = array ($this->getId(), $_SESSION['samurai']['id_sistema']);
+ $datos = array ($this->getId(), $this->_idSistema);
$res = $this->_db->execute($dbh, $datos);
if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta'] == 0) {
return new PEAR_Error("Hay usuarios asociados al perfil seleccionado");
//Borro perfil_sist
$tmp = $sql['borrar_perfil_sist'];
$dbh = $this->_db->prepare($tmp);
- $datos = array ($this->getId(), $_SESSION['samurai']['id_sistema']);
+ $datos = array ($this->getId(), $this->_idSistema);
$res = $this->_db->execute($dbh, $datos);
if (PEAR::isError($res)) {
return $res;
'tipo_perfil' => $this->getTipo(),
'responsable' => $this->getResponsable(),
);
- $res = $this->_db->autoExecute('perfil_sist', $datos, DB_AUTOQUERY_UPDATE, 'id_perfil ='.$this->getId().' AND id_sistema='.$_SESSION['samurai']['id_sistema']);
+ $res = $this->_db->autoExecute('perfil_sist', $datos,
+ DB_AUTOQUERY_UPDATE, 'id_perfil ='.$this->getId().' AND
+ id_sistema='.$this->_idSistema);
if (PEAR::isError($res)) {
return $res;
}
{
$rta = array ();
foreach (SAMURAI_Perfil::_getIdPerfiles($db, $filtro, $id_sistema) as $id) {
- $tmp = new SAMURAI_Perfil($db,$id);
+ $tmp = new SAMURAI_Perfil($db,$id, $id_sistema);
array_push($rta, $tmp);
}
return $rta;
$re = $this->_db->autoPrepare('perm_perfil_sist', $datos, DB_AUTOQUERY_INSERT);
foreach ($this->getPermisos() as $permiso) {
list($id, $obs) = split ('##',$permiso);
- $datos = array ($id, $this->getId(), $_SESSION['samurai']['id_sistema'], $obs, $this->getResponsable());
+ $datos = array ($id, $this->getId(), $this->_idSistema, $obs, $this->getResponsable());
$res = $this->_db->execute($re, $datos);
if (PEAR::isError($res)) {
return $res;
$sql = parse_ini_file(dirname(__FILE__) . '/Perfil/consultas.ini', true);
$tmp = $sql['borrar_permisos'];
$dbh = $this->_db->prepare($tmp);
- $tmp = array ($this->getId(), $_SESSION['samurai']['id_sistema']);
+ $tmp = array ($this->getId(), $this->_idSistema);
return $this->_db->execute($dbh,$tmp);
}
// -X2C
$sql = parse_ini_file(dirname(__FILE__) . '/Perfil/consultas.ini', true);
$tmp = $sql['verif_perm_perfil_sist'];
$dbh = $this->_db->prepare($tmp);
- $tmp = array ($_SESSION['samurai']['id_sistema']);
+ $tmp = array ($this->_idSistema);
$res = $this->_db->execute($dbh,$tmp);
$perm = array();
while ($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
$rta1 = array_diff($p, $this->getPermisos());
$rta2 = array_diff($this->getPermisos(), $p);
if (!$rta1 && !$rta2) {
- $perf = new SAMURAI_Perfil($this->_db, $key);
+ $perf = new SAMURAI_Perfil($this->_db, $key, $this->_idSistema);
if ($perf->getDescripcion() != $this->getDescripcion()) {
return new PEAR_Error("El perfil \"".$perf->getDescripcion()."\" contiene los mismos permisos.");
}
} // -X2C Class :SAMURAI_Perfil
-?>
\ No newline at end of file
+?>