public static function PasswordRecovery_Execute() { $response = new WebServiceClass(); try { $parameters = WebServiceClass::collectParameters(); $account = da_account::GetAccountByID($parameters->AccountID); if ($account != NULL) { if ($account->email != "" && $parameters->Email == $account->email) { if ($account->confirmation_guid == $parameters->ConfirmationCode) { $accountModificationTime = new DateTime($account->modified_datetime); $currentDateTime = new DateTime(DA_Helper::GetServerDate()); $difference = $currentDateTime->diff($accountModificationTime); if ($difference->d == 0) { $account->pwd_hash = sha1($parameters->Password); $savedAccount = da_account::UpdateAccount($account); if ($savedAccount != NULL && $savedAccount->account_id == $account->account_id) { $response->status = "OK"; $response->message = "Contraseña Actualizada Satisfactoriamente"; WebServiceClass::sendPWRecoveryEmail($account); } else { $response->status = "ERROR"; $response->message = "Solicitud Inválida"; } } else { $response->status = "ERROR"; $response->message = "Solicitud Expirada"; } } else { $response->status = "ERROR"; $response->message = "Solicitud Inválida"; } } else { $response->status = "ERROR"; $response->message = "Solicitud Inválida"; } } else { $response->status = "ERROR"; $response->message = "Solicitud Inválida"; } } catch (Exception $ex) { $response->status = "EXCEPTION"; $response->message = $ex->getMessage(); } return $response; }
public static function PasswordRecovery() { $response = new WebServiceClass(); try { $confirmationID = uniqid(); $parameters = WebServiceClass::collectParameters(); $account = da_account::GetAccount($parameters->email); $account->confirmation_guid = $confirmationID; $savedAccount = da_account::UpdateAccount($account); WebServiceClass::sendPWRecoveryEmail($savedAccount); $response->status = "OK"; $response->message = "Solicitud de recuperación de clave tramitada."; } catch (Exception $ex) { $response->status = "EXCEPTION"; $response->message = $ex->getMessage(); } return $response; }
public static function ChangePassword() { $response = new WebServiceClass(); try { $account_id = NULL; // Session Validation INCLUDE will populate this variable include './inc/incWebServiceSessionValidation.php'; $parameters = WebServiceClass::collectParameters(); /** * @var be_account */ $activatedAccount = da_account::GetAccountByID($account_id); $currentPasswordHash = sha1($parameters->old_password); $oldPasswordHash = $activatedAccount->pwd_hash; $newPasswordHash = sha1($parameters->new_password); $parameters->ophash = $oldPasswordHash; $parameters->cphash = $currentPasswordHash; $parameters->nphash = $newPasswordHash; $parameters->account = $activatedAccount; $parameters->account_id = $account_id; if ($currentPasswordHash == $oldPasswordHash) { $activatedAccount->pwd_hash = $newPasswordHash; $savedAccount = da_account::UpdateAccount($activatedAccount); $parameters->savedAccount = $savedAccount; if ($savedAccount->pwd_hash == $activatedAccount->pwd_hash) { $response->status = "OK"; $response->message = "Clave fue cambiada exitosamente"; } else { $response->status = "ERROR"; $response->data = $parameters; $response->message = "Ocurrió un error inesperado al guardar la nueva clave"; } } else { $response->status = "ERROR"; $response->message = "Clave actual incorrecta"; $response->data = $parameters; } } catch (Exception $ex) { $response->status = "EXCEPTION"; $response->message = $ex->getMessage(); } return $response; }