From 64804781678118a9061fad644fe31921ccd59733 Mon Sep 17 00:00:00 2001 From: Rephl3x Date: Fri, 23 Jan 2026 20:16:19 +1300 Subject: [PATCH] Remove password fields from users page --- .dockerignore | 11 +++++++ .gitignore | 2 ++ backend/Dockerfile | 1 + data/branding/favicon.ico | Bin 0 -> 4949 bytes data/branding/logo.png | Bin 0 -> 39001 bytes docker-compose.yml | 4 +-- frontend/app/users/page.tsx | 59 ------------------------------------ 7 files changed, 16 insertions(+), 61 deletions(-) create mode 100644 .dockerignore create mode 100644 data/branding/favicon.ico create mode 100644 data/branding/logo.png diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..85d5f67 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,11 @@ +.git +.env +*.log +data/* +!data/branding/ +!data/branding/** +frontend/node_modules/ +frontend/.next/ +backend/__pycache__/ +**/__pycache__/ +**/*.pyc diff --git a/.gitignore b/.gitignore index 5c8cad8..916a6bb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ .env .venv/ data/ +!data/branding/ +!data/branding/** backend/__pycache__/ **/__pycache__/ *.pyc diff --git a/backend/Dockerfile b/backend/Dockerfile index 93712a6..af986e3 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -9,6 +9,7 @@ COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY app ./app +COPY data/branding /app/data/branding EXPOSE 8000 diff --git a/data/branding/favicon.ico b/data/branding/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..68b4d3d727e45c8f19a11426ffc879f5c2107dcf GIT binary patch literal 4949 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 P2*R1XTAStnI;?*IMq@nf literal 0 HcmV?d00001 diff --git a/data/branding/logo.png b/data/branding/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d76a78a1263f5eb726d78e7a28aaa1cee294e453 GIT binary patch literal 39001 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%0A8Q5?Ax%}uc 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[]) const [error, setError] = useState(null) const [loading, setLoading] = useState(true) - const [passwordInputs, setPasswordInputs] = useState>({}) - const [passwordStatus, setPasswordStatus] = useState>({}) const loadUsers = async () => { try { @@ -105,42 +103,6 @@ export default function UsersPage() { } } - const updateUserPassword = async (username: string) => { - const newPassword = passwordInputs[username] || '' - if (!newPassword || newPassword.length < 8) { - setPasswordStatus((current) => ({ - ...current, - [username]: 'Password must be at least 8 characters.', - })) - return - } - try { - const baseUrl = getApiBase() - const response = await authFetch( - `${baseUrl}/admin/users/${encodeURIComponent(username)}/password`, - { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ password: newPassword }), - } - ) - if (!response.ok) { - const text = await response.text() - throw new Error(text || 'Update failed') - } - setPasswordInputs((current) => ({ ...current, [username]: '' })) - setPasswordStatus((current) => ({ - ...current, - [username]: 'Password updated.', - })) - } catch (err) { - console.error(err) - setPasswordStatus((current) => ({ - ...current, - [username]: 'Could not update password.', - })) - } - } useEffect(() => { if (!getToken()) { @@ -197,27 +159,6 @@ export default function UsersPage() { {user.isBlocked ? 'Allow access' : 'Block access'} - {user.authProvider === 'local' && ( -
- - setPasswordInputs((current) => ({ - ...current, - [user.username]: event.target.value, - })) - } - /> - -
- )} - {passwordStatus[user.username] && ( -
{passwordStatus[user.username]}
- )} ))}