Commit Graph

25802 Commits

Author SHA1 Message Date
Ilia Ross
1fed13ba32 FIx alignment for non-standard small trash icon 2026-10-08 15:53:06 +02:00
Ilia Ross
39786bae17 Add ui_svg_icon sub to support CSS class for targeted styling 2026-10-08 15:28:28 +02:00
Jamie Cameron
37296f5b22 Quote params to vuserinfo
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
2026-10-07 22:14:46 -07:00
Jamie Cameron
51e3dccb1d Quote DB name in commands 2026-10-07 22:07:22 -07:00
Jamie Cameron
f354238c24 Make sure module exists 2026-10-07 21:58:53 -07:00
Jamie Cameron
223b0f331f Merge branch 'master' of github.com:webmin/webmin 2026-10-07 21:57:01 -07:00
Jamie Cameron
851883c41d Use standard start and end markers, since this isn't a multi-line regexp 2026-10-07 21:56:56 -07:00
Ilia Ross
95b74cc45f Fix to drop workaround for icon alignment
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-10-08 05:58:52 +02:00
Ilia Ross
e327940bd6 Add action buttons with badge styling 2026-10-08 05:37:20 +02:00
Ilia Ross
18d5344043 Fix empty action log details
This patch fixes blank sections in action details when multiple actions are logged in one process.
2026-10-08 04:53:32 +02:00
Jamie Cameron
fd7760d2e1 Merge pull request #2870 from ste94pz/feature/dashboard-filesystem-filters
Add filesystem exclusion filters for dashboard disk usage
2026-10-07 18:32:34 -07:00
ste94pz
8b9cb8c603 feat(dashboard): add filesystem filters for dashboard visibility 2026-10-07 21:25:24 +02:00
Ilia Ross
77ffa83f8f Fix MariaDB listings with stray directories
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
ⓘ Skip invalid `#mysql50#.` entries in SQL and mysqlshow database listings so stray directories don't break the MariaDB page. Preserve valid dot-prefixed, hash-prefixed, and legacy database names.

Reproduce by creating an ordinary `.config` directory in MariaDB's data directory and opening the Webmin MariaDB module. On AlmaLinux, starting `user@27.service` also reproduces the issue because the globally enabled Podman user restart service creates `.config` and `.local` in the mysql account's home. Podman is one possible source, and the failure doesn't depend on it.

Fixes https://forum.virtualmin.com/t/error-accessing-mariadb-server-through-webmin/138118
2026-10-07 16:30:56 +02:00
Jamie Cameron
32fb7f2462 Merge pull request #2866 from webmin/dev/fix-webmin-restart-race
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 restart signal race
2026-10-06 20:35:56 -07:00
Ilia Ross
afd6fad51e Add Cloudmin virtualization host firewall profile 2026-10-06 23:06:08 +02:00
Ilia Ross
0be0ba411a Fix restart signal race
This PR fixes Webmin being killed when package updates trigger overlapping restarts.

I found this while upgrading packages on a Debian 13 Pro, with the upgrade finished, but Webmin stopped responding, and tracing showed a second `SIGHUP` killing it during startup.

The fix keeps restart and reload signals pending across `exec()` and installs their handlers early in startup.
2026-10-06 03:56:47 +02:00
Jamie Cameron
11be3726f7 Separate 'reporting' enabled and 'reporting mode' fields
Some checks failed
Close inactive / close-inactive (push) Has been cancelled
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
2026-10-04 21:37:24 -07:00
Ilia Ross
1726be59e6 Fix XFS quota alias handling
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
This patch fixes detection and editing of native XFS quota options.

It recognizes short aliases before reboot and saves them without triggering systemd's generic quota handling.

It removes conflicting options when enabling quotas, while preserving noquota when both user and group quotas remain off.

Rel.: https://github.com/virtualmin/Virtualmin-Config/commit/cadb0db
2026-10-05 03:21:26 +02:00
Ilia Ross
61d3618cc5 Fix external IP checks to use requested address family #1300 2026-10-04 22:06:49 +02:00
Jamie Cameron
84ea802947 Merge pull request #2864 from webmin/dev/fix-button-row-forms
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 button row forms crossing table rows
2026-10-02 16:44:33 -07:00
Jamie Cameron
2dea2f8090 Merge pull request #2865 from webmin/dev/fix-apache-test-dns-lookup
Fix Apache config test stalling on hostname DNS lookups
2026-10-02 16:35:38 -07:00
Ilia Ross
22c580aea1 Update Apache config test to keep old behavior when ServerName is set 2026-10-02 16:35:15 +02:00
Ilia Ross
8f880ab366 Fix Squid ownership command escaping
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
2026-10-02 15:14:47 +02:00
Ilia Ross
f8f35b26c6 Fix MySQL manual editor ACL bypass
This fixes missing permission checks in the MySQL manual configuration editor, with both read and write endpoints now require full configuration permissions to match the existing checks used by the configuration editor.
2026-10-02 14:16:59 +02:00
Ilia Ross
875c973658 Change button rows to use one form and table per row 2026-10-02 05:26:15 +02:00
Ilia Ross
8742ccd312 Fix Custom Commands editor path injection
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
This fixes path traversal and command injection in Custom Commands file editors.

It replaces shell-based path expansion with confined Perl expansion and validates non-path parameters.

It also applies ownership and permissions without invoking a shell.
2026-10-02 04:58:53 +02:00
Ilia Ross
94436938d0 Fix newline injection in Webmin user records 2026-10-02 03:21:58 +02:00
Ilia Ross
cec6e6074d Fix mailbox attachment option injection
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
2026-10-02 01:24:35 +02:00
Ilia Ross
aeee5edd15 Fix Apache config test stalling on hostname DNS lookups
This PR fixes the Apache config test hanging for about 20 seconds when the server's own hostname doesn't resolve.

Without a global `ServerName`, Apache looks up the system hostname in DNS before it finishes the test, and Virtualmin runs this test every time its server list and dashboard load, so those pages look frozen.

The test now passes a placeholder `ServerName` with `-C` and runs `httpd` directly where Red Hat's `apachectl` refuses extra arguments. If this quick test fails, the original test runs, so only real config errors are reported.

On an Alma 10 VM with broken DNS, the check dropped from 20 seconds to 0.03 seconds.
2026-10-01 23:42:30 +02:00
Ilia Ross
359eb13f0e Fix button row forms crossing table rows
This PR fixes #2853, where buttons made by `ui_buttons_row` do nothing in strict browsers like Pale Moon.

Each form was placed between table rows, which HTML doesn't allow, so the browser closed it right away and left the button outside it.

Now the form sits inside the button cell, and any fields in the description cell are linked to it with the HTML5 form attribute.

The page looks exactly the same.

Fixes https://github.com/webmin/webmin/issues/2853
2026-10-01 23:35:12 +02:00
Jamie Cameron
316f1330de Differentiate between 9750 3ware controllers and other drives with 9750 in the serial number
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
https://github.com/webmin/webmin/issues/2859
2026-09-30 20:11:55 -07:00
Jamie Cameron
ff83f05768 Merge pull request #2861 from webmin/dev/fix-websocket-transfers
Fix stalled WebSocket transfers
2026-09-30 19:55:09 -07:00
Jamie Cameron
97ba9cbd46 Merge pull request #2862 from webmin/dev/full-os-version
Add full OS version detection
2026-09-30 19:53:10 -07:00
Ilia Ross
ee5009a47f Fix login, password reset and error pages in framed theme
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
2026-10-01 00:28:17 +02:00
Ilia Ross
1bfd92c21c Add full OS version detection
This PR adds `real_os_version_full` so the dashboard can show Debian point releases such as 12.15.

It preserves existing version comparisons and updates the field through installation, OS refreshes, and manual settings.

Older detection caches are refreshed automatically.

Fixes: https://forum.virtualmin.com/t/os-detection-version-with-point-release-on-dashboard/138091
2026-09-30 23:40:01 +02:00
Ilia Ross
97ed7cef25 Add provenance for bundled WebSocket fixes 2026-09-30 23:00:57 +02:00
Ilia Ross
ea691b895e Fix stalled WebSocket transfers
This PR fixes WebSocket transfers that stall when unread data remains buffered.

Miniserv now drains buffered browser data before waiting for more network traffic.

The receive library avoids extra blocking reads and handles temporary read errors without disconnecting.

Tested and verified over HTTPS with Terminal and live stats on Rocky 10 and Ubuntu 26.04.

I discovered these issues while working on and testing new Cloudmin's SSH-based guest File Manager integration, which I decided to drop for now.
2026-09-30 22:46:47 +02:00
Jamie Cameron
98641c73bd Merge pull request #2860 from webmin/dev/gray-theme-light-dark
Update Framed theme with lovely light and dark design
2026-09-30 11:22:35 -07:00
Ilia Ross
c8a6a0f69a Add label_html row option to ui_dl
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
2026-09-30 16:53:05 +02:00
Ilia Ross
e90b946de6 Update Framed theme with lovely light and dark design
This PR updates the framed gray theme with a modern light and dark design while keeping its frameset and old class names without adding any extra complexity on Perl or JS side.

The left menu becomes a floating panel with product logos, a product switch and a loading bar, and the system information page uses the new UI lib widgets for tiles and cards.

Color scheme that follows the browser or can be forced from the theme settings.
2026-09-30 16:43:53 +02:00
Jamie Cameron
8a09ca5342 Check again if user is editable before saving
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-29 17:50:49 -07:00
Jamie Cameron
abf05faa20 Merge branch 'master' of github.com:webmin/webmin 2026-09-29 17:46:39 -07:00
Jamie Cameron
47d2411e2b Re-check that modified user attributes are still allowed for this Webmin user 2026-09-29 17:46:35 -07:00
Jamie Cameron
f98a6a31dc Merge pull request #2858 from webmin/dev/fix-miniserv-config-cache
Fix stale miniserv configuration reads
2026-09-29 17:35:51 -07:00
Ilia Ross
6b7832acd0 Fix stale miniserv configuration reads
This PR fixes WebSocket routes being lost when miniserv configuration changes multiple times within one second.

Read `miniserv.conf` directly so locked updates use the current configuration.

The previous cache could reuse stale data because it compared modification times in whole seconds.

Add a regression test covering route additions and removals with an unchanged modification time.
2026-09-30 01:36:26 +02:00
Ilia Ross
e70bf0ffaa Add get_unit_state to read fresh systemd unit properties
Some checks failed
Tests / prove (push) Has been cancelled
Package and upload artifacts / build (push) Has been cancelled
2026-09-30 00:05:56 +02:00
Ilia Ross
9458057978 Fix start_unit reporting success when journalctl lookup follows a failed start 2026-09-29 22:24:52 +02:00
Ilia Ross
bbdd520807 Update CHANGELOG.md
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
[no-review] [no-build]
2026-09-28 13:47:57 +02:00
Ilia Ross
c85e0b8c50 Fix typo
[no-review] [no-build]
2026-09-28 13:45:42 +02:00
Jamie Cameron
d78dcb7625 Safer to match A-Z and a-z separately
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-27 20:30:59 -07:00