Commit Graph

25682 Commits

Author SHA1 Message Date
Ilia Ross
34336186f8 Add WebminCron pause during module post-install
This PR stops Miniserv from starting scheduled jobs while run-postinstalls.pl is running, so jobs never execute against half-updated module code or config.

Miniserv defers all jobs, including startup jobs, while any marker belongs to a live process, and discards markers left by runners that died or that are older than an hour.

The pause is best-effort, as a failure to create the marker is reported but never blocks post-installs.

By the way, this issue was not reported by anyone. I discovered it while running many other extensive tests.
2026-09-12 19:13:10 +02:00
Ilia Ross
ce07147547 Fix ACL path enforcement in File Manager
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
Close inactive / close-inactive (push) Has been cancelled
2026-09-11 23:41:04 +02:00
Ilia Ross
116d061c8a Fix to bump version number in changelog for upcoming release 2026-09-11 17:35:01 +02:00
Ilia Ross
2f4f017acf Fix module name validation in configuration pages 2026-09-11 17:34:17 +02:00
Jamie Cameron
806172bb90 Merge pull request #2839 from webmin/fix-2837-admin-detection
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
Close inactive / close-inactive (push) Has been cancelled
Fix admin detection when RPC is disabled
2026-09-10 21:22:51 -07:00
Ilia Ross
fc5794b040 Fix Postfix map updates failing when CIDR tables are configured 2026-09-11 05:14:46 +02:00
Ilia Ross
0951ddfe87 Fix File Manager strict permission checks 2026-09-10 23:27:19 +02:00
Ilia Ross
90c048d4f7 Add SMART temperature polling regression tests #2838
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
Close inactive / close-inactive (push) Has been cancelled
2026-09-10 05:09:19 +02:00
Ilia Ross
725362b9f0 Fix SMART temperature polling to skip self-test logs #2838 2026-09-10 05:08:59 +02:00
Ilia Ross
d7c7ba87cc Add regression tests 2026-09-10 04:31:18 +02:00
Ilia Ross
f197e6e886 Fix admin detection when RPC is disabled
This PR stops treating `rpc=0` as a safe-user restriction, restoring File Manager ops and admin features for fully privileged accounts created with RPC disabled.

Preserve explicit `_safe` restrictions and product roles.

Regression tests and Perl syntax checks pass.

Fixes https://github.com/webmin/webmin/issues/2837
2026-09-10 04:30:47 +02:00
Ilia Ross
10c328ef4d Fix ext4 quota detection for LABEL and UUID mounts
Fixes https://forum.virtualmin.com/t/failed-to-turn-on-quotas-quotaon-using-on-dev-sda1-home-file-exist/137832
2026-09-10 04:14:10 +02:00
Ilia Ross
1ee78eefb0 Fix to bump devel version for dependent packages to work in devel repo 2026-09-10 02:08:31 +02:00
Ilia Ross
a29cd271fc Fix default outlined toggle selected state 2026-09-10 01:42:48 +02:00
Ilia Ross
11d942a43b Fix to add support for stand alone toggles 2026-09-10 01:36:32 +02:00
Ilia Ross
0c7792d681 Fix multi-select control ids across forms
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
2026-09-09 16:09:23 +02:00
Ilia Ross
1afdd90af6 Update multi-select examples and documentation 2026-09-09 13:55:18 +02:00
Ilia Ross
d471c706f6 Add regression coverage for both multi-select widgets
ⓘ Verify separate theme hooks, asset loading, legacy layout options and submission order.
2026-09-09 13:54:07 +02:00
Ilia Ross
74c771c257 Add trusted HTML labels to multi-select lists
ⓘ Support html => 1 while preserving default escaping, text filtering and accessible checkbox names.
2026-09-09 13:51:10 +02:00
Ilia Ross
c8249f9a50 Add optional counters and simplify multi-select toolbars
ⓘ Support count => 0, hide bulk actions below nine entries, and remove empty toolbar space.
2026-09-09 13:40:08 +02:00
Ilia Ross
bbd9a56e42 Fix positional multi-select list compatibility
ⓘ Preserve selected labels, value order and pre-escaped text when callers omit the options hash.
2026-09-09 13:29:32 +02:00
Ilia Ross
29aa16e6d4 Fix to use edit users and groups to use new API for testing
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
Close inactive / close-inactive (push) Has been cancelled
2026-09-09 04:54:27 +02:00
Ilia Ross
2bf08b2bbe Fix to use secondary outline toggle in multi-select lists 2026-09-09 03:28:05 +02:00
Ilia Ross
8a43ad1b07 Add themed toggle colors and style options 2026-09-09 03:19:43 +02:00
Ilia Ross
f6720b8097 Fix description list responsiveness and card spacing 2026-09-09 02:02:56 +02:00
Ilia Ross
4f1b944293 fix multi-selection rows to use shared spacing 2026-09-09 01:06:24 +02:00
Ilia Ross
d0858e84a9 Add multi-selection attribute and label examples 2026-09-09 01:05:53 +02:00
Ilia Ross
3187565d00 Fix legacy compatibility in multi-selection lists 2026-09-09 01:05:07 +02:00
Ilia Ross
071d645883 Fix to remove hardcoded search placeholder fallback 2026-09-09 00:06:37 +02:00
Ilia Ross
d4d9221188 Add multi-selection list examples to UI demo 2026-09-09 00:05:51 +02:00
Ilia Ross
e51d723d00 Add searchable multi-selection list widget
https://forum.virtualmin.com/t/new-ui-widgets-for-webmin-modules/137932/12?u=ilia
2026-09-08 23:51:45 +02:00
Jamie Cameron
308a46bd2f Merge pull request #2836 from webmin/dev/nginx-add-return-code-redirects
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
Close inactive / close-inactive (push) Has been cancelled
Add return code redirects to Nginx URL rewriting pages
2026-09-07 10:27:17 -07:00
Ilia Ross
3e79d2a21b Fix password input field to skip strength meter for existing 2026-09-07 15:15:33 +02:00
Ilia Ross
63d8d66f48 Add more useful examples 2026-09-07 15:13:53 +02:00
Ilia Ross
75902910fc Fix column start to add extra classes 2026-09-07 15:13:11 +02:00
Ilia Ross
41314af878 Update Nginx redirect target field to show an example placeholder 2026-09-07 04:11:15 +02:00
Ilia Ross
3e4bb23b21 Add return code redirects to Nginx URL rewriting pages
This PR adds a "Redirect all requests" option to the server block and location URL Re-Writing pages in the Nginx Webserver module, backed by the Nginx return directive with a choice of 301, 302, 303, 307 or 308.

The existing rewrite table only offers the redirect and permanent flags, which map to 302 and 301. The other codes requested on the forum are not supported by rewrite at all, so they can only be provided through return.

The new option only manages return directives that are redirects. A bare URL form such as return https://example.com/; is shown as a 302, while non-redirect uses like return 404; are hidden from the page and never modified or removed.

Example of the resulting config for a server block:

return 308 "https://example.com$request_uri";

Fixes https://forum.virtualmin.com/t/137940
2026-09-07 04:01:34 +02:00
Ilia Ross
78e0f31899 Fix to quote directive values containing #
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
Close inactive / close-inactive (push) Has been cancelled
ⓘ Values with a # were written unquoted, so on the next read the module took the # as the start of a comment and lost the rest of the line.

For example, a redirect saved as return 301 https://example.com/docs#install; then showed as no redirect on the page, and re-saving it added a duplicate rewrite_log directive that Nginx rejected.

So, before the fix, saving a redirect to https://example.com/docs#install wrote:

return 301 https://example.com/docs#install;
rewrite_log off;

On the next read the module dropped everything after the #, so it saw one merged line:

return 301 https://example.com/docs rewrite_log off;

The redirect disappeared from the page, and saving again appended a second rewrite_log off;, which Nginx rejects as a duplicate.

After the fix the same save writes:

return 301 "https://example.com/docs#install";
rewrite_log off;

Nginx treats the quoted and unquoted forms identically, and the module reads it back correctly.
2026-09-07 03:55:19 +02:00
Ilia Ross
89a01303c0 Fix Nginx module flag file deadlock 2026-09-07 01:43:31 +02:00
Ilia Ross
89d618b930 Update CHANGELOG.md
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
[no-build] [no-review]
2026-09-06 15:15:33 +02:00
Ilia Ross
89c2e1eaf1 Fix slave zone files not being written by BIND on Debian and Ubuntu
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
https://forum.virtualmin.com/t/hosts-file-permissions/137767/4?u=ilia
2026-09-06 14:32:45 +02:00
Ilia Ross
aaea3e1ff9 Update changelog
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
Close inactive / close-inactive (push) Has been cancelled
2026-09-06 04:20:24 +02:00
Ilia Ross
ef76823dba Fix mount points and devices with spaces in mounted filesystem list
ⓘ Decode octal-escaped spaces when reading /etc/mtab, as is already done for /etc/fstab, so dashboard disk usage no longer runs df on non-existent paths and fills the error log.

Also quote the path passed to df -i, and parse df output from the numeric columns so a device name containing a space, such as a ZFS dataset, no longer shifts the values.

Fixes https://github.com/webmin/webmin/issues/2833
2026-09-06 04:20:17 +02:00
Ilia Ross
64ad69f9f4 Fix journal since filter on older systemd
Fixes https://forum.virtualmin.com/t/137876
2026-09-06 03:20:09 +02:00
Ilia Ross
75e793ca0f Fix Filemin paste to show real copy and move errors
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
ⓘ Run cp and mv through backquote_logged and capture their stderr, so the actual command error is shown instead of an unrelated $! value.

https://github.com/webmin/webmin/issues/2834
2026-09-05 17:04:12 +02:00
Ilia Ross
20a487ca5a Add UI widgets and demo module
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
Close inactive / close-inactive (push) Has been cancelled
ⓘ Add composable widgets, shared styling and interactions, sortable-table options, and a read-only UI gallery.
2026-09-05 03:52:39 +02:00
Jamie Cameron
e3d6fa3c0a When editing a .htaccess file, don't update the file tracking when the master apache config was changed
Some checks failed
Close inactive / close-inactive (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
Tests / prove (push) Has been cancelled
https://github.com/virtualmin/virtualmin-gpl/issues/1276
2026-09-01 21:20:47 -07:00
Ilia Ross
d14ab9a4e6 Merge pull request #2830 from tbsagdic/dev/translation_tr
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
Complete the Turkish (tr) translation
2026-09-01 23:23:42 +02:00
KafamaG
aa47922ae0 Restore the missing final newline in acl/lang/tr
The file was regenerated when master added acl/forgot_sudouser, and the
regeneration dropped the trailing newline. All 481 files in this branch
now end with one.
2026-09-01 18:52:56 +03:00
Jamie Cameron
f11e1cb1e4 Use common function and properly escape param to file command
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
Close inactive / close-inactive (push) Has been cancelled
2026-08-31 21:49:52 -07:00