Beispiel #1
0
    // if (!isset($body->recaptcha_response) ||
    //     gettype($body->recaptcha_response) !== 'string') {
    //    throw new InvalidRecaptcha;
    // }
    // $recaptchaStuff = new ReCaptcha(Tool::getConfig()['recaptcha_secret']);
    // $resp = $recaptchaStuff->verify($body->recaptcha_response);
    // if (!$resp->isSuccess()) {
    //     throw new InvalidRecaptcha;
    // }
    // -- </this_is_not_used_for_now>
    $user = User::where('email', '=', $body->email)->first();
    if (!$user) {
        throw new AccountNotFound();
    }
    $resetPasswordToken = new ResetPasswordToken();
    $resetPasswordToken->token = Tool::randomSha1();
    $resetPasswordToken->user_id = $user->id;
    $resetPasswordToken->save();
    $mailer = new Mailer();
    $mailer->sendMail('reset_your_password.html', [$user->email], 'Reset your GLPi Plugin Directory password', ['user' => $user, 'reset_password_token' => $resetPasswordToken->token]);
    $app->halt(200);
});
$user_reset_password = Tool::makeEndpoint(function () use($app) {
    $body = Tool::getBody();
    // rejecting if token not provided as a string
    if (!isset($body->token) || gettype($body->token) !== 'string') {
        throw new WrongPasswordResetToken();
    }
    $token = ResetPasswordToken::where('token', '=', $body->token)->first();
    // rejecting if no password given
    if (!isset($body->password) || gettype($body->password) !== 'string') {