changePassword($VARS['oldpass'], $VARS['newpass'], $VARS['conpass']); if ($result === TRUE) { returnToSender("password_updated"); } } catch (PasswordMatchException $e) { returnToSender("passwords_same"); } catch (PasswordMismatchException $e) { returnToSender("new_password_mismatch"); } catch (IncorrectPasswordException $e) { returnToSender("old_password_mismatch"); } catch (WeakPasswordException $e) { returnToSender("weak_password"); } break; case "chpin": $error = []; if (!($VARS['newpin'] == "" || (is_numeric($VARS['newpin']) && strlen($VARS['newpin']) >= 1 && strlen($VARS['newpin']) <= 8))) { returnToSender("invalid_pin_format"); } if ($VARS['newpin'] == $VARS['conpin']) { $database->update('accounts', ['pin' => ($VARS['newpin'] == "" ? null : $VARS['newpin'])], ['uid' => $_SESSION['uid']]); returnToSender("pin_updated"); } returnToSender("new_pin_mismatch"); break; case "add2fa": if (is_empty($VARS['secret'])) { returnToSender("invalid_parameters"); } $user = new User($_SESSION['uid']); $totp = new TOTP(null, $VARS['secret']); if (!$totp->verify($VARS["totpcode"])) { returnToSender("2fa_wrong_code"); } $user->save2fa($VARS['secret']); Log::insert(LogType::ADDED_2FA, $user); returnToSender("2fa_enabled"); case "rm2fa": (new User($_SESSION['uid']))->save2fa(""); Log::insert(LogType::REMOVED_2FA, $_SESSION['uid']); returnToSender("2fa_removed"); break; }