151 Commits
Author SHA1 Message Date
Nicola Murino 87fb508c97 update js and css deps
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2026-09-19 10:00:07 +02:00
Nicola Murino 45dc32ca8a oidc: add require_verified_email setting
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2026-09-06 17:05:53 +02:00
Nicola Murino 40e97113a1 httpd: return the same response for password reset requests that send no code
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2026-08-12 20:45:48 +02:00
Nicola Murino 6cce58233c virtual folders: add subpath support
A virtual folder mapping can now re-root the mount onto a sub-path of
the folder: the mount at the virtual path serves the folder starting
from the configured subpath, which stays invisible in the virtual tree.
The same folder can be mapped multiple times with distinct subpaths;
quota remains a property of the whole folder, so every mapping must use
the same limits.

Supported for local, encrypted, S3, GCS, Azure Blob and SFTP folders.

Fixes #2037

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2026-07-18 16:19:43 +02:00
Nicola Murino 58a20b2ffd update js deps
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2026-06-21 08:33:04 +02:00
Nicola Murino 1c93729b40 vfs: normalize cloud key prefix on save
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2026-06-11 18:45:34 +02:00
Nicola Murino 08c8e6a515 i18n: improve some help texts
Fixes #2242
Closes #2243

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2026-06-08 14:01:36 +02:00
Nicola Murino c07bfd7689 update js and css deps
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2026-05-30 19:30:33 +02:00
Nicola Murino 02e312f39c fs: enforce a configurable minimum entropy for data-encryption secrets
The CryptFs passphrase and the S3 SSE-C key are used directly as
data-at-rest encryption key material, yet they were accepted with no
strength check, so an operator could protect encrypted data with a
trivially guessable secret.

Add common.secret_min_entropy (default 80): when one of these
secrets is submitted in plain text it must pass a minimum-entropy
check before it is encrypted and stored. The check runs on
plain-text input, so secrets that are already stored keep working even
if the threshold is later raised. The estimate is a heuristic used to
reject obviously weak input, not a measure of cryptographic strength:
always supply key material generated by a CSPRNG.

Thanks to Vishal Shukla (@shukla304) for the report.

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2026-05-18 19:46:19 +02:00
Nicola Murino 64ea8cfa5e WebClient: replaced gligthbox with a custom implementation
better CSP compatibility and more control

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2026-03-24 14:16:05 +01:00
Nicola Murino 7071011a5e update js deps
include axios 1.13.5

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2026-02-14 18:11:13 +01:00
Nicola Murino 35d9242466 update css and js
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2026-02-08 09:15:17 +01:00
Nicola Murino 906b0731f1 update logo
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2026-02-01 10:30:23 +01:00
Nicola Murino f06a2e8bd4 locales: add Spanish
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-12-31 17:10:34 +01:00
Nicola Murino a73f8998a2 locales: add zh-CN
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-12-31 16:36:43 +01:00
Nicola Murino ac3e59562d Enforce missing naming rule for actions and rules
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-12-07 10:35:13 +01:00
Nicola Murino 8c85a722a2 apply naming rules for related groups, roles and folders
also enforce stricter validation rules for usernames/names

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-12-06 22:08:22 +01:00
Nicola Murino a469dd68a2 update theme and js deps
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-09-22 09:15:57 +02:00
Nicola Murino 78d93730e0 update README and support link now that SFTPGo Enterprise is GA
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-09-07 18:18:55 +02:00
Nicola Murino c49d76274d WebClient: translate "selected items" label also at bottom of page
Fixes #1979

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-07-21 18:24:49 +02:00
Nicola Murino e275e8a142 WebClient: prevent uploads if no file is selected
Fixes #1980

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-05-19 18:21:55 +02:00
Nicola Murino f7273ce97e UI: add missing French and German localization for calendars
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-05-19 18:18:52 +02:00
Nicola Murino 3cae004e6b UI: added German and French translations
Thanks to all contributors on Crowdin.

Updates #1874

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-03-31 19:05:50 +02:00
Nicola Murino 06cd07d67a oidc: add missing translations
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-03-29 20:51:45 +01:00
Nicola Murino dfde4d45e2 update plugins bundle.js
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-03-16 12:45:01 +01:00
Nicola Murino 312902b5f5 update js deps
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-03-16 12:26:08 +01:00
Nicola Murino aadd5d7d28 update js bundle
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-02-24 18:42:39 +01:00
Nicola Murino b686da5e56 WebClient: improve error message after the session expires
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-01-22 19:54:56 +01:00
Nicola Murino 6ab0f22d2d update translations
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-01-21 18:10:51 +01:00
Nicola Murino ef2f3e51ea EventManager: add more datetime placeholders
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-01-16 18:14:43 +01:00
Nicola Murino e8c5f8ed81 command actions: restrict passing env vars
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2025-01-13 20:58:32 +01:00
Nicola MurinoandPer Osbeck dee3f3f87a EventManager: add placeholder for filename without extension
Fixes #1828
Fixes #1833

Co-authored-by: Per Osbeck <per.osbeck@consid.se>
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-12-23 19:08:48 +01:00
Nicola Murino bfe6c58133 don't allow DSA keys
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-12-18 19:01:15 +01:00
Nicola Murino d3e76898cd WebAdmin: refactor template permissions
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-11-26 20:39:36 +01:00
Nicola Murino 7bffed712a events: add copy action
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-11-10 15:00:11 +01:00
Nicola Murino f30d6ad82a update css and js deps
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-11-10 12:34:10 +01:00
Nicola Murino 3dd412f6e3 WebAdmin and REST API: remove too granular permissions
Our permissions system for admin users is too granular and some
permissions overlap. For example, you can define an administrator
with the "manage_system" permission and not with the "manage_admins"
or "manage_user" permission, but the "manage_system" permission
allows you to restore a backup and then create users and
administrators. The following permissions will be removed:
"manage_admins", "manage_apikeys", "manage_system", "retention_checks",
"manage_event_rules", "manage_roles", "manage_ip_lists". Now you
need to add the "*" permission to replace the removed granular
permissions because the removed permissions allow actions that
should only be allowed to super administrators.
There is no point in having separate, overlapping permissions.

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-11-10 10:46:28 +01:00
Nicola Murino ef98ee7d11 don't allow admins to change their own permissions
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-11-09 20:24:35 +01:00
Nicola Murino 8d697bcc94 WebClient: enforce 2fa and password requirements also with OIDC
password and 2fa can be used with other protocols

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-10-21 20:40:44 +02:00
Nicola Murino d8691d1e1a update translations
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-10-13 17:00:17 +02:00
Nicola Murino b23e67ae6a EventManager: add escaped virtual path
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-10-12 11:25:07 +02:00
Rafał Bielawski dc907c0ba3 Update translation.json (#1781)
Signed-off-by: Rafał Bielawski <hello@rbielawski.pl>
2024-10-11 19:30:40 +02:00
Nicola Murino eba4c93efd user: add additional emails
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-10-11 19:20:51 +02:00
Nicola Murino 4103344989 EventManager: add datetime placeholder
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-10-08 18:39:00 +02:00
Nicola Murino 72ba54b5be WebAdmin: add CSV export for users, groups, folders, admins, roles
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-10-05 19:09:46 +02:00
Nicola Murino 3b2f709aeb WebClient: improve readability of upload progress
Fixes #1773

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-10-03 19:07:27 +02:00
Nicola Murino 2ecd20d444 WebClient: make sure to upload files after the queue is populated
Ugly hack to prevent to start uploading files before the upload
queue is fully populated.

We should investigate if there is a better way

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-10-03 19:06:33 +02:00
Nicola Murino 85c65dcad3 update i18next
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-09-27 19:52:52 +02:00
Nicola Murino a34d9bc916 update css and js bundle
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-09-27 18:08:54 +02:00
Nicola Murino eeef23139d EventManager: filter action execution based on event status
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
2024-09-23 19:55:03 +02:00