From 63cdecea6c08e3c159b50cf6450dda19b57c1511 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gruszczy=C5=84ski?= Date: Fri, 23 Oct 2026 23:29:52 +0200 Subject: [PATCH] 0.34.10 --- SHA256SUMS | 27 ++++++++++++--------------- langs/en_US.json | 2 ++ langs/pl_pl.json | 2 ++ src/admin/web/app/path-permissions.js | 9 ++++++--- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/SHA256SUMS b/SHA256SUMS index 5bc52d0..4a89e19 100644 --- a/SHA256SUMS +++ b/SHA256SUMS @@ -77,8 +77,8 @@ cb01fdef286f38b442dd9252c23c4f8e44eb72e9ecdd99adb926e8e9f6318bb1 integrations/r 96563a83e87cfb33e238c2a970ce36b1a1b51e91318d09b123c3755002ba2646 integrations/routeros-oci-build/build-routeros-oci.sh 3f267cafa16006e5456ade78ee2d5fae02cc7ce747839523068ffd8d7c98798a integrations/routeros-oci-build/docker-entrypoint.sh 13189fa546c3488dddd8efc80c47f6da5241e5fc28b79cbfe795414ea05c7a4f langs/README.md -32d376bbd80d77656c2a64b460e75486bb2af5d5360f18b3d45e3d237791b6eb langs/en_US.json -74090ff358a36220dcfa090abc8ccc576a890b889716181096c0ac40a4ab936f langs/pl_pl.json +3bd38496b4ca22c75f041e544af1fad0768ec551b6a493578fe18cdb3ca986da langs/en_US.json +312c803a799d9b8d8f2c3ab8541f8add81e7cd5790c1ac7275c90e4cb09eb1e9 langs/pl_pl.json a99ad040be10fa028351e290b9363236b3513a1cadbdc9fb9e0260d517b9b0ae make_zip.py e830d37dd1f81a4b0aa7d535f5bba69e34e433b0fd99cc8ee0b296786c32379a migrations/0002_admin.sql 20112cc82192098b8d602f1c4f7ca08712e9e1366c845fabb92753187c370d35 migrations/0003_certificate_renewals.sql @@ -135,8 +135,8 @@ b28a08ea996befe10949676f40fab5f1036a274c7d0ab1175cf5c43c59849dc3 src/admin/acce bcf131abdae425a85b5a54ade51346f623de1e10fa08e18f7c10f1fd2dd0aec1 src/admin/api_token_access.rs 5f5b150bb8f51f57462e519650093354ae7b40fcb80c4380fd3391a33f4b30f2 src/admin/api_tokens.rs 34e851f725e8605e3c5d9946e56ac035996f3bd9d608169cba3408060d229c9b src/admin/certificate_api.rs -c767e3efa645c34ec1713840fa61967251c16a1e845895643b19028321e28f5b src/admin/certificate_inspection_tests.rs -00fa148123112d15917cdc750c3c466e67fa38af0e22571942b3cdd0d02733ef src/admin/certificates.rs +4a8b6406a44508b8ba102fef0d8309e871dbe0cbdbee1e6c8721baaca0c1aee1 src/admin/certificate_inspection_tests.rs +fe1934fe1ed611277a55485f187a4f62e1fbc3cd196676e64eb1deee4a4c0323 src/admin/certificates.rs 521ac794501570cfa2e8e50c3a5cec2ca08ee4dbce8ac9c0e0310c09612f1062 src/admin/config_reload.rs 159c3970d25fa29acf2483fc9422b003e5d63884713f62baa8375e4a4020730e src/admin/dashboard_presets.rs aae1ca0e70d987830bd63948d431f54302083148177c1b551565be12df7fe771 src/admin/documentation.rs @@ -164,12 +164,12 @@ e135431cb078ddb483165581123c64af8f00ea67acb3a395ec3e53c85d0d0d45 src/admin/sess 2d5b4c28fd0bd48b06890fa8ec44a2296de948c1f88eb2909f4b495710d4e13e src/admin/status_live.rs 8315c856cd50f1072593ecb30c274d42d82f078b5fb93e7c68a8857cd81b0841 src/admin/status_system.rs cadd7dca29b9aad8c77c7bc23dd249ea37a15adfa4d636a8ef00273a91ce35dc src/admin/tail.rs -26dbfdf3b6971dfdc2646710e1cb3dd6980b1fa1fbb10fe8558b12320db5262c src/admin/tests.rs +db52f794a732bf644499b2243694e7e04096cd4e269e35e89ce0b53a89fc0dd2 src/admin/tests.rs c18c369124368f58524652565102817ed69fd25b222b0c5e737ef7632b45dcfb src/admin/web/acl-picker.js 48fcd818c522fe80f2c7b2e218f87de6a7772ffd0a24e93502780b03ec78e335 src/admin/web/acme.js 86abf50f39862d821cd2e43ca425671aa85289272915132c5a9a5dd1fc4182e2 src/admin/web/api-tokens.js c0d08c5b8fc13dec9bf53fd842d224b9df3874fc3bdf31413e3ab182a8cec2aa src/admin/web/app/backend-dashboard.js -6a7d88a5ad574c684b52758693da8e5d90d9b5379bc96f983e5c130ca351a8b3 src/admin/web/app/certificate-inspection.js +aed3aea4eef0011c6b51d39736782e7d1ec52662e422f40e0c7b9ddfc19d0378 src/admin/web/app/certificate-inspection.js a085ee336e6669229f3ad2f74536f19bd088412ca79bcaff30dff293f1e1baf9 src/admin/web/app/chart-scales.js d6c5448db12de34a7bb4924411b44d09c7144bc3e659bd3c8a7c0ebf1938da1c src/admin/web/app/config-history.js c8e1d31a7bf77d9e4f4be979bf6a7474369aae3e1e46e6b30d1a76677fa3d762 src/admin/web/app/core.js @@ -180,11 +180,11 @@ bfb3fbac62f9ff762a298d9c06808ae81ae55de7a41e0bb35ce5c167f333ffe2 src/admin/web/ 5e62cccf6a9507fe208e9f41bbd08453c3d8c6a6b83c56d93a2bb22550ea6e9a src/admin/web/app/overview-masonry.js b52456b41451f156edf5f58492119c22726f2cf40cee938527748997e8ee7412 src/admin/web/app/overview-samples.js d997f62e8bd7ac9d4f16bb302800c98ad943afab663bb0b212ea26c35b58de11 src/admin/web/app/overview-wide-metrics.js -29c80fda23531dcbf0bcd079d0cd6992c1e89eced4e3ce4b0f16a795692366f2 src/admin/web/app/path-permissions.js +717820edf68b51af47b94ce18367635da99b36ce7331f44a0ec9f06e6f59ca4b src/admin/web/app/path-permissions.js 5bde5f0881320464eb133cd44de9eff5211e6816e79f7f7e9574b16784fab126 src/admin/web/app/preferences.js 8e75b0915edfbadefc4388701431541f4d35fd5d717363297b63740b3afd34d2 src/admin/web/app/rate-sampling.js 43f4dddd1c3ea7fa42eeb9d7b655a8db48b5ddcc6c68213e08dfc2fcfbe8b17d src/admin/web/app/refresh.js -5230db4a345406c45203cd066f1d7096c7e663f7ff8ebfce7b3a4711dd7f56d9 src/admin/web/app/runtime.js +f0edfb4541dc85cf048aa99f9db0e21be8d87108d02beaad3a298b3a5fbd94a3 src/admin/web/app/runtime.js 31201586925e6f4792071d7d03fb05dcc4a69a03c02a4e85eb0746f45af68074 src/admin/web/app/session-resume.js fa00bce2651308a4e0b1303cc0146be17ed4794b67b2f0cebfaf861558d8c78c src/admin/web/app/settings.js 8386710827e5ccc9432fb46413368f94afc1016425404a6092b460903636837e src/admin/web/app/stream-dashboard.js @@ -192,11 +192,11 @@ fa00bce2651308a4e0b1303cc0146be17ed4794b67b2f0cebfaf861558d8c78c src/admin/web/ 849b2ca9d183bdf6cb1e04651cda52da55b8a631e11ab1d827a052c8436bbd76 src/admin/web/cache-panel.js e9788a9d1e0bce8775f612a5c842afea8a0dcf01301acdef4b69ff6a52d2ef45 src/admin/web/certificate-api.js 9d000e98497b3387641500d5273d23eda45d532c714f22e187572928da152a97 src/admin/web/css/00-tokens.css -791f36e09e0203bf12cac91781e0b7b2af543ca1b344bb029ad77920590db9d0 src/admin/web/css/10-base.css +b86b530c86ff7996f41644dcff7c26145f1fa8bf0d9476dc34cdb73a67188a9a src/admin/web/css/10-base.css 4aae1657e8f5faa755cab0399769e6179364148f80243e742fc7a5e6e237b3e6 src/admin/web/css/20-shell.css 31834acc1fc234ed314b0ca069658bfab175d782bcfaa5e6ee07d46fef689457 src/admin/web/css/30-overview.css -3936faa2f6e17f07874640256b99a5eece5513b3265ccd8d5fbdcae4fc5b15ca src/admin/web/css/40-editors.css -86f7e08a9973ebddd67aaeca92d2b5e2c0f7f53dee45d65a93bb88b35b207cdc src/admin/web/css/50-settings.css +ce5ffb911d7e4cd2317ca047534921132b6f93efd70a26673f0c428e55320a4d src/admin/web/css/40-editors.css +4fed2f6376ad85f767c98d1fc953dec90c965a722cca152e62027f638665f962 src/admin/web/css/50-settings.css d019d9741951c9d652fab9e520693e0dd3f00b395e32169e5c7ca3ccaf04132c src/admin/web/css/60-monitoring.css 6afa10207938787013f5a4731910630b19bec4a22682a07c3e67707d17cfd97e src/admin/web/css/70-responsive.css f2a2b0476cc55d8dadb4fd52c2c589d64785ad400ccc6cac5a2d10cfca729928 src/admin/web/css/README.md @@ -524,14 +524,11 @@ f826d8816bdb9edab966e10991e45335625ef7d7376169cf6fd1e0e5d01bf868 src/web_server 400e1c8aa2fe857d96036a64499fbc3de44c1e3a53811c5b25101fb843359792 src/web_server/security.rs b791762b4ab7a43c3be19df84e523faf3dfb4df055f66d02178f93edb60d2204 src/web_server/serve.rs df888adf893d0b6b99348d19fa07bd9c2b8fc0ce7f411d06be7411afb4311fe0 src/web_server/tests.rs -a0670941539ea3d4189ea2631753d7f99ed6efdd77e43511bec25a4c0da9bb53 tests/certificate-inspection.test.js f00743af2cf4a5952caef7a1dcf68e7817b5599a252a9973e1c22045517c0b0e tests/fixtures/argon2id.json -c49367cb5f7a4ebb93d6d9f374af7d0722eb2bd3220f6c4cd6632034b73da699 tools/README.md +eca68a07c2b1e45fdb8f512294f5a432db3ae5a6aec8fb200b47f155cd9a31d6 tools/README.md 7c30c280d0b0a8bf855eeffab583ca34dc161255f7ef6124148aa979c17c26d3 tools/dev/memory_load.py d1418f8e574a7390fd45a2aa879bdf5720b773162d65e295ab0350506aa5220a tools/dev/mock_auth.py 2d3ff92300b09ce9cecbbaaa9309b4d33160fa4b2291c9952b784e8cfb599ab5 tools/dev/mock_server.py -4ec76e8c28aa473c43e4c01e7d47ba0c99c1325240fa5930e7d5b4de948b04b8 tools/dev/test_path_permissions.cjs -c2d47306a1a47bebd327914da8843fefa7eec366838e201cb83de33454560d5d tools/dev/test_web_server_permissions.cjs c711154a9df425a56607bd88f03815ffb408213a31a2b66ed1c1c9a6301a2fc6 tools/legacy/backup.py 89d2b4e60a2f4cb93e8943b74b1b5ca84374b01fa74ea07bec07bdff315ac0e9 update.sh 56c702111022e1ca2c8f6b72c635c749b05936ffe6387bdb0a202691614cbc96 upgrade.sh diff --git a/langs/en_US.json b/langs/en_US.json index 92bf6df..d61036d 100644 --- a/langs/en_US.json +++ b/langs/en_US.json @@ -2853,6 +2853,8 @@ "cacheMixAria": "Since service start: {hit} HIT, {miss} MISS, {bypass} BYPASS, {other} OTHER", "cacheMixInvalid": "Totals unavailable: request and cache counters disagree", "pathPermissionsTitle": "Permission commands", + "pathPermissionsWebDescription": "Commands to grant the RustProxy service user read access to website files (r) and read/traverse access to directories (r+x). They do not grant write (w) or file execution permissions.", + "pathPermissionsCertificateDescription": "Commands to grant the RustProxy service user read access to the certificate and private key (r) and traversal of parent directories (x). They do not grant write (w) permissions.", "pathPermissionsUser": "Service user", "pathPermissionsCopy": "Copy commands", "pathPermissionsCopied": "Commands copied.", diff --git a/langs/pl_pl.json b/langs/pl_pl.json index d6de055..b623c8b 100644 --- a/langs/pl_pl.json +++ b/langs/pl_pl.json @@ -2853,6 +2853,8 @@ "cacheMixAria": "Od startu usługi: {hit} HIT, {miss} MISS, {bypass} BYPASS, {other} INNE", "cacheMixInvalid": "Suma niedostępna: niespójne liczniki żądań i cache", "pathPermissionsTitle": "Polecenia nadania uprawnień", + "pathPermissionsWebDescription": "Polecenia do nadania użytkownikowi usługi RustProxy uprawnień do odczytu plików WWW (r) oraz odczytu i przechodzenia przez katalogi (r+x). Nie nadają prawa zapisu (w) ani wykonywania plików.", + "pathPermissionsCertificateDescription": "Polecenia do nadania użytkownikowi usługi RustProxy uprawnień do odczytu certyfikatu i klucza prywatnego (r) oraz przechodzenia przez katalogi (x). Nie nadają prawa zapisu (w).", "pathPermissionsUser": "Użytkownik usługi", "pathPermissionsCopy": "Kopiuj polecenia", "pathPermissionsCopied": "Skopiowano polecenia.", diff --git a/src/admin/web/app/path-permissions.js b/src/admin/web/app/path-permissions.js index 0c011ce..a9efcf3 100644 --- a/src/admin/web/app/path-permissions.js +++ b/src/admin/web/app/path-permissions.js @@ -97,8 +97,9 @@ return lines.join("\n"); } function update(view) { - const { target, options, summary, help, accountLabel, account, output, empty, copy } = view; + const { target, options, description, summary, help, accountLabel, account, output, empty, copy } = view; target.hidden = options.enabled === false; + description.textContent = t(options.kind === "web" ? "pathPermissionsWebDescription" : "pathPermissionsCertificateDescription"); summary.textContent = t("pathPermissionsOptions"); help.textContent = t(options.kind === "web" ? "pathPermissionsWebHelp" : "pathPermissionsCertificateHelp"); accountLabel.textContent = t("pathPermissionsUser"); @@ -106,6 +107,7 @@ output.setAttribute("aria-label", t("pathPermissionsTitle")); output.textContent = target.hidden ? "" : commands({ ...options, user: account.value }); output.hidden = !output.textContent; + description.hidden = output.hidden; copy.disabled = !output.textContent; empty.hidden = !!output.textContent; empty.textContent = t(options.kind === "web" ? "pathPermissionsWebPrompt" : "pathPermissionsCertificatePrompt"); @@ -115,6 +117,7 @@ let view = views.get(target); if (!view) { target.classList.add("path-permissions"); + const description = el("p", undefined, "fine path-permissions-description"); const actions = el("div", undefined, "form-actions path-permissions-actions"); const copy = el("button", undefined, "quiet"); copy.type = "button"; @@ -130,8 +133,8 @@ const empty = el("p", undefined, "fine"); details.append(summary, label, help); actions.append(copy, details); - target.replaceChildren(output, empty, actions); - view = { target, options, summary, help, accountLabel, account, output, empty, copy }; + target.replaceChildren(description, output, empty, actions); + view = { target, options, description, summary, help, accountLabel, account, output, empty, copy }; views.set(target, view); account.addEventListener("input", () => update(view)); const selectOutput = () => {