Commit Graph

25679 Commits

Author SHA1 Message Date
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
Ilia Ross
9807d97f0b Fix hardware info Perl::Critic failures
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
2026-08-31 14:31:10 +02:00
KafamaG
0c4941e8aa Fix key references and a relative URL in the Turkish files
Both issues were raised in review.

webmin/upgrade_desc had <a href="webmin.com">, which a browser resolves
against the Webmin server rather than the public site. lang/en has
<a href=https://webmin.com>; the Turkish now matches. This was the only
relative href in any Turkish file.

proc uses __norefs=1, so the four $stime values were displayed
literally instead of expanding. lang/en spells the word out in all four
places rather than referencing stime, so the Turkish now does the same.

A scan for the same class of defect across every module found one more
case that had not been reported: useradmin/uedit_dothers was
$udel_dothers, and useradmin also sets __norefs=1. lang/en spells that
one out too, so it is fixed the same way.

The scan also found heartbeat/conf_auto_on and conf_auto_off, which are
${conf_enabled} and ${conf_disabled} in lang/en itself - so English is
affected as well, and conf_auto_ references ${default}, a key that does
not exist in the file. That is an upstream bug rather than a
translation one, so it is left alone here and reported on the PR.
2026-08-31 14:45:46 +03:00
KafamaG
78b728a531 Merge branch 'master' into dev/translation_tr
#2829 landed on master and touched 173 of the same keys this branch
rewrites, which is where the conflicts came from.

Resolved by rule rather than by hand: for any key #2829 already fixed
and merged, master's value wins (54 keys); everything else keeps this
branch's version. That keeps the diff against master limited to what is
genuinely new here, and avoids re-editing work that is already upstream.

It also avoids a regression. This branch was cut before #2829, so it
still carried the old double-encoded UTF-8 in nine mailboxes strings
(confirm_warnallf, left_autoreply, left_folders, left_forward,
left_pass, left_sig, mail_fromfilter, mail_selread, mail_subfilter).
Taking master's value for those keeps them fixed. A mojibake scan over
the whole tree after the merge reports 0 remaining lines.

master also added acl/forgot_sudouser, which is translated here, so
lang/tr is still complete at 31,523 of 31,523 keys.
2026-08-31 09:51:50 +03:00