From cc70e49472290bae60f28726af4209be95a6ec79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Eric=20Dub=C3=A9?=
<7225168+KernelDeimos@users.noreply.github.com>
Date: Tue, 10 Mar 2026 03:08:29 -0400
Subject: [PATCH] Fix missing password entry (#2632)
* Revert "dev(oidc): hide unnecessary div"
This reverts commit 468558f8dc597a4e903596d157f803e71c983a4a.
* fix(oidc): remove the "You will be asked to..." box properly
Earlier this was removed with a simple `display: none` in CSS to avoid
changing any logic, and the reason for that was OIDC had already gone
through significant testing, re-testing, and bug fixes; it became clear
that changes to the auth flow are fragile and the test surface is very
large. Now unfortunately what seemed like a smart decision to fix a
cosmetic issue with CSS instead of updating logic actually wound up
breaking the change username/password flow for non-OIDC users. This
commit removes this box properly and hopefully does not introduce a
subsequent terrible bug. Why would it? There's absolutely no reason I
can see that it would, but it would seem that nothing is safe, not even
CSS.
* temp: disable LRU cache of homepage for now
This is working fine but we're disabling it temporarily so we can test
specific future changes in isolation without managing two separate
branches.
* fix: put verify password text in the box
There's always something...
---
src/backend/src/services/PuterHomepageService.js | 13 ++++++++++---
src/gui/src/UI/Settings/UIWindowChangeEmail.js | 9 ++-------
src/gui/src/UI/Settings/UIWindowDisable2FA.js | 9 ++-------
src/gui/src/UI/UIWindowChangePassword.js | 9 ++-------
src/gui/src/UI/UIWindowChangeUsername.js | 11 +++--------
5 files changed, 19 insertions(+), 32 deletions(-)
diff --git a/src/backend/src/services/PuterHomepageService.js b/src/backend/src/services/PuterHomepageService.js
index 04ca20567..e882ffce0 100644
--- a/src/backend/src/services/PuterHomepageService.js
+++ b/src/backend/src/services/PuterHomepageService.js
@@ -17,12 +17,12 @@
* along with this program. If not, see .
*/
import { encode } from 'html-entities';
+import { LRUCache } from 'lru-cache';
+import fs from 'node:fs';
import { is_valid_url } from '../helpers.js';
import { Endpoint } from '../util/expressutil.js';
import { PathBuilder } from '../util/pathutil.js';
import BaseService from './BaseService.js';
-import fs from 'node:fs';
-import { LRUCache } from 'lru-cache';
/**
* PuterHomepageService serves the initial HTML page that loads the Puter GUI
* and all of its assets.
@@ -194,7 +194,14 @@ export class PuterHomepageService extends BaseService {
},
});
- this.#outputCache.set(cacheKey, outputHTML);
+ // TODO: we will re-enable this shortly (within 24 hours)
+ //
+ // It is currently disabled so that we can determine the impact on
+ // performance of b687ba0 (not b687ba0 specifically but the subsequent
+ // fixed version of b687ba0) in isolation without confounding
+ // variables.
+ //
+ // this.#outputCache.set(cacheKey, outputHTML);
res.send(outputHTML);
}
diff --git a/src/gui/src/UI/Settings/UIWindowChangeEmail.js b/src/gui/src/UI/Settings/UIWindowChangeEmail.js
index 908f32b16..0e45b0d54 100644
--- a/src/gui/src/UI/Settings/UIWindowChangeEmail.js
+++ b/src/gui/src/UI/Settings/UIWindowChangeEmail.js
@@ -43,7 +43,7 @@ async function UIWindowChangeEmail (options) {
h += ``;
h += '';
// password / OIDC revalidate
- h += '
';
+ h += '
';
h += '
';
h += ``;
h += `${place_password_entry.html}`;
@@ -86,11 +86,7 @@ async function UIWindowChangeEmail (options) {
const authRow = $(this_window).find('.change-email-auth-row');
if ( oidc_only ) {
authRow.find('.change-email-password-wrap').hide();
- const oidcWrap = authRow.find('.change-email-oidc-wrap').show();
- oidcWrap.find('.change-email-oidc-flow-notice').text(
- i18n('revalidate_flow_notice') ||
- 'You will be asked to sign in with your linked account when you continue.',
- );
+ // OIDC: no notice box; user will see revalidation when they continue
} else {
authRow.find('.change-email-oidc-wrap').hide();
}
@@ -126,7 +122,6 @@ async function UIWindowChangeEmail (options) {
} finally {
hint.hide();
}
- $(el_window).find('.change-email-revalidated-msg').text(i18n('revalidated') || 'Re-validated.').show();
};
$(el_window).find('.change-email-btn').on('click', async function (e) {
diff --git a/src/gui/src/UI/Settings/UIWindowDisable2FA.js b/src/gui/src/UI/Settings/UIWindowDisable2FA.js
index 1b5e8388b..0aef9c476 100644
--- a/src/gui/src/UI/Settings/UIWindowDisable2FA.js
+++ b/src/gui/src/UI/Settings/UIWindowDisable2FA.js
@@ -40,7 +40,7 @@ async function UIWindowDisable2FA (options) {
h += '
';
h += `
${i18n('disable_2fa_instructions')}
`;
h += '
';
- h += '
';
+ h += '
';
h += '
';
h += ``;
h += `${place_password_entry.html}`;
@@ -87,11 +87,7 @@ async function UIWindowDisable2FA (options) {
const authRow = $(this_window).find('.disable-2fa-auth-row');
if ( oidc_only ) {
authRow.find('.disable-2fa-password-wrap').hide();
- const oidcWrap = authRow.find('.disable-2fa-oidc-wrap').show();
- oidcWrap.find('.disable-2fa-oidc-flow-notice').text(
- i18n('revalidate_flow_notice') ||
- 'You will be asked to sign in with your linked account when you continue.',
- );
+ // OIDC: no notice box; user will see revalidation when they continue
} else {
authRow.find('.disable-2fa-oidc-wrap').hide();
}
@@ -127,7 +123,6 @@ async function UIWindowDisable2FA (options) {
} finally {
hint.hide();
}
- $(el_window).find('.disable-2fa-revalidated-msg').text(i18n('revalidated') || 'Re-validated.').show();
};
$(el_window).find('.disable-2fa-btn').on('click', async function (e) {
diff --git a/src/gui/src/UI/UIWindowChangePassword.js b/src/gui/src/UI/UIWindowChangePassword.js
index dc5ff08b8..e4d1aa905 100644
--- a/src/gui/src/UI/UIWindowChangePassword.js
+++ b/src/gui/src/UI/UIWindowChangePassword.js
@@ -32,7 +32,7 @@ async function UIWindowChangePassword (options) {
// success msg
h += '';
// current password / OIDC revalidate
- h += '
';
+ h += '
';
h += '
';
h += ``;
h += ``;
@@ -85,11 +85,7 @@ async function UIWindowChangePassword (options) {
const authRow = $(this_window).find('.change-password-auth-row');
if ( oidc_only ) {
authRow.find('.change-password-current-wrap').hide();
- const oidcWrap = authRow.find('.change-password-oidc-wrap').show();
- oidcWrap.find('.change-password-oidc-flow-notice').text(
- i18n('revalidate_flow_notice') ||
- 'You will be asked to sign in with your linked account when you continue.',
- );
+ // OIDC: no notice box; user will see revalidation when they continue
} else {
authRow.find('.change-password-oidc-wrap').hide();
}
@@ -123,7 +119,6 @@ async function UIWindowChangePassword (options) {
} finally {
hint.hide();
}
- $(el_window).find('.change-password-revalidated-msg').text(i18n('revalidated') || 'Re-validated.').show();
};
$(el_window).find('.change-password-btn').on('click', async function (e) {
diff --git a/src/gui/src/UI/UIWindowChangeUsername.js b/src/gui/src/UI/UIWindowChangeUsername.js
index b8c2c3178..abbd5ee15 100644
--- a/src/gui/src/UI/UIWindowChangeUsername.js
+++ b/src/gui/src/UI/UIWindowChangeUsername.js
@@ -33,9 +33,9 @@ async function UIWindowChangeUsername (options) {
h += ``;
h += ``;
h += '
';
- h += '
';
- h += ``;
+ h += '
';
h += '
';
+ h += ``;
h += ``;
h += '
';
h += '
';
@@ -74,11 +74,7 @@ async function UIWindowChangeUsername (options) {
const authRow = $(this_window).find('.change-username-auth-row');
if ( oidc_only ) {
authRow.find('.change-username-password-wrap').hide();
- const oidcWrap = authRow.find('.change-username-oidc-wrap').show();
- oidcWrap.find('.change-username-oidc-flow-notice').text(
- i18n('revalidate_flow_notice') ||
- 'You will be asked to sign in with your linked account when you continue.',
- );
+ // OIDC: no notice box; user will see revalidation when they continue
} else {
authRow.find('.change-username-oidc-wrap').hide();
}
@@ -112,7 +108,6 @@ async function UIWindowChangeUsername (options) {
} finally {
hint.hide();
}
- $(el_window).find('.change-username-revalidated-msg').text(i18n('revalidated') || 'Re-validated.').show();
};
$(el_window).find('.change-username-btn').on('click', async function (e) {