/** * 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; }