/** * Setea un mensaje * * @param string $name Tipo de mensaje y para CSS class='$name'. * @param string $msg Mensaje a mostrar * @param boolean $audit Indica si el mensaje se almacena como auditoría */ public static function set($name, $msg, $audit = FALSE) { //Verifico si hay mensajes almacenados en sesión por otro request. if (self::hasMessage()) { self::$_contentMsj = Session::get('flash_message'); } //Guardo el mensaje en el array if (isset($_SERVER['SERVER_SOFTWARE'])) { $tmp_id = round(1, 5000); self::$_contentMsj[] = '<div id="alert-id-' . $tmp_id . '" class="alert alert-block alert-' . $name . '"><button type="button" class="close" data-dismiss="alert">×</button>' . $msg . '</div>' . PHP_EOL . '<script type="text/javascript">$("#alert-id-' . $tmp_id . '").hide().fadeIn(500).delay(4000).fadeOut(500);</script>'; } else { self::$_contentMsj[] = $name . ': ' . Filter::get($msg, 'striptags') . PHP_EOL; } //Almaceno los mensajes guardados en una variable de sesión, para mostrar los mensajes provenientes de otro request. Session::set('flash_message', self::$_contentMsj); //Verifico si el mensaje se almacena como looger if ($audit) { if ($name == 'success') { DwAudit::debug($msg); } else { if ($name == 'danger') { DwAudit::error($msg); } else { DwAudit::$name($msg); } } } }
/** * Setea un mensaje dw-flash * * @param string $name Tipo de mensaje y para CSS class='$name'. * @param string $msg Mensaje a mostrar * @param boolean $audit Indica si el mensaje se almacena como auditoría */ public static function set($name, $msg, $audit = FALSE) { //Verifico si hay mensajes almacenados en sesión por otro request. if (self::has('dw-messages')) { self::$_contentMsj = Session::get('dw-messages'); } //Guardo el mensaje en el array if (isset($_SERVER['SERVER_SOFTWARE'])) { self::$_contentMsj[] = '<div class="alert alert-block alert-' . $name . '"><button type="button" class="close" data-dismiss="alert">×</button>' . $msg . '</div>' . PHP_EOL; } else { self::$_contentMsj[] = $name . ': ' . Filter::get($msg, 'striptags') . PHP_EOL; } //Almaceno los mensajes guardados en una variable de sesión, para mostrar los mensajes provenientes de otro request. Session::set('dw-messages', self::$_contentMsj); //Verifico si el mensaje se almacena como looger if ($audit) { $name == 'success' ? DwAudit::debug($msg) : DwAudit::$name($msg); } }
/** * Método para restaurar el sistema * @param type $id */ public static function restoreBackup($id, $path = '') { $id = Filter::get($id, 'int'); if (empty($id)) { return FALSE; } $obj = new Backup(); if (!$obj->find_first($id)) { DwMessage::get('id_no_found'); return FALSE; } if (empty($path)) { $path = APP_PATH . 'temp/backup/'; } $file = $path . $obj->archivo; if (!is_file($file)) { DwMessage::error('Error: BKP-RES001. Se ha producido un error en la restauración del sistema. <br />No se pudo localizar el archivo de restaruación.'); return FALSE; } //Almaceno las copias de seguridad anteriores $old_backup = $obj->find('order: registrado_at ASC'); $system = $obj->_getSystem(TRUE); //Verifico el sistema operativo para la restauración $database = Config::get('config.application.database'); //tomo el entorno actual $config = $obj->_getConfig($database); //Tomo la configuración de conexión $exec = "gunzip < {$file} | {$system} -h " . $config['host'] . " -u " . $config['username'] . " --password="******" " . $config['name']; system($exec, $result); if (!$result) { //Inserto los backups anteriores foreach ($old_backup as $backup) { if ($backup->id >= $obj->id) { $obj->sql("REPLACE INTO `backup` (`id`,`usuario_id`,`denominacion`,`tamano`,`archivo`,`registrado_at`) VALUES ('{$backup->id}', '{$backup->usuario_id}', '{$backup->denominacion}', '{$backup->tamano}', '{$backup->archivo}', '{$backup->registrado_at}')"); } } if ($obj) { DwAudit::debug("Se ha restaurado el sistema con la copia de seguridad: {$obj->denominacion}"); } return $obj ? $obj : FALSE; } return FALSE; }
/** * Callback que se ejecuta desupés de crear un registro */ public function after_create() { //Obtengo el usuario por la relación definida en el initialize $usuario = $this->getUsuario(); if ($this->estado_usuario == self::COD_ACTIVO) { DwAudit::debug("Se activa el acceso al usuario {$usuario->login}. Motivo: {$this->descripcion}"); } else { if ($this->estado_usuario == self::COD_BLOQUEADO) { DwAudit::debug("Se bloquea el acceso al sistema al usuario {$usuario->login}. Motivo: {$this->descripcion}"); } } }
/** * Método para crear/modificar un objeto de base de datos * * @param string $medthod: create, update * @param array $data: Data para autocargar el modelo * @param array $otherData: Data adicional para autocargar * * @return object ActiveRecord */ public static function setUsuario($method, $data, $optData = null) { $obj = new Usuario($data); if ($optData) { $obj->dump_result_self($optData); } if (!empty($obj->id)) { //Si va a actualizar $old = new Usuario(); $old->find_first($obj->id); if (!empty($obj->oldpassword)) { //Si cambia de claves if (empty($obj->password) or empty($obj->repassword)) { Flash::error("Indica la nueva contraseña"); return false; } $obj->oldpassword = sha1($obj->oldpassword); if ($obj->oldpassword !== $old->password) { Flash::error("La contraseña anterior no coincide con la registrada. Verifica los datos e intente nuevamente"); return false; } } } //Verifico si las contraseñas coinciden (password y repassword) if (!empty($obj->password) && !empty($obj->repassword) or $method == 'create') { if ($method == 'create' && empty($obj->password)) { Flash::error("Indica la contraseña para el inicio de sesión"); return false; } $obj->password = sha1($obj->password); $obj->repassword = sha1($obj->repassword); if ($obj->password !== $obj->repassword) { Flash::error('Las contraseñas no coinciden. Verifica los datos e intenta nuevamente.'); return 'cancel'; } } else { if (isset($obj->id)) { //Mantengo la contraseña anterior $obj->password = $old->password; } } $rs = $obj->{$method}(); if ($rs) { $method == 'create' ? DwAudit::debug("Se ha registrado el usuario {$obj->login} en el sistema") : DwAudit::debug("Se ha modificado la información del usuario {$obj->login}"); } return $rs ? $obj : FALSE; }
/** * Método para crear/modificar un objeto de base de datos * * @param string $medthod: create, update * @param array $data: Data para autocargar el modelo * @param array $otherData: Data adicional para autocargar * * @return object ActiveRecord */ public static function setUsuario($method, $data, $optData = null) { $obj = new Usuario($data); if ($optData) { $obj->dump_result_self($optData); } if (!empty($obj->id)) { //Si va a actualizar $old = new Usuario(); $old->find_first($obj->id); } $rs = $obj->{$method}(); if ($rs) { $method == 'create' ? DwAudit::debug("Se ha registrado el usuario {$obj->login} en el sistema") : DwAudit::debug("Se ha modificado la información del usuario {$obj->login}"); } return $rs ? $obj : FALSE; }
/** * Método para crear/modificar un objeto de base de datos * * @param string $medthod: create, update * @param array $data: Data para autocargar el modelo * @param array $otherData: Data adicional para autocargar * * @return object ActiveRecord */ public static function setClave($method, $data, $optData = null) { $obj = new UsuarioClave($data); if ($optData) { $obj->dump_result_self($optData); } if (!empty($obj->id)) { //Si va a actualizar $old = new UsuarioClave(); $old->find_first($obj->id); if (!empty($obj->oldpassword)) { //Si cambia de claves if (empty($obj->password) or empty($obj->repassword)) { DwMessage::error("Indica la nueva contraseña"); return false; } $obj->oldpassword = md5(sha1(strtoupper($obj->oldpassword))); if ($obj->oldpassword !== $old->password) { DwMessage::error("La contraseña anterior no coincide con la registrada. Verifica los datos e intente nuevamente"); return false; } } } //Verifico si las contraseñas coinciden (password y repassword) if (!empty($obj->password) && !empty($obj->repassword) or $method == 'create') { if ($method == 'create' && empty($obj->password)) { DwMessage::error("Indica la contraseña para el inicio de sesión"); return false; } $obj->password = md5(sha1(strtoupper($obj->password))); //$obj->repassword = md5(sha1($obj->repassword)); mientras luego borrar lo de abajo $obj->repassword = $obj->password; if ($obj->password !== $obj->repassword) { DwMessage::error('Las contraseñas no coinciden. Verifica los datos e intenta nuevamente.'); return 'cancel'; } } else { if (isset($obj->id)) { //Mantengo la contraseña anterior $obj->password = $old->password; } } $obj->fecha_inicio = date('Y-m-d'); $configseg = new Configuracion(); $configseg1 = $configseg->getInformacionConfiguracion(); $nuevafecha = strtotime('+' . $configseg1->dias_caducidad_clave . ' day', strtotime($obj->fecha_inicio)); $nuevafecha = date('Y-m-j', $nuevafecha); $obj->fecha_fin = $nuevafecha; //return DwMessage::error('La configuracion es: '.$configseg1->dias_caducidad_clave.' la fecha inicio es: '.$obj->fecha_inicio.' la fecha final es: '.$nuevafecha.'.'); //$fecha = date('Y-m-j'); //$nuevafecha = strtotime ( '+2 day' , strtotime ( $fecha ) ) ; //$nuevafecha = date ( 'Y-m-j' , $nuevafecha ); //echo $nuevafecha; $rs = $obj->{$method}(); if ($rs) { $method == 'create' ? DwAudit::debug("Se ha registrado el usuario {$obj->usuario_id} en el sistema") : DwAudit::debug("Se ha modificado la información del usuario {$obj->usuario_id}"); } return $rs ? $obj : FALSE; }