Commit Graph

263 Commits

Author SHA1 Message Date
Ilia Ross
0492b2fba9 Update language string 2026-10-24 16:39:27 +02:00
Ilia Ross
04b47e5815 Add API-only access for Webmin accounts
This PR adds an `api_only` global permission that restricts a Webmin account to one supported API endpoint, such as virtual-server/remote.cgi.

External integrations need credentials that can call an API without also granting access to the Webmin interface or generic RPC. Existing module permissions do not provide this endpoint-level restriction. The new setting allows administrators to create dedicated integration accounts while Webmin continues performing authorized operations through its privileged backend.

The restriction is enforced in two places:
- MiniServ checks the authenticated account's policy before dispatching CGI, static-file, DAV, or WebSocket requests. Requests outside the configured endpoint receive HTTP 403.
- `init_config` requires the permitted CGI to explicitly opt in before initialization. This also protects Webmin-initializing CGIs hosted by another web server.

Generic RPC is denied for API-only accounts, even when an existing RPC permission would otherwise allow it. The endpoint's own module and operation permissions still apply. Selecting an endpoint does not grant permission to execute every API command.

Webmin Users gains an API-only setting for users and groups. Existing restrictions survive ordinary edits, resets, copies, cloning, renaming, group propagation, and cluster synchronization. Clearing a restriction requires an explicit permission edit. Group updates preserve restrictions already assigned to individual members.

MiniServ reads the policy on each request from the account's existing storage backend: local files, MySQL, PostgreSQL, or LDAP. Policy-read errors deny access instead of treating the account as unrestricted.

Validation passed with the four separately submitted supporting fixes (#2897, #2898, #2899, #2900) ,applied: 169 focused tests, syntax checks, and live Debian tests using file-backed and PostgreSQL accounts. Live checks covered account creation, lifecycle operations, both CGI modes, sessions, RPC, static files, DAV, and WebSockets.

The supporting fixes remain separate PRs. This API-only branch currently has seven lifecycle test failures that depend on the file-cache and group ACL cleanup fixes landing.
2026-10-23 22:06:12 +02:00
Ilia Ross
e764166ad4 Fix misleading temporary directory placeholder #2787 2026-10-19 21:50:30 +02:00
Ilia Ross
759359db48 Add drop-down menu, dialog, breadcrumb and pager widgets to UI lib 2026-10-11 17:52:04 +02:00
Ilia Ross
c85e0b8c50 Fix typo
[no-review] [no-build]
2026-09-28 13:45:42 +02:00
Jamie Cameron
cc95d6285a Ensure that old password is requested before new one is sent 2026-09-20 09:20:31 -07: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
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
Ilia Ross
199dae2562 Remove bundled Miniserv certificate and safely fall back to HTTP 2026-08-09 15:27:13 +02:00
Ilia Ross
99f35fa38a Fix to move URL download destination controls to global ACL 2026-07-14 02:52:36 +02:00
Jamie Cameron
45292ea815 Respect the RPC-only setting for users 2026-05-16 12:59:58 -07:00
Jamie Cameron
1d4556b905 Add new option for RPC-only mode, and a help page 2026-05-16 12:40:12 -07:00
Jamie Cameron
1a86501e88 Delete code and languages related to email feedback feature that is no longer linked to, or useful
Some checks failed
webmin.dev: webmin/webmin / build (push) Has been cancelled
2026-05-15 16:51:34 -07:00
Ilia Ross
65ab502176 Add an option to configure RPC timeout 2026-01-08 18:30:41 +02:00
Ilia Ross
34263aae1f Fix endless loop created by ReadParseMime; fix other bugs 2025-10-15 23:08:59 +03:00
Jamie Cameron
cb5f4e9d39 Check that uploaded file has a filename 2025-10-14 14:05:10 -07:00
Ilia Ross
e5d6c5627d Add back SSL host cert check but only in SSL mode; show faked host (HTTP_HOST) first for clarity 2025-09-24 14:37:18 +03:00
Ilia Ross
4e229d8adb Fix to show clear warning when trying to reset password over insecure connection 2025-09-24 00:15:12 +03:00
Ilia Ross
d1ee0a5ed6 Fix not to completely forbid password reset without SSL 2025-09-23 23:36:09 +03:00
Ilia Ross
cd489ccefc Fix not to limit to valid SSL certificate, as self-signed is also valid and safe enough 2025-09-23 23:11:44 +03:00
Jamie Cameron
287fb3cb81 Only allow forgotten password reset when in SSL mode and hostname is valid 2025-09-22 21:42:26 -07:00
Jamie Cameron
61b2603e06 Add check for same hostname 2025-09-22 21:14:07 -07:00
Ilia Ross
6ca908cf80 Add using relative dates in some pages where it makes sense 2025-08-29 15:32:41 +03:00
Ilia Ross
3be8a327ad Add API to display relative dates 2025-08-29 15:13:27 +03:00
Ilia Ross
784b2b42e7 Fix wording 2025-07-06 14:03:19 +03:00
Ilia Ross
489583708e Add support for clickable badge for insecure connection on login page 2025-07-02 16:37:48 +03:00
Ilia Ross
1d24db1686 Add a warning to the login pages if the connection is not secure 2025-06-29 13:42:02 +03:00
Ilia Ross
b48a24dfb6 Add message about Webmin for remote callers 2025-06-02 14:59:31 +03:00
Ilia Ross
cf22fb1ea3 Fix Usermin authentication page (once again)
This reverts commit 5d586597f5.
2025-06-02 13:16:33 +03:00
Ilia Ross
5d586597f5 Fix header name 2025-06-02 12:59:36 +03:00
Ilia Ross
97b4b046fc Fix to print message depending on the user 2025-06-01 02:07:41 +03:00
Ilia Ross
84fb582e2a Fix to make language more appropriate for any kind of user rather than specifically a Webmin user 2025-06-01 00:38:41 +03:00
Ilia Ross
e5f67a2394 Add support to reset password for Virtualmin mail users 2025-05-31 23:40:39 +03:00
Jamie Cameron
9d2f906439 Session ID is too sensitive to every safely include in email 2025-05-30 12:28:28 -07:00
Ilia Ross
695c78f631 Fix previously broken Farsi translations 2025-05-30 21:36:00 +03:00
Ilia Ross
8e81bd0f93 Add all new UI functions from the theme to the core
[no-build]
2025-05-27 01:46:31 +03:00
Ilia Ross
5d83d4040f Add support for showing gender-neutral translations
https://github.com/webmin/webmin/discussions/2482
https://forum.virtualmin.com/t/on-the-rejection-of-gender-neutral-language/133527

833292c0d1

fe064dd57d

4a19a6460b
2025-05-26 16:46:09 +03:00
Ilia Ross
833292c0d1 Add exported German language-neutral strings
https://github.com/webmin/webmin/discussions/2482
https://forum.virtualmin.com/t/on-the-rejection-of-gender-neutral-language/133527
2025-05-26 14:48:11 +03:00
Ilia Ross
532a8042c7 Fix to use German rules most people already accept 2/2
https://github.com/webmin/webmin/discussions/2482
2025-05-24 21:46:34 +03:00
Ilia Ross
501698ad4b Fix to use German rules most people already accept 1/2
https://github.com/webmin/webmin/discussions/2482
2025-05-24 20:43:25 +03:00
MacSteini
a6f0d4cbcd Updated de 2025-05-21 12:55:29 +01:00
Ilia Ross
88c9fa54f1 Fix to use neutral key name 2025-05-05 16:17:19 +03:00
Ilia Ross
35bdbe19f0 Fix typo 2025-05-03 00:57:38 +03:00
Jamie Cameron
3f5ae24beb Ask for password twice 2025-04-21 19:56:20 -07:00
Jamie Cameron
4c60aa1865 Include username is email subject 2025-04-20 11:15:17 -07:00
Jamie Cameron
cf50dd2431 Start of work on password reset rate limiting 2025-04-20 10:54:39 -07:00
Jamie Cameron
a04646e785 Cannot reset password if you're logged in 2025-04-20 10:30:14 -07:00
Jamie Cameron
167e8f2b1f support unix user password changes 2025-04-18 22:01:56 -07:00
Jamie Cameron
a664809bf4 Implement forgotted password reset for Virtualmin users 2025-04-17 22:11:39 -07:00
MacSteini
625fff0c6f Update de 2025-04-16 11:32:22 +01:00