00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 require_once 'PEAR.php';
00028
00029
00035 class SAMURAI_Permiso {
00042 var $_id;
00043
00050 var $_descripcion;
00051
00058 var $_db;
00059
00066 var $_responsable;
00067
00074 function getId()
00075 {
00076 return $this->_id;
00077 }
00086 function setId($id)
00087 {
00088 $this->_id = $id;
00089 }
00090
00097 function getDescripcion()
00098 {
00099 return $this->_descripcion;
00100 }
00109 function setDescripcion($descripcion)
00110 {
00111 $this->_descripcion = $descripcion;
00112 }
00113
00120 function getResponsable()
00121 {
00122 return $this->_responsable;
00123 }
00132 function setResponsable($responsable)
00133 {
00134 $this->_responsable = $responsable;
00135 }
00136
00137
00138
00139
00149 function SAMURAI_Permiso(&$db, $id = null)
00150 {
00151 $this->_db = $db;
00152 $this->_id = $id;
00153 $this->setDescripcion(null);
00154 if (!is_null($id)) {
00155 $this->_obtenerDatosDb();
00156 }
00157 }
00158
00159
00160
00167 function _obtenerDatosDb()
00168 {
00169 $sql = parse_ini_file(dirname(__FILE__) . '/Permiso/consultas.ini', true);
00170 $tmp = $sql['obtener_datos_permiso'].$sql['obtener_datos_permiso2'];
00171 $dbh = $this->_db->prepare($tmp);
00172 $tmp = array ($this->_id);
00173 $res = $this->_db->execute($dbh,$tmp);
00174
00175 if ($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
00176 if (isset($re['desc_permiso'])) {
00177 $this->setDescripcion($re['desc_permiso']);
00178 }
00179 else {
00180 $this->setDescripcion();
00181 }
00182 if (isset($re['responsable'])) {
00183 $this->setResponsable($re['responsable']);
00184 }
00185 else {
00186 $this->setResponsable();
00187 }
00188 }
00189 }
00190
00191
00192
00193
00194
00203 function guardarDatos($accion = grabar)
00204 {
00205 $accion = strtolower($accion);
00206 switch ($accion) {
00207 case 'grabar':
00208 $res = $this->_grabarDb();
00209 break;
00210 case 'modificar':
00211 $res = $this->_modificarDb();
00212 break;
00213 case 'eliminar':
00214 $res = $this->_borrarDb();
00215 break;
00216 }
00217 return $res;
00218 }
00219
00220
00221
00228 function _grabarDb()
00229 {
00230 $idPermiso = $this->_db->nextId('permiso');
00231 $datos = array (
00232 'id_permiso' => $idPermiso,
00233 'desc_permiso' => $this->getDescripcion(),
00234 'responsable' => $this->getResponsable(),
00235 );
00236 return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_INSERT);
00237 }
00238
00239
00240
00247 function _borrarDb()
00248 {
00249 $sql = parse_ini_file(dirname(__FILE__) . '/Permiso/consultas.ini', true);
00250 $datos[] = $this->getId();
00251
00252 $tmp = $sql['verificar_asociaciones1'].$sql['obtener_datos_permiso2'];
00253 $dbh = $this->_db->prepare($tmp);
00254 $res = $this->_db->execute($dbh, $datos);
00255 if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta'] == 0) {
00256 return new PEAR_Error("Hay sistemas asociados al permiso seleccionado");
00257 }
00258 $tmp = $sql['verificar_asociaciones2'].$sql['obtener_datos_permiso2'];
00259 $dbh = $this->_db->prepare($tmp);
00260 $res = $this->_db->execute($dbh, $datos);
00261 if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta'] == 0) {
00262 return new PEAR_Error("Hay pefiles asociados al permiso seleccionado");
00263 }
00264
00265
00266 $tmp = $sql['borrar_permiso'].$sql['obtener_datos_permiso2'];
00267 $dbh = $this->_db->prepare($tmp);
00268 return $this->_db->execute($dbh, $datos);
00269
00270 }
00271
00272
00273
00280 function _modificarDb()
00281 {
00282 $datos = array (
00283 'id_permiso' => $this->getId(),
00284 'desc_permiso' => $this->getDescripcion(),
00285 'responsable' => $this->getResponsable(),
00286 );
00287 return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_UPDATE, 'id_permiso ='.$this->getId());
00288 }
00289
00290
00291
00292
00302 function _getIdPermisos(&$db)
00303 {
00304
00305 $rta = array();
00306 $sql = parse_ini_file(dirname(__FILE__) . '/Permiso/consultas.ini', true);
00307 $dbh = $db->prepare($sql['obtener_datos_permiso']);
00308 $tmp[] = $_SESSION['samurai']['id_sistema'];
00309 $res = $db->execute($dbh, $tmp);
00310 while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
00311 array_push($rta,$re['id_permiso']);
00312 }
00313 $res->free();
00314 return $rta;
00315 }
00316
00317
00318
00328 function getArrayPermisos(&$db)
00329 {
00330
00331 $rta = array ();
00332 foreach (SAMURAI_Permiso::getPermisos($db) as $permiso) {
00333 $rta[$permiso->getId()] = $permiso->getDescripcion();
00334 }
00335 return $rta;
00336 }
00337
00338
00339
00349 function getPermisos(&$db)
00350 {
00351 $rta = array ();
00352 foreach (SAMURAI_Permiso::_getIdPermisos($db) as $id) {
00353 $tmp = new SAMURAI_Permiso($db,$id);
00354 array_push($rta, $tmp);
00355 }
00356 return $rta;
00357 }
00358
00359
00360 }
00361
00362 ?>