Compare commits

...

972 Commits

Author SHA1 Message Date
Jamie Cameron
0bbeb5f4f7 Merge pull request #2416 from abcbarryn/modules/legacy
Added local copy of perl ini module
2025-02-18 22:09:07 -08:00
Barry Nelson
7d24ec6846 Add local copy of perl ini module 2025-02-19 00:23:37 -05:00
Barry Nelson
7383e6ad8d Merge pull request #10 from webmin/modules/legacy
Update branch
2025-02-19 00:21:46 -05:00
Jamie Cameron
f42adffc15 Merge pull request #2404 from abcbarryn/modules/legacy
Perl scripts to enable XDMCP
2025-02-11 20:09:03 -08:00
Barry Nelson
13de6fea4e Perl script to enable XDMCP
This update will enable XDMCP which is required for the VNC client to function. This has been tested on CentOS stream 9 and SuSE Linux. It will create .bak files of the original configuration.
2025-02-11 18:15:09 -05:00
Barry Nelson
861462d499 Merge pull request #7 from webmin/modules/legacy
Merge pull request #2399 from abcbarryn/modules/legacy
2025-02-09 23:19:54 -05:00
Jamie Cameron
0ed2109fed Merge pull request #2399 from abcbarryn/modules/legacy
Completely disable http/https on port 6080.
2025-02-09 17:21:43 -08:00
Barry Nelson
452958387c Update create VNC service script.
Support systems without xinetd that use systemd instead, also detect if GDM is used and XDMCP is disabled and enabled it. The use still has to open the port for the web socket (default 6080) in the firewall themselves though. Tested on CentOS 9 and an older SuSE Linux.
2025-02-09 01:36:19 -05:00
Barry Nelson
0a51170d3c Patch to completely disable http/https protocol on port 6080.
Only wss (web socket proxy) protocol is enabled on port 6080 and that is required.
2025-02-07 13:55:55 -05:00
Barry Nelson
767aa3a353 Delete vnc/empty directory 2025-02-07 13:52:23 -05:00
Barry Nelson
7fadece759 Merge pull request #6 from webmin/modules/legacy
Merge pull request #2395 from abcbarryn/modules/legacy
2025-02-07 00:29:10 -05:00
Jamie Cameron
32502d0ec9 Merge pull request #2395 from abcbarryn/modules/legacy
This contains no changed files
2025-02-06 21:10:46 -08:00
Barry Nelson
40d42664dd Turn off web directory indexes on web sock proxy and spoof 404 error on vnc.html 2025-02-06 12:42:39 -05:00
Barry Nelson
02d2f59663 Delete vnc/empty/index.html 2025-02-06 12:40:12 -05:00
Barry Nelson
f63e31dd7e Dummy VNC page for web sock proxy 2025-02-06 01:31:45 -05:00
Barry Nelson
ec679ad594 Restricted VNC web page to Webmin and added credits. 2025-02-06 01:29:43 -05:00
Barry Nelson
b5ec296302 Merge pull request #4 from webmin/modules/legacy
Merge pull request #2391 from abcbarryn/modules/legacy
2025-02-06 01:21:09 -05:00
Jamie Cameron
0c7024863a Merge pull request #2391 from abcbarryn/modules/legacy
New VNC module
2025-02-04 19:16:35 -08:00
Barry Nelson
700b0b49fe Finished updating VNC to the new java script version 2025-02-04 18:16:48 -05:00
Barry Nelson
0d87f98edf Add files via upload 2025-02-04 18:15:08 -05:00
Barry Nelson
aa60c17d14 Add files via upload 2025-02-04 18:13:00 -05:00
Barry Nelson
6ef110bcff Add files via upload 2025-02-04 18:12:14 -05:00
Barry Nelson
d8e2ba9d06 Add files via upload 2025-02-04 18:11:15 -05:00
Barry Nelson
c0df2266f3 Add files via upload 2025-02-04 18:09:54 -05:00
Barry Nelson
44a727f3f9 Add files via upload 2025-02-04 18:08:22 -05:00
Barry Nelson
4f16a893b2 Add files via upload 2025-02-04 18:07:28 -05:00
Barry Nelson
8ec49e117a Add files via upload 2025-02-04 18:06:31 -05:00
Barry Nelson
284533ccbf Recreate vnc folder for version 2.0 using java script 2025-02-04 18:05:12 -05:00
Barry Nelson
61013cd1e0 Delete vnc directory 2025-02-04 18:04:07 -05:00
Barry Nelson
67bde6a6fc Delete vnc/lang directory 2025-02-04 18:03:22 -05:00
Barry Nelson
b46b118f76 Delete vnc/images directory 2025-02-04 18:03:00 -05:00
Barry Nelson
5c046d9250 Patches to allow for 4096 bit keys. 2025-02-04 17:57:04 -05:00
Ilia Ross
577b9a9691 Preserve unsupported legacy modules 2025-02-02 14:52:02 +02:00
Ilia Ross
699de35596 Fix to create correct rc script
2b357cf0f1 (r152033120)
2025-02-02 13:57:35 +02:00
Ilia Ross
9d5d790526 Fix to ensure systemd custom units are created in the correct directory 2025-02-01 21:23:22 +02:00
Ilia Ross
433c4151fe Update translations 2025-02-01 12:18:33 +02:00
Ilia Ross
07e1655e14 Fix to improve option name 2025-02-01 12:04:10 +02:00
Jamie Cameron
44f4283009 Add missing blank line 2025-01-31 19:41:14 -08:00
Jamie Cameron
f330307803 Merge branch 'master' of github.com:webmin/webmin 2025-01-31 19:40:32 -08:00
Jamie Cameron
8595a36f18 Don't show extensions UI when we enable them via packages https://forum.virtualmin.com/t/there-is-a-problem-with-php-extensions/124552 2025-01-31 19:40:25 -08:00
Ilia Ross
121b20caa0 Fix button id to be more distinctive for easier styling 2025-01-31 19:38:17 +02:00
Ilia Ross
198b25e3a3 Fix only display the bottom form when there are too many users 2025-01-31 19:25:00 +02:00
Ilia Ross
d70496aac9 Fix broken Fetchmail page 2025-01-31 15:11:21 +02:00
Jamie Cameron
14f9624ac4 Also check file size in the cache 2025-01-29 20:54:28 -08:00
Jamie Cameron
8727a6cc8e Merge branch 'master' of github.com:webmin/webmin 2025-01-29 20:44:49 -08:00
Jamie Cameron
60ce4c81fe Cleanup code that checks the cache 2025-01-29 20:39:57 -08:00
Ilia Ross
ba81b22e55 Fix to revert File::Copy for compatibility with earlier versions of Perl 2025-01-29 21:22:21 +02:00
Jamie Cameron
6e6c9c26c7 Logic cleanup 2025-01-27 21:55:06 -08:00
Jamie Cameron
8d0367e6e6 Merge branch 'master' of github.com:webmin/webmin 2025-01-27 21:47:03 -08:00
Jamie Cameron
60bba6cb81 Modes can be a regular array 2025-01-27 21:44:53 -08:00
Ilia Ross
ee3bf19a9b Add ability to set optional preferences for repository 2025-01-27 12:44:48 +02:00
Ilia Ross
da6b548876 Fix description padding 2025-01-26 22:56:35 +02:00
Jamie Cameron
ad0b28abf7 Always update the usermin version, since we don't need to check that their os_list files are in sync 2025-01-25 17:52:54 -08:00
Jamie Cameron
401631daec Merge pull request #2284 from webmin/dev/support-deb822-style-repos
Add support for listing `deb822-style` repos
2025-01-25 12:13:02 -08:00
Ilia Ross
ee33579600 Fix to prioritize brevity over readability 2025-01-25 21:17:12 +02:00
Jamie Cameron
ff065a5647 On some systems /proc/mdstat doesn't exist until the first RAID device is created https://github.com/webmin/webmin/issues/1736 2025-01-25 10:04:35 -08:00
Jamie Cameron
e7d2dc8b67 Merge branch 'master' of github.com:webmin/webmin 2025-01-25 09:38:49 -08:00
Jamie Cameron
b95c96e501 Include zone name in deleted records log message 2025-01-25 09:38:21 -08:00
Ilia Ross
ad540808df Add support for recommended packages 2025-01-24 13:26:54 +02:00
Ilia Ross
a73f7cf6d7 Fix sub name 2025-01-24 11:54:51 +02:00
Jamie Cameron
24d39f631d If just one record is deleted, log it differently 2025-01-23 16:36:45 -08:00
Jamie Cameron
9c4e2d7653 Merge pull request #2371 from webmin/dev/bandwidth-firewalld
Add support for bandwidth monitoring with Firewalld and Journald
2025-01-23 16:03:16 -08:00
Ilia Ross
ae5c7a9db9 Revert "Fix to log each deleted DNS record individually"
This reverts commit 1ad15e0bfb.
2025-01-23 12:43:21 +02:00
Ilia Ross
1ce380f037 Fix to assume that an old process can still be running during upgrade 2025-01-23 12:01:32 +02:00
Jamie Cameron
300d34e303 Merge pull request #2373 from webmin/dev/drop-authen-oath
Fix to replace `Authen::OATH` validation with simpler `Digest::HMAC_SHA1`
2025-01-22 19:00:06 -08:00
Ilia Ross
81afd08b0d Fix to replace Authen::OATH validation with simpler Digest::HMAC_SHA1 2025-01-23 02:52:09 +02:00
Ilia Ross
87a2871013 Fix to drop no longer needed Authen::OATH and its deps 2025-01-23 02:45:40 +02:00
Ilia Ross
e2dd91febc Update vendor_perl libs 2025-01-23 01:54:02 +02:00
Jamie Cameron
2008ad63fb Merge branch 'master' of github.com:webmin/webmin 2025-01-21 20:05:23 -08:00
Jamie Cameron
fcdebf6891 Some systems use the event MPM instead of prefork https://github.com/webmin/webmin/issues/2365 2025-01-21 20:05:15 -08:00
Ilia Ross
d0e7a4efde Fix to correct port validation in Fail2Ban
https://forum.virtualmin.com/t/possible-bug-on-fail2ban-jail-edit/130165?u=ilia
2025-01-22 01:53:54 +02:00
Ilia Ross
1ad15e0bfb Fix to log each deleted DNS record individually
https://github.com/webmin/webmin/pull/2369#issuecomment-2605135007
2025-01-21 21:17:25 +02:00
Ilia Ross
5427420d3c Add Fail2Ban placeholders support for backend
https://forum.virtualmin.com/t/fail2ban-will-not-start/128934/7
2025-01-21 14:03:35 +02:00
Ilia Ross
dd4ae09642 Add endlessly better graphs filling and positioning 2025-01-21 01:31:43 +02:00
Ilia Ross
5d31698099 Fix to always prioritize Journald 2025-01-21 00:17:25 +02:00
Ilia Ross
72fef64c4d Fix variable being in the wrong scope 2025-01-21 00:00:02 +02:00
Ilia Ross
3258e1cbac Revert "Merge pull request #2369 from cstrotm/delete-record-extra-log"
This reverts commit fe1043a6aa, reversing
changes made to 42beaf915a.
2025-01-20 23:55:24 +02:00
Jamie Cameron
fe1043a6aa Merge pull request #2369 from cstrotm/delete-record-extra-log
Delete record extra log
2025-01-20 10:58:20 -08:00
Ilia Ross
cf79c33e28 Fix to use var directory for storing data 2025-01-20 18:39:21 +02:00
Ilia Ross
c0e09b4fa6 Add support for collecting bandwidth stats using Journald 2025-01-20 18:26:08 +02:00
Ilia Ross
785eb8646b Fix exit statuses and use lexical file handler 2025-01-20 18:15:08 +02:00
Ilia Ross
50be76165b Fix to handle output nicely 2025-01-20 18:03:31 +02:00
Carsten Strotmann
c4a0b18a49 Whitespace adjust 2025-01-20 16:02:14 +01:00
Ilia Ross
aae7bb5ac8 Fix code readability and scoping 2025-01-20 16:19:38 +02:00
Ilia Ross
67391244e4 Fix to lock module config 2025-01-20 15:29:33 +02:00
Ilia Ross
1cf778b627 Fix to remove comments, as no work required here really 2025-01-20 15:11:36 +02:00
Ilia Ross
39af4f2328 Fix to let *tables decide which log level (defaults to 4) 2025-01-20 14:22:26 +02:00
Ilia Ross
42beaf915a Merge pull request #2368 from MacSteini/master
Update de
2025-01-20 13:59:38 +02:00
MacSteini
fbdbedd3bc Update de 2025-01-20 11:26:10 +00:00
Carsten Strotmann
98f7a86f71 Add additional information when deleting records 2025-01-20 09:47:50 +01:00
Ilia Ross
1506238c7b Add FirewallD with Journald labels and generalize language for all supported systems 2025-01-20 02:42:01 +02:00
Ilia Ross
9e3918e813 Fix language for consistency 2025-01-20 02:13:38 +02:00
Ilia Ross
9160dc5735 Add missing syslog function 2025-01-20 01:55:25 +02:00
Ilia Ross
8e4bfff29e Add check for FirewallD 2025-01-20 01:54:48 +02:00
Ilia Ross
40b61a6c22 Add FirewallD to config info 2025-01-20 01:42:14 +02:00
Ilia Ross
a014d5b59f Add API to support FirewallD 2025-01-20 01:40:49 +02:00
Ilia Ross
d1e4c5d577 Add API to handle direct rules in FirewallD 2025-01-20 01:16:05 +02:00
Ilia Ross
da52526931 Fix to support log action when listing 2025-01-19 22:58:12 +02:00
Ilia Ross
0363812172 Add rich rule helper function 2025-01-19 21:24:36 +02:00
Ilia Ross
8acf9980f8 Fix variable scope 2025-01-19 19:56:06 +02:00
Ilia Ross
af3ee1034f Add check for which IP families are enabled on the system 2025-01-19 19:32:55 +02:00
Ilia Ross
186e578802 Add validation for CIDR too 2025-01-19 19:30:22 +02:00
Ilia Ross
a2520b4396 Fix special case for unspecified address when checking IPv6 2025-01-19 19:21:46 +02:00
Ilia Ross
38f0ccc155 Add API to check if rich rule exists 2025-01-19 01:26:57 +02:00
Ilia Ross
73132e7f86 Fix to separate the logic for constructing and setting rich rule 2025-01-19 01:22:16 +02:00
Ilia Ross
d4d963910d Fix messy rich-rule API 2025-01-18 23:33:35 +02:00
Ilia Ross
80ce9a7ef4 Merge pull request #2366 from MacSteini/master
Update de
2025-01-18 15:53:37 +02:00
Ilia Ross
314d6c5efc Add ability to resolve compatibility-level conditionals
https://sourceforge.net/p/webadmin/bugs/5653/
2025-01-18 15:17:39 +02:00
MacSteini
260eca09ae Update de 2025-01-18 04:02:04 +00:00
Ilia Ross
0928edaa08 Add further fixes (final) to support latest contemporary OpenSSH 2025-01-17 23:00:08 +02:00
Ilia Ross
5df04a50bd Fix factored out function to correctly sort one file by another 2025-01-17 22:28:18 +02:00
Ilia Ross
0dab0c08ed Update translations 2025-01-17 22:21:26 +02:00
Ilia Ross
0b80083a9c Add improvements to display allowed login modes 2025-01-17 21:56:04 +02:00
Ilia Ross
bb8421c411 Fix support for SSH deprecated option on 'Authentication' page 2025-01-17 14:56:22 +02:00
Ilia Ross
6b3457e9fd Fix to drop removed SSH options from 'Miscellaneous Options' page 2025-01-17 14:26:36 +02:00
Ilia Ross
f5e15dbe08 Fix to re-use method for getting SSH socket unit 2025-01-17 04:41:41 +02:00
Ilia Ross
78d5332499 Add support to configure SSH socket #2356 2025-01-17 04:35:57 +02:00
Ilia Ross
761a879919 Add ability to return filtered systemd unit options 2025-01-16 21:45:47 +02:00
Ilia Ross
1c8c259eae Add API to edit systemd units 2025-01-16 15:02:54 +02:00
Ilia Ross
98a8fa9e22 Fix to rename the workflow file
https://github.com/webmin/webmin/issues/2362
2025-01-16 01:08:15 +02:00
Ilia Ross
d10bd3a601 Revert "Add config option to allow auto-refresh of Running Processes module"
This reverts commit a379c1f3ed.
2025-01-16 00:07:05 +02:00
Ilia Ross
a379c1f3ed Add config option to allow auto-refresh of Running Processes module
https://github.com/webmin/webmin/issues/2251#issuecomment-2283057260
2025-01-15 23:58:54 +02:00
Ilia Ross
99a59ed554 Fix to factor out a function with different logic 2025-01-15 13:19:22 +02:00
Ilia Ross
f15ebca9af Fix indents 2025-01-15 12:20:38 +02:00
Jamie Cameron
cc25fa2b32 Use formal params 2025-01-14 21:05:54 -08:00
Jamie Cameron
9ccb944291 Merge branch 'master' of github.com:webmin/webmin 2025-01-14 19:19:49 -08:00
Jamie Cameron
6114028aea Set old user environment variables https://github.com/virtualmin/virtualmin-gpl/issues/995 2025-01-14 19:14:45 -08:00
Ilia Ross
41887071c0 Merge branch 'master' of github.com:webmin/webmin 2025-01-15 02:28:00 +02:00
Ilia Ross
468a570adf Add cat_systemd sub to parse systemd unit config 2025-01-15 02:27:50 +02:00
Jamie Cameron
1a45048d89 Temp filename should include a counter to ensure uniqueness 2025-01-14 15:51:02 -08:00
Jamie Cameron
846b611455 Merge branch 'master' of github.com:webmin/webmin 2025-01-14 15:40:34 -08:00
Jamie Cameron
27ac760466 Using _ seems risky 2025-01-14 15:40:10 -08:00
Ilia Ross
dedfc90e71 Fix comment 2025-01-15 01:34:08 +02:00
Ilia Ross
89ae8632e0 Add is_active_systemd sub 2025-01-15 01:23:03 +02:00
Ilia Ross
a508a10f54 Merge pull request #2360 from MacSteini/master
Update de
2025-01-15 01:19:13 +02:00
MacSteini
4ea1303a40 Update de 2025-01-14 23:17:00 +00:00
Ilia Ross
9d48afe562 Fix to disable explicitly 2025-01-14 19:15:35 +02:00
Jamie Cameron
edccfc4533 Merge branch 'master' of github.com:webmin/webmin 2025-01-14 08:35:16 -08:00
Jamie Cameron
4d70ada051 Handle zero values properly 2025-01-14 08:35:11 -08:00
Ilia Ross
c0f69446b3 Fix support for idle conns in contemporary SSH 2025-01-14 15:23:22 +02:00
Ilia Ross
aab912dccf Fix setting Protocol directive in contemporary SSH 2025-01-14 03:14:21 +02:00
Jamie Cameron
66a792292a Run cron commands in the user's home dir https://github.com/webmin/webmin/issues/2355: 2025-01-12 09:25:26 -08:00
Jamie Cameron
a291502d24 Merge branch 'master' of github.com:webmin/webmin 2025-01-11 15:52:40 -08:00
Jamie Cameron
cfb7f9b560 hash in port needs to be quoted https://github.com/webmin/webmin/issues/2357 2025-01-11 15:52:31 -08:00
Ilia Ross
7eb8e4d336 Fix to improve new params names 2025-01-11 05:31:14 +02:00
Ilia Ross
ec4b331709 Fix repo name consistency 2025-01-11 04:52:01 +02:00
Ilia Ross
ed31389087 Add ability to exclude packages if defined 2025-01-11 04:46:40 +02:00
Ilia Ross
23aa974014 Fix typo 2025-01-10 16:36:53 +02:00
Ilia Ross
1ceabeb841 Fix workflow to correctly trigger workflow on release 2025-01-10 03:05:46 +02:00
Ilia Ross
5478a4fc87 Dev: Revert to build on tag as all works fine now [no-build] 2025-01-09 04:30:09 +02:00
Ilia Ross
16df7857a4 Dev: Force tagged release for testing 2025-01-09 04:15:33 +02:00
Ilia Ross
8223f24b2b Fix to test new master template with tagged releases support 2025-01-09 04:14:24 +02:00
Jamie Cameron
30b2791669 Merge pull request #2354 from mckaygerhard/master-fix-init-openrc-gentoo-alpine
update openrc based outdated script in sync with current gentoo and alpine
2025-01-08 09:33:42 -08:00
Jamie Cameron
09418cec2e Merge branch 'master' of github.com:webmin/webmin 2025-01-08 08:39:18 -08:00
Jamie Cameron
f9e2f1a0be Better default if apache isn't installed 2025-01-08 08:37:00 -08:00
mckaygerhard
de140fa55c update openrc gentoo based outdated script in sync with current gentoo
* This script its from ancient webmin era.. we need up to date to
  be able to use for alpine and modern gentoo linux distributions,
  gentoo still uses Openrc for many things no matter if you choose
  other init systems
* Fix status command not available to, by the detection of the pid,
  this is using the config pid variable from webmin config miniserv
  is need for future support on issue #2353 and related to #835 that
  just assume init sysv systems or the other s*** only.
  Still is pending future support for openrc init system but with
  this path next changes are more easy to do
2025-01-08 10:16:26 -04:00
Ilia Ross
f6f0dee117 Add support for configuring protected repos requiring authentication 2025-01-07 23:58:57 +02:00
Ilia Ross
9636b82f55 Update repo meta for RPM-based distros too 2025-01-07 23:08:15 +02:00
Ilia Ross
08ace21d34 Add better error handling 2025-01-07 23:07:39 +02:00
Ilia Ross
795040a0a5 Fix to update how message is shown in force mode 2025-01-07 22:21:03 +02:00
Ilia Ross
77df6875c2 Fix to improve release naming 2025-01-07 05:29:30 +02:00
Ilia Ross
c1989caae1 Fix to use simpler default host for edge releases 2025-01-07 04:51:50 +02:00
Ilia Ross
8517809ae0 Add further improvements to repo setup script
* This change enables configuration of any RC or cutting-edge repo across the project using the same signing key (Webmin Developers )
2025-01-07 03:43:21 +02:00
Jamie Cameron
6a9f7a7f7e Merge branch 'master' of github.com:webmin/webmin 2025-01-05 09:45:41 -08:00
Jamie Cameron
80bfbf30dc Only read one XML file https://github.com/webmin/webmin/issues/2351 2025-01-05 09:45:34 -08:00
Ilia Ross
1ce2c9f1c2 Add known hosts to be set up 2025-01-04 01:40:54 +02:00
Ilia Ross
f73f8cfb55 Update secret 2025-01-02 19:56:10 +02:00
Ilia Ross
9133a10b5d Fix to pass secrets 2025-01-02 18:53:54 +02:00
Ilia Ross
3c75e74b8b Fix the branch name for reusable workflow 2025-01-02 16:05:49 +02:00
Ilia Ross
9749106ccf Fix to update master workflow path (corrected) 2025-01-02 16:03:40 +02:00
Ilia Ross
1297ad22c8 Fix to update master workflow path 2025-01-02 15:59:33 +02:00
Ilia Ross
04eaedb299 Fix to use webmin/webmin-ci-cd reusable template 2025-01-02 15:54:15 +02:00
Ilia Ross
bdf6e37de8 Fix support for setting up SUSE distros 2025-01-02 14:30:19 +02:00
Ilia Ross
1555dfe168 Merge pull request #2349 from rhabacker/master
Generation of repo files for (open)suse distributions added
2025-01-02 14:28:38 +02:00
Ralf Habacker
8f8ea12e98 Generation of repo files for (open)suse distributions added 2025-01-02 11:54:55 +01:00
Jamie Cameron
cd69218e1b Merge branch 'master' of github.com:webmin/webmin 2025-01-01 16:15:05 -08:00
Jamie Cameron
a5085ccb23 There may be multiple additional parameters https://github.com/webmin/webmin/issues/2348 2025-01-01 16:14:55 -08:00
Ilia Ross
79e248cf98 Add support for updated environment
[build]
2025-01-01 17:36:56 +02:00
Ilia Ross
11aacce9f6 Fix help 2024-12-31 19:14:47 +02:00
Ilia Ross
8de2dbb795 Add ability to set prefix 2024-12-31 19:10:19 +02:00
Ilia Ross
5113f6d076 Add support for Obsoletes: in RPM 2024-12-31 18:54:56 +02:00
Ilia Ross
65b36d6c07 Fix to set maintainer correctly 2024-12-31 17:30:45 +02:00
Ilia Ross
d737c638aa Fix to remove debug info 2024-12-31 17:30:19 +02:00
Ilia Ross
6d90370b0b Add debug info about env variables 2024-12-31 17:22:05 +02:00
Ilia Ross
b58ba1cb3b Fix to allow maintainer to be configurable
[build]
2024-12-31 16:42:03 +02:00
Ilia Ross
a6005361b5 Fix to move CI/CD to dedicated repo 2024-12-31 03:31:20 +02:00
Ilia Ross
2a81aabf96 Fix to correctly handle builds for multiple types 2024-12-31 03:18:44 +02:00
Ilia Ross
ee994bef2f Fix not to fail on rebuilds 2024-12-31 03:10:33 +02:00
Ilia Ross
871152f723 Fix to optimize package repo pulling and scoping 2024-12-31 03:03:02 +02:00
Ilia Ross
7ed1497f8d Fix to spin slower 2024-12-31 01:45:23 +02:00
Ilia Ross
1a4f461ae5 Fix spinner to be simple to work in non-interactive CI/CD 2024-12-31 01:36:19 +02:00
Ilia Ross
b945282489 Fix to simplify workflow name 2024-12-31 00:40:42 +02:00
Ilia Ross
e9ef704787 Fix to try to use single depth when cloning 2024-12-31 00:36:22 +02:00
Ilia Ross
c122d13747 Fix to rename workflow filename 2024-12-31 00:33:44 +02:00
Ilia Ross
742dcdc022 Add proper bootstrapping for other repos in CI/CD 2024-12-31 00:07:17 +02:00
Ilia Ross
5d01d93f67 Fix to drop verbose as we successfully reworked CI/CD scripts primarily 2/3 2024-12-30 23:34:05 +02:00
Ilia Ross
5d981550af Fix to avoid trailing spaces when dealing with ssh and scp commands in CI/CD
[build]
2024-12-30 23:29:17 +02:00
Ilia Ross
a5302c109a Add more debug when uploading (CI/CD)
[build]
2024-12-30 23:16:42 +02:00
Ilia Ross
d755168d12 Fix setup SSH error print logic in CI/CD 2024-12-30 23:16:07 +02:00
Ilia Ross
d8f669b7df Add more details when uploading (CI/CD)
[build]
2024-12-30 23:00:28 +02:00
Ilia Ross
5a44632bd1 Fix to abstract key path in repo setup CI/CD 2024-12-30 22:44:29 +02:00
Ilia Ross
9ce7706ff2 Fix setup SSH logic in CI/CD 2024-12-30 22:41:47 +02:00
Ilia Ross
160895f5e2 Add reworked CI/CD 1/2
[build]
2024-12-30 22:25:17 +02:00
Ilia Ross
7249984dee Fix to make old repo setup script work #2347 2/2 2024-12-30 20:06:41 +02:00
Ilia Ross
c6b216ee32 Fix to make old repo setup script work #2347 2024-12-30 18:36:38 +02:00
Ilia Ross
357392eb84 Merge pull request #2346 from MacSteini/master
Updated de & fr
2024-12-30 13:14:27 +02:00
MacSteini
2f46acff31 Updated de 2024-12-30 01:27:56 +00:00
MacSteini
9511fc342f Updated de & fr
Updated de

Made a fundamental mistake the last time I ran an automated script and messed up quota/lang/fr
2024-12-30 01:24:20 +00:00
Jamie Cameron
d590ed3f54 Merge pull request #2344 from webmin/dev/setup-repos-consolidate
Add improvement to repos setup script
2024-12-29 17:03:25 -06:00
Ilia Ross
416c614d6c Fix to update moved home for webmin.dev testing builds 2024-12-29 14:47:09 +02:00
Ilia Ross
21bf12a897 Fix to drop deleting files upon upload as it deletes all files unconditionally 2024-12-29 05:26:40 +02:00
Ilia Ross
ad7f7e84b1 Fix for path not to be treated as literal 2024-12-29 05:19:15 +02:00
Ilia Ross
132a223d5c Fix to enter correct directory before deleting 2024-12-29 04:44:19 +02:00
Ilia Ross
66ee14b2a6 Fix to avoid immediate expansion 2024-12-29 04:33:48 +02:00
Ilia Ross
acc820debf Fix to clear files before upload 2024-12-29 04:26:04 +02:00
Ilia Ross
9d4db5bc42 Fix to skip moving file completely as the name already what we want 2024-12-29 04:19:27 +02:00
Ilia Ross
b39486de66 Fix not to move into itself 2024-12-29 04:14:25 +02:00
Ilia Ross
5bc24cff74 Fix clean up 2024-12-29 04:08:36 +02:00
Ilia Ross
d083cffd50 Fix typo when print tar package version 2024-12-29 03:57:10 +02:00
Ilia Ross
af150c9210 Fix to add proper packages names 2024-12-29 03:53:18 +02:00
Ilia Ross
64084c3b90 Dev: Disable debug 2024-12-29 03:37:34 +02:00
Ilia Ross
d24e3bf3aa Dev: Fix to enable debug 2024-12-29 03:35:27 +02:00
Ilia Ross
9ac2a45822 Fix to use a consistent flag name 2024-12-29 03:28:54 +02:00
Ilia Ross
09a00bd839 Add support for building Webmin modules in CI/CD 1/2 2024-12-29 03:15:00 +02:00
Ilia Ross
b755ce9daf Fix to use dedicated function for directory delete 2024-12-29 02:01:33 +02:00
Ilia Ross
ebab02c15b Fix not to depend on mod_def_list.txt file 2024-12-28 22:43:22 +02:00
Ilia Ross
38d6309e57 Update translations 2024-12-28 12:48:17 +02:00
Ilia Ross
75d91469ed Fix message to be less confusing
Ref.: https://github.com/webmin/webmin/pull/2345
2024-12-28 12:41:07 +02:00
Ilia Ross
980a0f37fc Merge pull request #2345 from swelljoe/server-was-confusing
A user was confused by 'The Webmin server'
2024-12-28 12:35:20 +02:00
Ilia Ross
899c385032 Fix to simplify repo name 2024-12-28 12:27:30 +02:00
Joe Cooper
444b437ba3 A user was confused by 'The Webmin server' 2024-12-28 00:36:55 -06:00
Ilia Ross
cefdce5911 Add improvement to repos setup script 2024-12-28 01:28:59 +02:00
Ilia Ross
07da92a2e7 Add support for sortable dates in tables 1/2 2024-12-25 13:47:03 +02:00
Ilia Ross
4ad3f1e2b6 Add ability to adjust font size in terminal module 2024-12-25 01:03:42 +02:00
Ilia Ross
2b0abd778e Fix line height for the text inside details 2024-12-23 22:46:44 +02:00
Ilia Ross
53b84887cd Fix cursor for the text inside details 2024-12-23 22:32:08 +02:00
Ilia Ross
e6e65a5d32 Fix embedded font size into inline details 2024-12-23 22:08:21 +02:00
Ilia Ross
554f0b57a2 Fix to nicely support details inside second print 2024-12-23 21:50:22 +02:00
Jamie Cameron
2aad92ea53 Merge branch 'master' of github.com:webmin/webmin 2024-12-21 15:41:41 -08:00
Jamie Cameron
506f7a1819 If not binding to an IP, add a Listen directive for a custom port if needed https://github.com/webmin/webmin/issues/2341 2024-12-21 15:41:33 -08:00
Ilia Ross
56c0f5ea32 Fix to prefer JSON::XS over JSON::PP 2024-12-21 22:50:52 +02:00
Ilia Ross
94bb4921d2 Merge pull request #2340 from MacSteini/master
DE update & whitespace trimming of language files
2024-12-20 18:51:37 +02:00
MacSteini
357bed0506 Update de 2024-12-20 16:19:15 +00:00
MacSteini
901e324bae DE update & whitespace trimming of language files 2024-12-20 16:04:32 +00:00
Jamie Cameron
19eb916cc1 Merge branch 'master' of github.com:webmin/webmin 2024-12-19 18:21:51 -08:00
Jamie Cameron
46403a77b1 Add docs on trust remote proxy features 2024-12-19 18:18:44 -08:00
Jamie Cameron
b174973984 Merge pull request #2339 from MacSteini/master
Leading Space Removal
2024-12-19 11:26:59 -08:00
MacSteini
6e9cb986ad Leading Space Removal
Removed leading spaces from language files
2024-12-19 16:10:31 +00:00
Ilia Ross
95501e1c29 Merge pull request #2338 from MacSteini/master
Update de
2024-12-19 12:28:32 +02:00
MacSteini
ff36b2ce22 Update de 2024-12-19 10:07:50 +00:00
Jamie Cameron
b1a98f9b6c The default is any 2024-12-18 14:49:30 -08:00
Jamie Cameron
9329829732 If virtualmin is installed, just assume that it's in charge of spam delivery 2024-12-18 09:53:52 -08:00
Jamie Cameron
b82c01c4ff Move check for procmail into a separate function to avoid bloating index.cgi 2024-12-18 09:50:45 -08:00
Jamie Cameron
59e97be96c Clean up indentatiuon 2024-12-18 09:43:53 -08:00
Jamie Cameron
5363e461e4 Merge branch 'master' of github.com:webmin/webmin 2024-12-17 21:45:45 -08:00
Jamie Cameron
efae1cf754 Add UI option to control if SSL client cert is trusted 2024-12-17 21:45:00 -08:00
Ilia Ross
2732142969 Fix to preserve to comments #2333 2024-12-16 21:54:28 +02:00
Ilia Ross
5498afecb4 Merge pull request #2337 from MacSteini/master
Update de
2024-12-16 19:45:28 +02:00
MacSteini
20a6a7d5e7 Update de 2024-12-16 17:45:15 +00:00
MacSteini
9d4b281069 Update de 2024-12-16 17:43:06 +00:00
Ilia Ross
cdb18f32e0 Merge pull request #2336 from MacSteini/master
Removed trailing spaces
2024-12-16 19:12:12 +02:00
MacSteini
162206949f Consecutive Spaces Replacement
Replaced multiple consecutive spaces with a single space
2024-12-16 16:57:09 +00:00
MacSteini
8fd971c970 Delete Space Scanner.zsh 2024-12-16 15:17:33 +00:00
MacSteini
5ea0cc6b42 Trailing Spaces Removal
Removed trailing spaces
2024-12-16 15:16:55 +00:00
Ilia Ross
5fde929295 Merge pull request #2335 from MacSteini/master
Blanks Removal
2024-12-16 15:06:02 +02:00
MacSteini
64598e5f39 Blanks Removal
Removed blanks before or after the equal sign
2024-12-16 12:59:19 +00:00
Jamie Cameron
6980e08f87 get_mysql_config must return an array ref 2024-12-14 13:30:41 -08:00
Jamie Cameron
3f09aeed14 Merge branch 'master' of github.com:webmin/webmin 2024-12-13 14:23:50 -08:00
Jamie Cameron
bdea86afa2 Set the temp dir after we've checked return status from cat 2024-12-13 14:23:40 -08:00
Jamie Cameron
46af488994 Merge pull request #2330 from MacSteini/master
Update de
2024-12-02 19:24:44 -08:00
MacSteini
53197ca536 Update de 2024-12-03 02:55:10 +00:00
MacSteini
a1066eb002 Update de 2024-12-03 02:51:07 +00:00
Jamie Cameron
b488e28550 Improve messages when installing packages, and association between PHP versions and package names 2024-12-01 16:59:26 -08:00
Jamie Cameron
226da2c60d Merge branch 'master' of github.com:webmin/webmin 2024-12-01 10:24:50 -08:00
Jamie Cameron
7de796620c Log and restart Apache/FPM after installing a PHP module 2024-12-01 10:24:40 -08:00
Jamie Cameron
0d8e877f85 Merge pull request #2328 from MacSteini/master
Update de
2024-11-30 17:42:48 -08:00
MacSteini
2f12268e4b Update de 2024-12-01 01:37:43 +00:00
Jamie Cameron
1db2df6bdf Merge branch 'master' of github.com:webmin/webmin 2024-11-30 08:30:57 -08:00
Jamie Cameron
85dd40d710 Add missing cgi script 2024-11-30 08:30:24 -08:00
Ilia Ross
f0fdb4cd89 Merge pull request #2327 from MacSteini/master
Updated de
2024-11-30 14:02:19 +02:00
MacSteini
df928c5487 Update de 2024-11-30 11:26:47 +00:00
MacSteini
6c573f0251 Updated de
Corrections (UTF-8, new lines at file end), amendments, updates
2024-11-30 11:24:13 +00:00
Jamie Cameron
51817a25bd Check-in missing file 2024-11-29 18:23:19 -08:00
Jamie Cameron
797ba9f45e Various fixes to support module install for the default version 2024-11-29 17:07:02 -08:00
Jamie Cameron
08b1ee3be6 Improve messages when installing a PHP module 2024-11-29 16:53:42 -08:00
Jamie Cameron
f9c9ff77b6 Merge branch 'master' of github.com:webmin/webmin 2024-11-29 16:05:52 -08:00
Jamie Cameron
dd42835d12 Work on support for installing PHP modules 2024-11-29 16:05:43 -08:00
Ilia Ross
c9b77043d8 Fix email message shown in iframe to match overall UI https://github.com/webmin/usermin/issues/122 2024-11-30 00:32:29 +02:00
Ilia Ross
4f78baf0b2 Fix line height in HTML mail message https://github.com/webmin/usermin/issues/121 2024-11-29 23:25:13 +02:00
Ilia Ross
c24d9dcdef Fix smaller and simpler html2text over lynx for converting HTML to text in mail 2024-11-29 23:20:08 +02:00
Ilia Ross
d82d31f92a Update translations (proftpd,filemin) 2024-11-29 15:12:53 +02:00
Jamie Cameron
310664de76 Merge pull request #2326 from swelljoe/less-inetd
Remove one mention of inetd
2024-11-28 17:15:38 -08:00
Joe Cooper
26e37add44 Russian and Ukrainian 2024-11-28 15:22:21 -06:00
Joe Cooper
465803f73f Remove one mention of inetd 2024-11-28 15:11:10 -06:00
Ilia Ross
d2db00a5d1 Add ability to control strict user ownership check #2300 2024-11-28 21:14:58 +02:00
Ilia Ross
83457fe4c0 Fix to test if delete, rename, paste and save is allowed #2300 2024-11-28 00:48:54 +02:00
Jamie Cameron
3c45598140 Merge branch 'master' of github.com:webmin/webmin 2024-11-27 09:04:15 -08:00
Ilia Ross
36de5bfc30 Merge pull request #2325 from MacSteini/master
Updated de
2024-11-27 13:42:08 +02:00
MacSteini
c461dfe965 Merge branch 'master' of https://github.com/MacSteini/webmin 2024-11-27 10:05:08 +00:00
MacSteini
d913d6c6a3 Updated de 2024-11-27 10:05:06 +00:00
Jamie Cameron
a539f46189 Ignore packages after the 'Obsoleting Packages' line https://forum.virtualmin.com/t/detection-of-available-package-updates-packages-available-from-multiple-repos/130651 2024-11-26 21:43:59 -08:00
Ilia Ross
4bd0c8a67f Merge pull request #2324 from MacSteini/master
Update de
2024-11-26 19:35:08 +02:00
MacSteini
4070f632de Merge branch 'webmin:master' into master 2024-11-26 14:01:02 +00:00
MacSteini
b6729f437e Update de
Corrected typo
2024-11-26 14:00:01 +00:00
Ilia Ross
26ab2110cb Merge pull request #2323 from MacSteini/master
Updated de
2024-11-26 12:25:54 +02:00
MacSteini
61cf8dcc73 Updated de
Corrections (UTF-8, new lines at file end), amendments, updates
2024-11-26 09:02:52 +00:00
Jamie Cameron
749f740bbb Merge pull request #2322 from MacSteini/master
Updated de
2024-11-25 21:12:52 -08:00
MacSteini
7cd1f70142 Merge branch 'webmin:master' into master 2024-11-26 01:44:22 +00:00
MacSteini
477982776c Updated de
Corrections (UTF-8, new lines at file end), amendments, updates
2024-11-26 01:43:34 +00:00
Jamie Cameron
96548df5f2 Merge branch 'master' of github.com:webmin/webmin 2024-11-25 15:48:21 -08:00
Jamie Cameron
1a0eed3943 Actually the hash map type is sometimes missing 2024-11-25 15:48:05 -08:00
Ilia Ross
94d366551a Merge pull request #2318 from MacSteini/master
Update de
2024-11-25 19:30:38 +02:00
MacSteini
dfd0924869 Revert "Files updated by Language Manager"
This reverts commit 9d25a07c12.
2024-11-25 17:19:01 +00:00
Ilia Ross
a2d5d68dcf Update translations 2024-11-25 16:06:36 +02:00
Ilia Ross
e7441b05ed Fix to display nicer 2024-11-25 16:00:16 +02:00
Ilia Ross
4b87ccb3c1 Fix to put editable options on the top of the list #2319 2024-11-25 15:44:16 +02:00
MacSteini
9d25a07c12 Files updated by Language Manager 2024-11-25 11:51:01 +00:00
MacSteini
37d5120977 Update de 2024-11-25 11:27:53 +00:00
Jamie Cameron
0178d7ae99 Merge branch 'master' of github.com:webmin/webmin 2024-11-24 22:34:13 -08:00
Jamie Cameron
c39e5ffb01 Allow modules to be enabled or disabled 2024-11-24 22:34:06 -08:00
Ilia Ross
4e5ba94818 Fix internal version to be integer #2313
[build]
2024-11-24 21:12:34 +02:00
Ilia Ross
599d096783 Add support for openEuler in repo setup script 2024-11-24 21:09:48 +02:00
Ilia Ross
55ae93e447 Add support for openEuler LTS and Innovation #2313
[build]
2024-11-24 20:49:27 +02:00
Jamie Cameron
e412d1a1e6 Start of work on being able to select PHP modules 2024-11-23 22:34:59 -08:00
Jamie Cameron
b69067e38f Cleanup UI code 2024-11-23 22:05:43 -08:00
Jamie Cameron
80e99b7b25 Don't use error handler that doesn't exist 2024-11-21 20:37:56 -08:00
Ilia Ross
4f945b0a4e Fix mail buttons text
https://github.com/webmin/usermin/issues/120
2024-11-19 21:03:58 +02:00
Ilia Ross
93a298a7d1 Fix to call post change theme 2024-11-19 13:21:34 +02:00
Ilia Ross
23871ff3a9 Fix to properly handle matching comma-separated named ports 2024-11-17 17:41:35 +02:00
Ilia Ross
5931243e4d Fix to instruct the browser not to save password fields
https://github.com/webmin/webmin/issues/847#issuecomment-2480540430

[build]
2024-11-17 14:00:56 +02:00
Jamie Cameron
5a8e7c5dee Merge branch 'master' of github.com:webmin/webmin 2024-11-16 13:15:05 -08:00
Jamie Cameron
4dd309829c Properly support un-set and all modes 2024-11-16 12:18:15 -08:00
Jamie Cameron
ab75637b7a Add proper logging of commands run 2024-11-16 12:17:45 -08:00
Ilia Ross
a6e0b3cee5 Update translations and include the new Polish translation 2024-11-16 14:03:39 +02:00
Ilia Ross
4a9ed9e8ab Update translations 2024-11-16 13:07:43 +02:00
Ilia Ross
a955ccc55c Update Polish translations (Package Updates) 2024-11-16 13:07:05 +02:00
Ilia Ross
ad43838cb6 Update Polish translations (ACL) 2024-11-16 13:05:44 +02:00
Ilia Ross
fbf85c6e76 Update Polish translations (Read User Mail) 2024-11-16 13:03:22 +02:00
Ilia Ross
c7eb185639 Update Polish translations (Disk and Network Filesystems) 2024-11-16 12:57:25 +02:00
Ilia Ross
eab8fae651 Update Polish translations (System Logs) 2024-11-16 12:49:26 +02:00
Ilia Ross
a5be6dc02a Update Polish translations (File Manager) 2024-11-16 12:41:01 +02:00
Jamie Cameron
0d72f56620 Merge pull request #2314 from MacSteini/master
Updated de
2024-11-13 17:14:45 -08:00
MacSteini
9a797f0a0e Updated de 2024-11-14 01:10:28 +00:00
Jamie Cameron
8fc26680dc Code cleanups 2024-11-13 16:56:11 -08:00
Jamie Cameron
7828756ed2 Merge branch 'master' of github.com:webmin/webmin 2024-11-13 09:26:17 -08:00
Jamie Cameron
4d8cc424f4 Fix inet_protocols field 2024-11-12 21:29:12 -08:00
Ilia Ross
591dda7199 Fix to remove deprecated call
[build]
2024-11-12 04:05:37 +02:00
Ilia Ross
54a72c5025 Fix comment 2024-11-12 03:56:19 +02:00
Ilia Ross
816328b643 Add an attempt to get disk IOs
https://github.com/webmin/webmin/issues/2311#issuecomment-2469338370

[build]
2024-11-12 03:51:47 +02:00
Ilia Ross
1fb332ff05 Fix to support network I/O on macOS 2024-11-12 01:48:26 +02:00
Ilia Ross
1c991f9635 Add check if some IOs related functions supported 2024-11-12 01:05:19 +02:00
Ilia Ross
c7a709c837 Add support for displaying CPU and disk data on the latest macOS #2311 2024-11-11 23:48:18 +02:00
Ilia Ross
950122068d Fix to support new brand_string in macOS #2311 2024-11-11 16:09:43 +02:00
Ilia Ross
e7d8f7271a Fix to use the same terminology and colors we use in dashboard 2024-11-10 22:19:00 +02:00
Ilia Ross
5dbefb1d42 Fix to clarify language 2024-11-10 21:35:07 +02:00
Ilia Ross
f152dafc3f Fix to consider filter form only of hours been generated 2024-11-10 21:33:29 +02:00
Ilia Ross
78eb57f55c Fix to print nicer alerts 2024-11-10 21:07:33 +02:00
Jamie Cameron
c91b322c60 Turn off autorenew for all webmin-generated certs, because we handle renewal internally https://github.com/virtualmin/virtualmin-gpl/issues/956 2024-11-09 21:17:45 -08:00
Jamie Cameron
be52cadfbe Add field for sql_mode https://github.com/webmin/webmin/issues/2306 2024-11-08 16:29:35 -08:00
Jamie Cameron
699c0820ea Debian has multiple CA paths 2024-11-08 15:18:51 -08:00
Jamie Cameron
444307c58a There could be multiple CA paths 2024-11-08 15:16:40 -08:00
Jamie Cameron
8dd0d03018 Remove ancient config that's specific to the long-gone MSC linux 2024-11-07 21:38:11 -08:00
Jamie Cameron
e2bc898b57 Add button to restart mysql https://github.com/webmin/webmin/issues/2309 2024-11-07 21:31:47 -08:00
Jamie Cameron
d826b3423f Add 'all' option for protocols 2024-11-03 13:06:30 -08:00
Jamie Cameron
70344dea10 Add more SMTP client options https://github.com/webmin/webmin/issues/2302 2024-11-01 21:14:24 -07:00
Jamie Cameron
33b2ebecfa Add field for inet_protocols https://github.com/webmin/webmin/issues/2302 2024-11-01 21:07:14 -07:00
Jamie Cameron
c26d653f5b QR code URL is different in Usermin https://github.com/webmin/usermin/issues/116 2024-10-30 21:19:41 -07:00
Jamie Cameron
db7c8b8770 Move QR code generation into library that is shared with Usermin https://github.com/webmin/usermin/issues/116 2024-10-30 21:15:04 -07:00
Jamie Cameron
6d6dd87d38 No need to show anything when flushing queue https://github.com/webmin/webmin/issues/2303 2024-10-30 21:11:07 -07:00
Jamie Cameron
580149f8bd Merge branch 'master' of github.com:webmin/webmin 2024-10-30 16:19:36 -07:00
Jamie Cameron
ee8d72b2e4 Fix wording so that users don't expect to see results https://github.com/webmin/webmin/issues/2303 2024-10-30 16:19:06 -07:00
Ilia Ross
a8a382ecc3 An attempt to address TOTP naming confusion 2024-10-24 01:43:33 +03:00
Ilia Ross
33afba1686 Fix to set default last to 1000
https://forum.virtualmin.com/t/is-this-process-normal-or-should-i-worry/128835/32?u=ilia
2024-10-23 01:29:23 +03:00
Ilia Ross
e43df47e41 Fix to set default last to 10000
https://forum.virtualmin.com/t/is-this-process-normal-or-should-i-worry/128835/32?u=ilia
2024-10-23 01:21:46 +03:00
Ilia Ross
1d57955672 Fix to call last command for the given user if no lastlog available 2024-10-22 19:19:47 +03:00
Jamie Cameron
42c4a39510 Allow input type to be specified in ui_opt_textbox 2024-10-21 16:35:48 -07:00
Jamie Cameron
adb047dd11 Clean up PID-based lock dir 2024-10-21 16:29:49 -07:00
Jamie Cameron
19edf0efd9 SPF record parts aren't space separate https://github.com/virtualmin/virtualmin-gpl/issues/935 2024-10-21 16:06:28 -07:00
Jamie Cameron
8f7a2f818f Merge branch 'master' of github.com:webmin/webmin 2024-10-20 20:12:39 -07:00
Jamie Cameron
ce70d4caab Fix inconsistency in locked_file_link 2024-10-20 18:05:11 -07:00
Ilia Ross
65d185bfdf Update translations 2024-10-20 16:17:42 +03:00
Ilia Ross
eb2cd4e142 Fix to display more accurate heading 2024-10-20 16:16:38 +03:00
Ilia Ross
21e110cc8a Fix to bring back support for limit in last command
https://forum.virtualmin.com/t/is-this-process-normal-or-should-i-worry/128835/10?u=ilia
2024-10-20 15:59:41 +03:00
Jamie Cameron
c1196f744a Clean up lock link on unlock https://forum.virtualmin.com/t/lock-files-building-up-in-var-webmin-locks/129859 2024-10-19 19:41:33 -07:00
Jamie Cameron
f9c355d127 Merge branch 'master' of github.com:webmin/webmin 2024-10-18 15:34:15 -07:00
Jamie Cameron
4ef76b2ed9 Make sure temporary lock link files are deleted https://forum.virtualmin.com/t/lock-files-building-up-in-var-webmin-locks/129859 2024-10-18 15:33:54 -07:00
Ilia Ross
072771f524 Add missing comment 2024-10-18 11:50:39 +03:00
Jamie Cameron
05382d840d fs has to be outside the command 2024-10-17 16:47:06 -07:00
Jamie Cameron
22beff5e92 Add missing . 2024-10-17 16:31:24 -07:00
Jamie Cameron
5ff7190f06 Do proper quoting for XFS commands 2024-10-17 15:18:30 -07:00
Jamie Cameron
66bf7c9e28 Merge branch 'master' of github.com:webmin/webmin 2024-10-16 19:47:36 -07:00
Jamie Cameron
06fe239c3f Add debug mode 2024-10-16 19:47:28 -07:00
Ilia Ross
00f11fc81d Fix to quote usernames in xfs_quota command
https://forum.virtualmin.com/t/issue-regarding-with-restore/129843/4?u=ilia
2024-10-16 12:28:39 +03:00
Ilia Ross
643270f3d9 Add old actual file names for backward compatibility #2296 2024-10-16 00:28:46 +03:00
Ilia Ross
262a1cb531 Update repos setup script name #2296 2024-10-16 00:22:11 +03:00
Ilia Ross
cef6f833fb Add missing my [build] 2024-10-16 00:15:43 +03:00
Jamie Cameron
084ed0b835 Default to using the default 2024-10-14 20:58:28 -07:00
Jamie Cameron
5182e4a428 Default to global notification address 2024-10-14 20:44:28 -07:00
Jamie Cameron
086f366954 Add UI field to use the global notify address, and respect it 2024-10-14 20:32:07 -07:00
Jamie Cameron
7476d48ab7 Use global to address as the default 2024-10-14 20:16:00 -07:00
Jamie Cameron
5992c7ba51 Respect global to address if set 2024-10-13 19:36:37 -07:00
Jamie Cameron
cc0ab1bc8a Respect global default destination address if set 2024-10-13 19:20:39 -07:00
Jamie Cameron
d1cc0c4790 Default to address should be in global config 2024-10-13 19:01:27 -07:00
Jamie Cameron
720b01e690 Remove old formatting HTML 2024-10-13 18:54:30 -07:00
Jamie Cameron
552d909078 Add field for default notification address 2024-10-13 18:51:29 -07:00
Jamie Cameron
1633f275db Make text boxes bigger 2024-10-13 11:40:39 -07:00
Jamie Cameron
c3bb0b09c2 Use commas to separate dissable functions https://github.com/virtualmin/virtualmin-gpl/issues/753 2024-10-13 10:11:30 -07:00
Jamie Cameron
38136888b3 Add a page for select functions to disable https://github.com/virtualmin/virtualmin-gpl/issues/753 2024-10-12 22:06:09 -07:00
Jamie Cameron
216ae24206 Merge branch 'master' of github.com:webmin/webmin 2024-10-12 12:57:29 -07:00
Jamie Cameron
f5b76f5b77 Show current hashed password if there is one 2024-10-12 12:01:39 -07:00
Ilia Ross
2ad935f672 Merge pull request #2294 from MacSteini/master
Updated de
2024-10-08 03:44:08 +03:00
MacSteini
b5ef94d12c Updated de 2024-10-08 00:57:49 +01:00
Ilia Ross
0844abc63d Merge pull request #2293 from MacSteini/master
Corrected typo
2024-10-07 19:56:21 +03:00
Ilia Ross
63a81ef70f Fix to use the correct key name in other language files 2024-10-07 19:55:31 +03:00
MacSteini
76c41b8508 Corrected typo 2024-10-07 16:48:47 +01:00
Ilia Ross
5077349364 Merge pull request #2292 from MacSteini/master
Updated de and possible typo
2024-10-07 18:35:46 +03:00
MacSteini
47e26c4fde Updated de 2024-10-07 16:02:41 +01:00
MacSteini
a0da37ca08 Updated de 2024-10-07 15:08:23 +01:00
MacSteini
21dbdcc983 Merge branch 'master' of https://github.com/MacSteini/webmin 2024-10-07 13:20:19 +01:00
MacSteini
b66aab704d Updated de 2024-10-07 13:20:01 +01:00
MacSteini
84b559646c Merge branch 'webmin:master' into master 2024-10-07 13:01:32 +01:00
MacSteini
f3f232b7f5 Updated de 2024-10-07 12:59:12 +01:00
MacSteini
c5543500b4 Typo?
Is this supposed to be mfwizard_pgroup_name_error or smfwizard_pgroup_name_error?
2024-10-07 12:59:02 +01:00
Jamie Cameron
687225075d Merge pull request #2291 from MacSteini/master
Updated de
2024-10-02 20:42:52 -07:00
MacSteini
7c2a993629 Merge branch 'webmin:master' into master 2024-10-03 04:14:39 +01:00
MacSteini
4775d07c8f Updated de 2024-10-03 04:11:15 +01:00
Jamie Cameron
1bee0a007d Fix indefinite article https://github.com/webmin/webmin/issues/2289 2024-09-30 10:25:11 -07:00
Jamie Cameron
11ad8d48e6 Use formal params 2024-09-29 13:43:56 -07:00
Jamie Cameron
c61b52afc9 support clones of modules that have their own monitoes 2024-09-29 13:43:32 -07:00
Jamie Cameron
3ea7b57ca2 Use formal params 2024-09-28 21:40:52 -07:00
Jamie Cameron
c75f29d011 Don't show clones because they are handled inside the monitor 2024-09-28 21:34:20 -07:00
Jamie Cameron
8b726abdad Use proper API to get clones 2024-09-28 21:27:40 -07:00
Jamie Cameron
bc820a5148 Instead of passing a param to check_reboot_required that causes it to return 0, just don't call it 2024-09-28 15:13:24 -07:00
Jamie Cameron
65e70835d2 Add a status monitor to check if a reboot is required 2024-09-28 15:10:01 -07:00
Jamie Cameron
37075fc1ec Code cleanups 2024-09-28 10:16:47 -07:00
Jamie Cameron
cda9b9553f Merge branch 'master' of github.com:webmin/webmin 2024-09-28 10:09:11 -07:00
Jamie Cameron
ce27473110 VirtIO disks aren't IDE 2024-09-28 10:08:43 -07:00
Ilia Ross
ef09c6cef0 Update translations 2024-09-27 22:34:48 +03:00
Ilia Ross
d97bbfff0f Fix language strings to be consistent 2024-09-27 22:34:28 +03:00
Ilia Ross
5419079e8b Fix to print message when refreshing packages https://github.com/virtualmin/virtualmin-gpl/issues/909 2024-09-27 22:28:23 +03:00
Jamie Cameron
6cbbeebb56 Properly select folder, and make sure it exists 2024-09-19 20:24:00 -07:00
Ilia Ross
b7981f9024 Fix query string #2285 2024-09-19 14:41:06 +03:00
Ilia Ross
c199cffb3d Fix to account for paragraphs that don't end with a new line
https://github.com/webmin/webmin/pull/2284#discussion_r1764346284
2024-09-18 13:03:20 +03:00
Ilia Ross
a1ab757d66 Fix to remove commented out line 2024-09-18 12:50:22 +03:00
Jamie Cameron
cf876900cf Merge branch 'master' of github.com:webmin/webmin 2024-09-17 22:32:12 -07:00
Jamie Cameron
289b61f91e ui-lib conversion 2024-09-17 22:31:58 -07:00
Ilia Ross
89300de664 Add support for listing deb822-style repos
https://forum.virtualmin.com/t/package-repositories-empty-ubuntu-24-04/129152/12?u=ilia
2024-09-16 20:55:43 +03:00
Ilia Ross
19009cd155 Update translations 2024-09-16 15:40:38 +03:00
Jamie Cameron
d1ec3910d2 Rename Google Authenticator to just TOTP 2024-09-15 20:46:55 -07:00
Jamie Cameron
7cd747d82f Stop trusting remote client IP address for logging unless it's enabled 2024-09-15 19:24:32 -07:00
Jamie Cameron
ccd7b4b7d5 TTL and generator records don't have a value https://forum.virtualmin.com/t/migration-to-new-server/129151/2 2024-09-15 17:07:20 -07:00
Jamie Cameron
8dff80e2cb Merge branch 'master' of github.com:webmin/webmin 2024-09-14 20:10:04 -07:00
Jamie Cameron
14d5182b9e Support multi-line mappings https://github.com/webmin/webmin/issues/2279 2024-09-14 20:08:23 -07:00
Ilia Ross
b44ca28634 Merge pull request #2283 from leangjia/master
Updated Chinese translations
2024-09-12 12:10:43 +03:00
leangjia
564f4a9b47 Updated Chinese translations 2024-09-12 15:50:58 +08:00
liAnGjiA
4d739ea832 Merge branch 'webmin:master' into master 2024-09-12 15:13:13 +08:00
leangjia
8df7958dfb Updated Chinese translations 2024-09-12 15:12:18 +08:00
Jamie Cameron
5463547e7a Update version collected in the module lib, rather than from the UI 2024-09-11 22:08:42 -07:00
Jamie Cameron
7cfa552ff4 Merge branch 'master' of github.com:webmin/webmin 2024-09-11 21:55:29 -07:00
Jamie Cameron
944f1a020d Use formal param 2024-09-11 21:55:23 -07:00
Ilia Ross
f6fa766746 Merge pull request #2281 from leangjia/master
Updated Chinese translations
2024-09-11 18:22:38 +03:00
leangjia
68fc90d2db Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 15:47:22 +08:00
leangjia
0c408cf7e7 Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 14:27:37 +08:00
leangjia
9409051046 Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 13:57:09 +08:00
leangjia
54e559452f Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 13:48:42 +08:00
leangjia
d905f72cd7 Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 13:32:34 +08:00
leangjia
44521d8d60 Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 13:16:21 +08:00
leangjia
8dd6b6c44d Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 12:52:58 +08:00
leangjia
6257679e44 Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 12:41:05 +08:00
leangjia
6a9849ba2d Updated Chinese translations 2024-09-11 09:52:17 +08:00
leangjia
e1f398d3aa Updated Chinese translations 2024-09-11 09:32:55 +08:00
Ilia Ross
e3acac1ebf Merge pull request #2280 from leangjia/master
Updated Chinese translations
2024-09-10 11:56:15 +03:00
leangjia
a2a1dc12e9 Updated Chinese translations 2024-09-10 16:34:23 +08:00
leangjia
ac967a1fc5 Updated Chinese translations 2024-09-10 16:27:09 +08:00
leangjia
4b14aee655 Merge branch 'master' of https://github.com/leangjia/webmin 2024-09-10 16:14:36 +08:00
leangjia
e4672703e8 Updated Chinese translations 2024-09-10 16:14:25 +08:00
Ilia Ross
147afb9d41 Merge pull request #2278 from MacSteini/master
Update de
2024-09-09 19:27:45 +03:00
MacSteini
c14b3a8e08 Merge branch 'webmin:master' into master 2024-09-09 14:43:01 +01:00
MacSteini
e3112ac41f Update de 2024-09-09 14:41:28 +01:00
Jamie Cameron
cb2be8b8d8 Merge branch 'master' of github.com:webmin/webmin 2024-09-08 15:42:19 -07:00
Jamie Cameron
11b4a8ca54 Just lock the zone file instead of the whole domain, to prevent deadlocks when called from Virtualmin 2024-09-08 15:39:06 -07:00
Ilia Ross
e7f7487930 Merge pull request #2276 from MacSteini/master
Updated de
2024-09-07 19:31:16 +03:00
Ilia Ross
36e2359312 Disable mail counting by default, as the index page won't load at all with a large number of emails in the mailboxes 2024-09-07 19:24:10 +03:00
MacSteini
54793b4596 Update de 2024-09-07 16:32:17 +01:00
Ilia Ross
65f349c1ce Fix to increase the number of default cron jobs to display 2024-09-07 18:28:11 +03:00
MacSteini
992a961590 Update de 2024-09-07 15:59:59 +01:00
MacSteini
f87cc4a121 Update de 2024-09-07 15:43:38 +01:00
MacSteini
261ff535e0 Updated de 2024-09-07 12:46:38 +01:00
MacSteini
e8c1b3dedb Merge branch 'webmin:master' into master 2024-09-07 03:13:32 +01:00
Jamie Cameron
1f6697e05f NSEC3PARAM salt can be - https://github.com/virtualmin/virtualmin-gpl/issues/895 2024-09-06 19:00:42 -07:00
MacSteini
03147121c6 Update de
Minor fix to replace an English phrase with the German equivalent
2024-09-07 02:23:52 +01:00
Jamie Cameron
4b3acba3f8 Merge branch 'master' of github.com:webmin/webmin 2024-09-06 16:15:35 -07:00
Jamie Cameron
38b119ac43 Fix error message for salt field https://github.com/virtualmin/virtualmin-gpl/issues/895 2024-09-06 16:15:27 -07:00
Ilia Ross
ae70f5e4bd Merge pull request #2275 from MacSteini/master
Update de
2024-09-06 18:25:32 +03:00
MacSteini
d3f8859df2 German translation files reviewed and updated 2024-09-06 15:22:42 +01:00
MacSteini
6145783116 Update de
Corrected an unusual way of writing a date
2024-09-06 14:22:09 +01:00
Ilia Ross
5ba6cbe9ab Merge pull request #2274 from MacSteini/master
Updated de and removed de.auto
2024-09-06 16:05:09 +03:00
MacSteini
d55d49e4d0 Update de
Replaced fancy with straight quotes
2024-09-06 12:31:38 +01:00
MacSteini
7bad42f217 Updated de
Reviewed and corrected where applicable. Adapted translation based on the newer changes in EN file
2024-09-06 12:10:17 +01:00
MacSteini
d7b2a41040 Update de 2024-09-06 11:31:38 +01:00
MacSteini
5c723544fe Delete at/lang/de.auto 2024-09-06 11:31:13 +01:00
Ilia Ross
b0e3787461 Merge pull request #2272 from MacSteini/master
Updated German language files
2024-09-06 13:27:16 +03:00
MacSteini
a415a743f6 Merge remote-tracking branch 'upstream/master' 2024-09-06 11:19:03 +01:00
Ilia Ross
4e351b32fb Fix to stress out command name 2024-09-06 12:49:33 +03:00
MacSteini
a326c0939d Update en
Reverted back to its original state.
2024-09-06 10:38:49 +01:00
MacSteini
295318f67f Update en
Reverted back to its original state
2024-09-06 10:26:11 +01:00
MacSteini
3c86a1a158 Update en
Reverted back to its original state
2024-09-06 10:25:02 +01:00
Ilia Ross
33192cc0d9 Merge pull request #2273 from leangjia/master
Updated Chinese translations
2024-09-06 11:56:35 +03:00
Ilia Ross
da20f7c88f Update at module language 2024-09-06 11:48:05 +03:00
Jamie Cameron
d81bf3f569 Stop offering to allow editing of PHP FPM config files, as PHP options cannot be set at the global level https://forum.virtualmin.com/t/urgent-php-fpm-crashes/129009 2024-09-05 22:25:28 -07:00
leangjia
01663dfe25 Updated Chinese translations 2024-09-06 10:11:25 +08:00
MacSteini
bc10564706 Update de 2024-09-06 00:18:26 +01:00
MacSteini
f10998e2b7 Update en
Prefixed double dots with a space as you explained in another PR.
2024-09-06 00:11:32 +01:00
MacSteini
639d558a47 Delete bandwidth/lang/de.auto 2024-09-06 00:00:15 +01:00
MacSteini
edc41bf338 Update de 2024-09-05 23:58:52 +01:00
MacSteini
b9f3152827 Delete passwd/lang/de.auto 2024-09-05 23:53:04 +01:00
MacSteini
04bcccdc43 Update de 2024-09-05 23:50:09 +01:00
MacSteini
f1f4d9b719 Delete webmincron/lang/de.auto 2024-09-05 23:47:27 +01:00
MacSteini
a45964f55e Delete webminlog/lang/de.auto 2024-09-05 23:45:08 +01:00
MacSteini
23def8deb5 Update de 2024-09-05 23:44:30 +01:00
MacSteini
2ba7e4b071 Delete apache/lang/de.auto 2024-09-05 23:20:06 +01:00
MacSteini
33b4223183 Update de 2024-09-05 23:19:56 +01:00
MacSteini
9607c3cae7 Update de 2024-09-05 23:18:27 +01:00
MacSteini
782f0fbedd Update en 2024-09-05 23:07:51 +01:00
MacSteini
7f659978ac Update de 2024-09-05 22:51:25 +01:00
MacSteini
768b586144 Update en
Corrected line 56 - it was the only place where “At” was mentioned.
2024-09-05 22:48:29 +01:00
MacSteini
167d73090e Delete at/lang/de.auto 2024-09-05 22:47:43 +01:00
MacSteini
951dffc3a3 Update de 2024-09-05 22:47:14 +01:00
Jamie Cameron
a5a97eaedb Merge branch 'master' of github.com:webmin/webmin 2024-09-05 11:32:59 -07:00
Jamie Cameron
6b2a9d34bf Use correct state flag during initial rule setup https://github.com/webmin/webmin/issues/2264 2024-09-05 11:31:52 -07:00
MacSteini
b5f79d31a6 Update de 2024-09-05 15:49:09 +01:00
MacSteini
1d272f0490 Delete lang/de.auto 2024-09-05 15:27:47 +01:00
Ilia Ross
b5f2e8f47f Merge pull request #2266 from MacSteini/master
Reviewed and amended German translations
2024-09-05 17:24:56 +03:00
MacSteini
d650d65163 Update de 2024-09-05 15:03:58 +01:00
MacSteini
0389c537be Update de 2024-09-05 12:34:17 +01:00
Ilia Ross
530db71e3f Merge pull request #2271 from leangjia/master
Updated Chinese translations
2024-09-05 12:39:03 +03:00
leangjia
2ad13ccd74 Updated Chinese translations 2024-09-05 17:36:55 +08:00
Ilia Ross
3a90c0e4fe Merge pull request #2270 from leangjia/master
Updated Chinese translations
2024-09-05 12:21:57 +03:00
leangjia
75095eab06 Updated Chinese translations 2024-09-05 17:16:57 +08:00
Ilia Ross
8f2338e1a7 Merge pull request #2269 from leangjia/master
Updated Chinese translations
2024-09-05 11:28:47 +03:00
leangjia
60345c4d8e Updated Chinese translations 2024-09-05 11:17:18 +08:00
Jamie Cameron
b648a21323 Merge pull request #2268 from leangjia/master
Updated Chinese translations
2024-09-03 21:24:34 -07:00
leangjia
d59837dbad Updated Chinese translations 2024-09-04 12:06:27 +08:00
MacSteini
e60e24f1ee Update de 2024-09-03 23:30:35 +01:00
MacSteini
c861bf971e Update de 2024-09-03 14:25:36 +01:00
MacSteini
8bc8c017e6 Update de 2024-09-03 14:20:58 +01:00
Ilia Ross
87bacd1489 Merge pull request #2265 from leangjia/master
Updated Chinese translations
2024-09-03 14:05:53 +03:00
MacSteini
5fae4a69ee Update de 2024-09-03 11:40:07 +01:00
leangjia
1764671ac7 Delete the zh.auto 2024-09-03 18:18:44 +08:00
MacSteini
7f1faaac4d Merged with de 2024-09-03 11:07:34 +01:00
MacSteini
91111d5e82 Update de 2024-09-03 11:06:48 +01:00
leangjia
39a3ebac3b Updated Chinese translations gray-theme zh. 2024-09-03 17:59:12 +08:00
MacSteini
60b87f3b34 Update de 2024-09-03 10:40:29 +01:00
leangjia
758e277328 Updated Chinese translations system-status/lang/zh 2024-09-03 17:35:48 +08:00
leangjia
d02615c0ab Updated Chinese translations filemin lang zh. 2024-09-03 14:14:05 +08:00
liAnGjiA
6051231e73 Merge branch 'webmin:master' into master 2024-09-03 13:18:27 +08:00
leangjia
d80a394d77 Updated Chinese translations acl lang zh. 2024-09-03 13:16:01 +08:00
Ilia Ross
9f64dbd134 Update Swedish translations 2024-09-02 23:58:22 +03:00
Ilia Ross
85e3dc418a Update translations 2024-09-02 23:50:58 +03:00
Jamie Cameron
c607990c48 HTML escape description in services list 2024-09-02 10:14:04 -07:00
Jamie Cameron
c76e257961 Merge branch 'master' of github.com:webmin/webmin 2024-09-02 10:13:27 -07:00
Jamie Cameron
0009335636 HTML escape description in actions list 2024-09-02 10:13:19 -07:00
Ilia Ross
964bc33ed0 Merge pull request #2263 from leangjia/master
Updated Chinese translations change-user lang zh.
2024-09-02 14:19:08 +03:00
leangjia
75087357b0 perfect change-user lang zh. 2024-09-02 16:23:53 +08:00
Jamie Cameron
c0a45fe6ca Merge branch 'master' of github.com:webmin/webmin 2024-08-30 22:12:40 -07:00
Jamie Cameron
da5c68a04f Add ACL option to set the allowed user based on the directory being accessed 2024-08-30 22:10:52 -07:00
Ilia Ross
9966a2ab47 Fix to support source repos
https://forum.virtualmin.com/t/software-package-repos-displaying-duplicates/128831?u=ilia
2024-08-29 15:51:08 +03:00
Jamie Cameron
cffabd972b Fix version selector 2024-08-28 18:00:36 -07:00
Ilia Ross
b2e0db9db9 Add support to apply the patch from the raw link
https://forum.virtualmin.com/t/re-moving-sites-from-directadmin-to-virtualmin/128503/33?u=ilia
2024-08-28 15:20:20 +03:00
Jamie Cameron
d2d070b721 Merge branch 'master' of github.com:webmin/webmin 2024-08-27 21:11:41 -07:00
Jamie Cameron
0939e55b01 Include version of package to get from debian https://github.com/webmin/webmin/issues/2261 2024-08-27 21:11:35 -07:00
Ilia Ross
2259c1a72a Fix language 2024-08-26 15:41:22 +03:00
Ilia Ross
26fc396421 Fix to print in dashboard only allowed fields
https://forum.virtualmin.com/t/obscuring-account-information/128735?u=ilia
2024-08-26 14:46:47 +03:00
Ilia Ross
69823048d2 Fix matching Debian repos
https://forum.virtualmin.com/t/repos-in-virtualmin/128745/3?u=ilia
2024-08-25 21:44:40 +03:00
Ilia Ross
5e57e571b3 Fix the default notification email is set as non-replyable 2024-08-24 19:35:33 +03:00
Jamie Cameron
6e3fb4d806 Merge branch 'master' of github.com:webmin/webmin 2024-08-23 21:36:42 -07:00
Jamie Cameron
f8ce246b37 If there is a password change CGI setup, rate limit how often it can be called to prevent brute-force guessing attacks 2024-08-23 21:36:34 -07:00
Ilia Ross
d45e317303 Merge pull request #2258 from MacSteini/master
Updated German translations
2024-08-23 14:59:51 +03:00
MacSteini
90c0ec556f Update de
Reviewed and merged with de.auto
2024-08-23 11:40:03 +01:00
MacSteini
d65460d50e Update de.auto
Reviewed and merged with de
2024-08-23 10:35:06 +01:00
MacSteini
c757f90f7c Update en
Corrected typos
2024-08-23 10:21:40 +01:00
MacSteini
c34c1b5b6e Update de
Reviewed and merged with de.auto
2024-08-23 10:20:51 +01:00
MacSteini
d553327a11 Update de.auto
Reviewed and moved translations into de
2024-08-23 09:46:35 +01:00
Ilia Ross
6db78a06b8 Fix to implement a fix that allows the root user to lock itself out
125cc7b418 (r145623195)
2024-08-22 01:11:04 +03:00
Ilia Ross
b54f1780c6 Fix not to allow locking only for local root account 2024-08-21 23:16:32 +03:00
Jamie Cameron
d2b2727039 Also update serial in SOA object https://forum.virtualmin.com/t/issue-with-dns-zone-serial-not-updating-in-virtualmin-cloudmin-setup/128622 2024-08-20 22:08:25 -07:00
Jamie Cameron
464a553534 Simplify ppermission mappings 2024-08-20 21:32:33 -07:00
Jamie Cameron
ddbd770dda Add field for setting plugin 2024-08-20 21:28:39 -07:00
Jamie Cameron
6bf6553ff0 Formatting cleanup 2024-08-20 20:39:02 -07:00
Jamie Cameron
01299c0c38 Merge branch 'master' of github.com:webmin/webmin 2024-08-20 10:56:40 -07:00
Jamie Cameron
b71ac3b9a0 Slave zones can now be called secondary https://github.com/webmin/webmin/issues/2257 2024-08-20 10:55:47 -07:00
Ilia Ross
3c347dc92f Merge pull request #2256 from MacSteini/master
Updated German Translation
2024-08-20 17:35:24 +03:00
MacSteini
0860344fd1 Updated de 2024-08-20 14:41:19 +01:00
MacSteini
801fa703bf Moved translations into de 2024-08-20 14:40:36 +01:00
MacSteini
049a8072b8 Update de.auto 2024-08-20 14:26:40 +01:00
Ilia Ross
9e410f45ca Fix lines to fit 80 chars 2024-08-19 15:50:48 +03:00
Ilia Ross
d541abc7f4 Fix to optimize previous code reducing redundancy (no logical changes) 2024-08-19 15:47:59 +03:00
Ilia Ross
e9eda1ddc4 Add ability to write file directly to disk #2254 2024-08-19 05:12:55 +03:00
Ilia Ross
b5b2c3cd6e Fix to correctly test if account lock is supported 2024-08-15 14:23:22 +03:00
Ilia Ross
86e12bd485 Fix to simplify if no password set 2024-08-15 14:22:34 +03:00
Ilia Ross
cbe75574d0 Fix to use the same format when comparing versions 2024-08-15 13:49:24 +03:00
Ilia Ross
cf838e5d9a Fix to test if reuse flags are supported
https://github.com/webmin/webmin/issues/2135#issuecomment-2290975157
2024-08-15 13:48:42 +03:00
Ilia Ross
6cdb1df135 Fix to simplify account lock check
f61c7bd773 (r145408919)
2024-08-15 13:30:32 +03:00
Jamie Cameron
ffc7dac5f1 Plugin needs a with prefix when used in SQL 2024-08-15 03:25:06 -07:00
Jamie Cameron
66ad3fe075 Merge branch 'master' of github.com:webmin/webmin 2024-08-14 03:09:30 -07:00
Jamie Cameron
0b83f310e6 Work on being able to specify plugin 2024-08-14 03:09:21 -07:00
Jamie Cameron
efccfc4db6 Use the same message for wrong user and password 2024-08-14 03:08:26 -07:00
Ilia Ross
c642286a5a Fix to optimize code 2024-08-13 22:57:43 +03:00
Ilia Ross
e8ed462b8c Fix to support replication perms 2024-08-13 22:31:32 +03:00
Ilia Ross
9cecabf781 Add ability to display permissions intelligently 2024-08-13 22:25:17 +03:00
Jamie Cameron
7198370f9b Recommend the perl mysql driver modules 2024-08-12 18:52:39 -07:00
Jamie Cameron
930652699b Merge branch 'master' of github.com:webmin/webmin 2024-08-12 17:38:30 -07:00
Jamie Cameron
c3c7e3ea9e recommend the MySQL DBD and DBI modules https://github.com/webmin/webmin/issues/2253 2024-08-12 17:35:14 -07:00
Jamie Cameron
53f44413f8 remove obsolete comment 2024-08-12 17:49:50 +08:00
Ilia Ross
25321b467b Update changelog 2024-08-11 21:10:43 +03:00
Ilia Ross
dc17b3cbe5 Fix changelog 2024-08-11 21:06:19 +03:00
Ilia Ross
a4621a800b Fix changelog 2024-08-11 21:01:33 +03:00
Jamie Cameron
97308e69aa changelog update 2024-08-11 07:42:09 -07:00
Jamie Cameron
86144e16f7 New version bump 2024-08-11 07:41:05 -07:00
Jamie Cameron
b18b9decd4 Fix schema page description 2024-08-11 03:48:02 -07:00
Jamie Cameron
90cd81893e Fix bugs in LDAP import 2024-08-11 03:42:06 -07:00
Jamie Cameron
9d7c3fdd9a Work on schema import support 2024-08-11 03:27:04 -07:00
Jamie Cameron
c0e36426bd Remove useless fixed spacing 2024-08-11 02:50:23 -07:00
Jamie Cameron
9dd678946d Use proper function to check status 2024-08-08 19:25:14 -07:00
Jamie Cameron
d440ba7f58 Let the user know why no rules are down 2024-08-08 19:24:10 -07:00
Jamie Cameron
090a769145 Use proper function 2024-08-08 19:21:34 -07:00
Jamie Cameron
bcec22b385 Merge branch 'master' of github.com:webmin/webmin 2024-08-08 19:20:43 -07:00
Jamie Cameron
dbfc621482 Add a monitor for firewalld https://github.com/virtualmin/virtualmin-gpl/issues/870 2024-08-08 19:16:00 -07:00
Ilia Ross
6bc70a7738 Add support for disk I/O in FreeBSD 2024-08-07 15:28:58 +03:00
Ilia Ross
f5b3f9cc1d Fix to use os_type for OS check
0ac51a83e9 (r145024453)
2024-08-06 12:21:19 +03:00
Ilia Ross
24055330d3 Fix build system 2024-08-04 17:03:41 +03:00
Ilia Ross
0ac51a83e9 Add an API to count processes 2024-08-03 17:05:56 +03:00
Ilia Ross
e517300fe0 Fix to display wildcard char next to dbs https://github.com/virtualmin/virtualmin-gpl/issues/723#issuecomment-2263713657 2024-08-02 15:22:21 +03:00
Ilia Ross
ae34d0ef86 Fix to unquote database name in view
https://github.com/virtualmin/virtualmin-gpl/issues/723#issuecomment-2262824643
2024-08-01 20:29:40 +03:00
Ilia Ross
8236fb2fd8 Add support to display tag, algo and digests in table #2245 2024-08-01 13:01:30 +03:00
Ilia Ross
f499c62da4 Update CHANGELOG.md 2024-08-01 00:52:57 +03:00
Ilia Ross
a51e3d0a22 Fix BIND service name is now named.service in Debian 12 and Ubuntu 24.04
[build]
2024-08-01 00:34:02 +03:00
Ilia Ross
e1398bf75b Version bump 2.202 2024-07-30 22:13:20 +03:00
Ilia Ross
ba26d2aac0 Merge pull request #2241 from bim-g/update_ui_print_header_documentation
[FIX] Add missing `title` parameter to `ui_print_header` method on the documentation
2024-07-30 05:12:35 +03:00
bim-g
7225ccab73 [FIX] Add missing title parameter to ui_print_header documentation 2024-07-30 01:02:54 +02:00
Ilia Ross
d224d0aafc Fix backup file naming to be consistent with Virtualmin 2024-07-28 23:46:38 +03:00
Ilia Ross
8220fef7e0 Fix to name downloaded backup file nicely #2239
E.g. webmin-backup-config-host.ubuntu24-pro.virtualmin.dev-2024-07-28-20-08.tgz
2024-07-28 20:11:55 +03:00
Jamie Cameron
1a658b1010 If given names are enabled, always add the needed class 2024-07-27 14:53:23 -07:00
Jamie Cameron
4c3b792adc LDAP config file param has moved to the ldap-client module 2024-07-27 14:40:18 -07:00
Jamie Cameron
19940bae86 Base may have a sub-entry for users and groups 2024-07-27 14:26:25 -07:00
Jamie Cameron
256178c6c3 sometimes LDAP connect fails with sigpipe 2024-07-26 21:04:55 -07:00
Jamie Cameron
2a43a870c2 Fix init script name 2024-07-26 19:09:02 -07:00
Jamie Cameron
615765b995 Check status from init script if possible 2024-07-26 19:06:16 -07:00
Jamie Cameron
6f7003965e Merge branch 'master' of github.com:webmin/webmin 2024-07-26 14:56:52 -07:00
Jamie Cameron
d8a7a583a3 Prevent duplication of systemd actions and init scripts https://github.com/webmin/webmin/issues/2227 2024-07-26 14:56:46 -07:00
Jamie Cameron
c51cc8f38a Merge pull request #2234 from webmin/dev/mysql-improve-operations-with-large-dbs
Fix to optimize getting table index structure for large databases
2024-07-26 14:22:58 -07:00
Ilia Ross
5210f623f3 Fix to use prepared statements 2024-07-26 21:11:05 +03:00
Jamie Cameron
ba4b65774e Merge branch 'master' of github.com:webmin/webmin 2024-07-26 10:20:51 -07:00
Jamie Cameron
b1d273c555 BIND 4 is ancient and shouldn't be shown by default https://github.com/webmin/webmin/issues/2232 2024-07-26 10:20:42 -07:00
Ilia Ross
b03f1b766f Fix to optimize getting table index stats for large tables 2024-07-26 19:56:45 +03:00
Ilia Ross
a9ed10401d Update changelog (progress) 2024-07-26 00:55:11 +03:00
Ilia Ross
253d85b6ee Fix setting webprefix for WebSocket URL
https://forum.virtualmin.com/t/after-update-webmin-2-200-cant-view-stat-history/128119/6?u=ilia
2024-07-26 00:41:40 +03:00
Jamie Cameron
0247b71fb7 Show full BIND version https://github.com/webmin/webmin/issues/2226 2024-07-24 14:02:00 -07:00
Jamie Cameron
fd819d83e8 New version bump 2024-07-23 21:58:01 -07:00
Jamie Cameron
8c5fcef916 Fix string for update logging 2024-07-23 21:57:32 -07:00
Jamie Cameron
c15bbca109 Separate comment column https://github.com/webmin/webmin/issues/2221 2024-07-23 21:52:24 -07:00
Jamie Cameron
c47c4b7ffd Merge branch 'master' of github.com:webmin/webmin 2024-07-23 20:12:17 -07:00
Jamie Cameron
8efa25eabf Add missing function 2024-07-23 20:12:06 -07:00
Ilia Ross
190bd58b1b Fix to clarify option name 2024-07-24 03:50:01 +03:00
Ilia Ross
d645dc9345 Update changelog for Webmin 2.201 2024-07-24 03:25:43 +03:00
Ilia Ross
963bb60c02 Fix to go directly to viewing logs on module load 2024-07-24 03:18:31 +03:00
Jamie Cameron
fa4e39ec9a Merge branch 'master' of github.com:webmin/webmin 2024-07-23 17:00:41 -07:00
Jamie Cameron
c1b45ff210 Add option to include compressed rotated logs in searches, and enable it by default, to maintain parity with the old sylog module 2024-07-23 17:00:34 -07:00
Ilia Ross
5cb103bde3 Revert "Fix to call exit after redirect"
This reverts commit e3a1fd849b.
2024-07-24 02:02:14 +03:00
Ilia Ross
7282348b7d Fix to use consistent download page 2024-07-24 00:20:58 +03:00
Ilia Ross
e3a1fd849b Fix to call exit after redirect 2024-07-24 00:20:47 +03:00
Jamie Cameron
1fb01aa46e Fix permissions 2024-07-23 13:50:19 -07:00
Jamie Cameron
779ebb4a63 Fix redirection to first log 2024-07-23 13:50:02 -07:00
Jamie Cameron
c391830670 Fix more cases where switch_to_unix_user isn't being passed the username 2024-07-22 16:48:28 -07:00
Jamie Cameron
c8c6c3e40f Merge branch 'master' of github.com:webmin/webmin 2024-07-22 16:11:41 -07:00
Jamie Cameron
c1f45d6d61 When running a command as a different user, the username needs to be passed to switch_to_unix_user so that all the secondary groups can be populated https://github.com/webmin/webmin/issues/2223 2024-07-22 16:11:37 -07:00
Ilia Ross
8804ba6529 Update CHANGELOG.md 2024-07-22 16:00:56 +03:00
Ilia Ross
11ae39081c Fix to try more simple patch command at first 2024-07-22 14:18:51 +03:00
Jamie Cameron
2751224d4d Really update version 2024-07-21 10:21:20 -07:00
Jamie Cameron
6fce9fa491 New version bump 2024-07-21 10:20:43 -07:00
Jamie Cameron
41fdb5dac2 Fix renumbering when adding a domain 2024-07-20 21:53:49 -07:00
Jamie Cameron
4ffca4597c Clean up group_to_dn function 2024-07-20 21:30:46 -07:00
Jamie Cameron
ecfc06d9c6 Preserve firstname and surname 2024-07-20 21:28:45 -07:00
Jamie Cameron
db55dde7ce Merge branch 'master' of github.com:webmin/webmin 2024-07-20 21:23:16 -07:00
Jamie Cameron
c6edd4b97d Code cleanups 2024-07-20 21:19:01 -07:00
Ilia Ross
8cd2dbae96 Fix to redirect to tabs only inside same module
https://forum.virtualmin.com/t/small-upgrade-error-maybe-wrong-url-on-button/127999?u=ilia
2024-07-21 02:37:32 +03:00
Jamie Cameron
8676a3fb21 Merge branch 'master' of github.com:webmin/webmin 2024-07-20 16:18:25 -07:00
Jamie Cameron
27339eb1bf Use my instead of local 2024-07-20 16:18:16 -07:00
Ilia Ross
e014926854 Update CHANGELOG.md for 2.200 2024-07-21 02:00:01 +03:00
Ilia Ross
a721f60f9c Fix to allow service-worker.js in unauth [build] 2024-07-20 15:57:40 +03:00
Jamie Cameron
46c76e13f9 Merge branch 'master' of github.com:webmin/webmin 2024-07-19 16:52:29 -07:00
Jamie Cameron
f72058306b COnfig option to show hostname and comment https://github.com/webmin/webmin.com/issues/18 2024-07-19 16:52:23 -07:00
Ilia Ross
a15446d3b1 Fix to simplify the code and use no globals [build] 2024-07-19 13:40:14 +03:00
Ilia Ross
fc9ce7f3dd Fix comment 2024-07-19 13:30:01 +03:00
Ilia Ross
72cd50a054 Fix to consider "F" as new theme name "Framed" not "Gray" 2024-07-19 13:13:53 +03:00
Ilia Ross
e307fb4dcd Fix to drop unnecessary option 2024-07-19 12:36:52 +03:00
Jamie Cameron
d631929194 Merge branch 'master' of github.com:webmin/webmin 2024-07-16 16:08:06 -07:00
Jamie Cameron
db9628e7eb Update MIME types for javascript and gzipped files 2024-07-16 16:08:01 -07:00
Jamie Cameron
2c04c04ce7 Merge pull request #2217 from webmin/dev/package-updates-always-show-sec
Fix to always show security updates button
2024-07-16 11:51:16 -07:00
Ilia Ross
a5301245d3 Fix to always show security updates button 2024-07-16 17:38:14 +03:00
Jamie Cameron
165af690c7 Log automatic package updates 2024-07-13 17:07:07 -07:00
Jamie Cameron
29da8ea3d0 Clarify what kind of update it is https://forum.virtualmin.com/t/security-updates-being-auto-installed-regardles-of-software-scheduled-upgrades-set-to-just-notify/127852 2024-07-12 17:22:19 -07:00
Jamie Cameron
73b7e62f13 Merge branch 'master' of github.com:webmin/webmin 2024-07-09 08:30:51 -07:00
Ilia Ross
76141ce22f Fix to use larger QR code [build] 2024-07-09 15:53:18 +03:00
Jamie Cameron
4b575b8168 Clarify comment 2024-07-08 22:55:44 -07:00
Ilia Ross
2b28521297 Fix to display correct return button 2024-07-08 21:03:40 +03:00
Ilia Ross
be767951ca Fix to have no block elements in header 2024-07-08 19:33:52 +03:00
Jamie Cameron
9960d6011f Update comment to match reality 2024-07-07 11:12:47 -07:00
Jamie Cameron
461bd30e2a Save last size and subset mode 2024-07-06 15:26:57 -07:00
Jamie Cameron
2f88a4eefb Follow default reuse option 2024-07-06 15:23:17 -07:00
Jamie Cameron
c9f368d264 Properly check all ServerAlias directives and ports 2024-07-06 15:12:08 -07:00
Jamie Cameron
0e24e8ac61 Merge branch 'master' of github.com:webmin/webmin 2024-07-05 10:32:21 -07:00
Jamie Cameron
1d0d25efac Don't add tab param twice https://sourceforge.net/p/webadmin/bugs/5648/ 2024-07-05 10:01:55 -07:00
Jamie Cameron
1c5d2d2bd7 Merge pull request #2211 from webmin/dev/preserve-file-acls
Add ability to preserve original file ACLs
2024-07-03 15:43:43 -07:00
Ilia Ross
77e809166c Fix to use backquote_command instead 2024-07-03 10:40:20 +03:00
Jamie Cameron
927a2c32d8 Show queue state in list 2024-07-02 21:36:05 -07:00
Jamie Cameron
4a3c6c4854 Merge branch 'master' of github.com:webmin/webmin 2024-07-02 21:21:27 -07:00
Jamie Cameron
37beab77ba Show mail queue directory 2024-07-02 21:21:21 -07:00
Ilia Ross
82f5284ffc Fix to use pipe handling data directly in memory
https://github.com/webmin/webmin/pull/2211#discussion_r1663042881
2024-07-02 22:48:40 +03:00
Ilia Ross
5f579e8ded Fix to invalidate OS EOL data on upgrade 2024-07-02 22:24:09 +03:00
Ilia Ross
4b66ac0be5 Add ability to preserve original file ACLs
https://github.com/webmin/authentic-theme/discussions/1511#discussioncomment-9913902
2024-07-02 20:50:19 +03:00
Jamie Cameron
e69fb75c8e Show the mail queue path 2024-07-01 21:33:22 -07:00
Jamie Cameron
ff8781c112 Merge branch 'master' of github.com:webmin/webmin 2024-07-01 21:15:04 -07:00
Jamie Cameron
0dd75db8d8 Don't wrap header lines 2024-07-01 21:09:17 -07:00
Jamie Cameron
05d01aeef3 Merge pull request #2207 from webmin/dev/patch-api
Add apply patch CLI API
2024-06-30 11:05:00 -07:00
Jamie Cameron
11f2bc20eb Merge branch 'master' of github.com:webmin/webmin 2024-06-30 10:07:08 -07:00
Jamie Cameron
52c3178b92 Add API to delete sections 2024-06-30 10:07:01 -07:00
Jamie Cameron
e3dec2222d Merge pull request #2209 from webmin/dev/separate-temps-collection-2208
Fix to separate drive and CPU temperatures collection #2208
2024-06-30 08:24:26 -07:00
Ilia Ross
05752faec0 Fix to separate drive and CPU temperatures collection #2208 2024-06-30 15:54:47 +03:00
Ilia Ross
7507433bf1 Fix to drop dependency from Term::ANSIColor 2024-06-30 11:41:41 +03:00
Ilia Ross
248cb719c0 Fix restart command depend on config dir 2024-06-29 23:32:15 +03:00
Ilia Ross
94b7fdf0ec Fix to escape params 2024-06-29 23:29:55 +03:00
Ilia Ross
d89f6411b6 Fix to use has_command API 2024-06-29 20:34:29 +03:00
Ilia Ross
01d08a3605 Fix to make patch API work directly from URL 2024-06-28 19:48:51 +03:00
Jamie Cameron
1cf3813fb6 Merge branch 'master' of github.com:webmin/webmin 2024-06-27 19:45:29 -07:00
Jamie Cameron
1216ae709b Stop showing and editing dnssec-lookaside https://github.com/webmin/webmin/issues/617 2024-06-27 19:45:21 -07:00
Ilia Ross
3d9497ff45 Fix command example 2024-06-28 01:51:02 +03:00
Ilia Ross
a6832450d1 Fix to restart Webmin when done 2024-06-28 01:38:28 +03:00
Ilia Ross
e41037388c Apply a patch to Webmin core or its modules from GitHub or a local file 2024-06-28 01:35:10 +03:00
Ilia Ross
a7b3af534b Fix to drop Threads module from recommended packages 2024-06-26 18:12:47 +03:00
Ilia Ross
87e006ceeb Add new API to verify session id 2024-06-26 14:39:23 +03:00
Ilia Ross
fbee8f0588 Add logging for active FTP conns 2024-06-20 20:04:19 +03:00
Jamie Cameron
e077b4da94 Start of work on support for requesting only a subset of hostnames 2024-06-19 22:05:22 -07:00
Jamie Cameron
38efad8265 Escape some inputs 2024-06-19 20:37:25 -07:00
Jamie Cameron
4d2a1fa084 Add spam folder name 2024-06-19 17:19:51 -07:00
Jamie Cameron
13b2eca3b1 Follow webmin code standards 2024-06-19 16:48:41 -07:00
Ilia Ross
aa4c3b1de6 Fix embedded styles margin 2024-06-19 16:55:25 +03:00
Ilia Ross
edaab4fd6f Fix embedded styles 2024-06-19 16:52:04 +03:00
Jamie Cameron
6fded0862c Merge pull request #2201 from webmin/dev/fix-last-command-match-freebsd
Fix listing last logins in FreeBSD
2024-06-18 16:16:37 -07:00
Ilia Ross
4006b0454e Fix to escape and not to truncate username 2024-06-18 23:51:19 +03:00
Ilia Ross
5d4ab58baa Fix the regex for last command on FreeBSD 2024-06-18 23:50:12 +03:00
Jamie Cameron
e6c7a60fe6 Merge pull request #2200 from webmin/dev/fix-last-command-regexes
Fix the regex to correctly match the output of the `last` command on contemporary systems
2024-06-18 13:38:21 -07:00
Ilia Ross
a75781d61a Fix the regex to correctly match the output of the last command on contemporary systems 2024-06-18 23:36:31 +03:00
Jamie Cameron
45348f5b02 Merge pull request #2199 from webmin/dev/last-dont-truncate-username
Fix not to truncate usernames
2024-06-18 11:33:01 -07:00
Ilia Ross
548c078813 Fix not to truncate usernames 2024-06-18 20:23:22 +03:00
Ilia Ross
76ccb2b7ed Fix support for Chrony in Debian systems 2024-06-17 15:09:42 +03:00
Ilia Ross
61d2081371 Add to support more passible options to systemd service file 2024-06-16 01:55:03 +03:00
Ilia Ross
458916b4d8 Fix to simplify make_date calls 2024-06-16 01:48:14 +03:00
Jamie Cameron
37451ad905 Merge pull request #2197 from vsc55/fix-2196
Fix metod detect Linux Gentoo.
2024-06-15 09:50:06 -07:00
Javier Pastor
9eec58a1f1 Fix metod detect Linux Gentoo. 2024-06-15 18:41:54 +02:00
Ilia Ross
178f527afa Fix to return an actual value 2024-06-15 16:50:04 +03:00
Jamie Cameron
cd1555b3e1 Merge branch 'master' of github.com:webmin/webmin 2024-06-12 16:53:02 -07:00
Jamie Cameron
2d7cfca67f Prevent duplicate also-notify and allow-transfer IPs 2024-06-12 16:52:50 -07:00
Jamie Cameron
e92a35b3ed Merge pull request #2195 from webmin/dev/xterm-acls-allow-not-enforce-sudo
Fix to allow disabling the enforcement of sudo-capable logins
2024-06-12 15:47:08 -07:00
Ilia Ross
e35efd0f00 Fix to always show the field 2024-06-13 01:36:41 +03:00
Ilia Ross
a12f385a5b Fix to consider user with the same name 2024-06-13 01:07:21 +03:00
Ilia Ross
5dc7cfafd7 Fix to allow disabling the enforcement of sudo-capable logins 2024-06-12 20:14:06 +03:00
Jamie Cameron
35aee74311 Merge pull request #2194 from webmin/dev/xterm-start-with-sudocapable
Fix to start with a sudo-capable user if possible
2024-06-11 18:19:05 -07:00
Ilia Ross
d04dfdf157 Fix to simplify the test 2024-06-12 01:20:29 +03:00
Ilia Ross
41f1adf0df Fix to start with a sudo-capable user if possible 2024-06-11 15:31:00 +03:00
Ilia Ross
1ae01bed8d Fix to support theme styling for embedded calendar 2024-06-10 16:34:29 +03:00
Ilia Ross
4a6f5d9a6a Fix not to load images by default and ask 2024-06-10 14:23:18 +03:00
Ilia Ross
bb3a4bc1e8 Fix font size consistency 2024-06-10 13:48:14 +03:00
Jamie Cameron
084c117547 Merge pull request #2193 from webmin/dev/embed-calendar
Add support for embedding calendar events inline in email messages
2024-06-09 18:48:18 -07:00
Ilia Ross
0221a092b9 Drop duplicate code
https://github.com/webmin/webmin/pull/2193#discussion_r1632362334
2024-06-09 21:16:52 +03:00
Ilia Ross
535d4173b3 Fix to factor out code to separate functions to be available in Usermin 2024-06-09 19:59:50 +03:00
Ilia Ross
20d481e96b Add further margin fixes 2024-06-09 19:13:52 +03:00
Ilia Ross
0256ee47f2 Fix block margin for perfect alignment 2024-06-09 16:16:52 +03:00
Ilia Ross
6af5ed6e2f Fix margin for inner content 2024-06-09 16:09:44 +03:00
Ilia Ross
abeff44b1a Add further improvements to TZs 2024-06-09 04:39:53 +03:00
Ilia Ross
35298efd8a Fix timezones 2024-06-09 04:14:32 +03:00
Ilia Ross
3fa687e716 Fix bugs 2024-06-09 03:49:43 +03:00
Ilia Ross
43fc057484 Add further indent improvements 2024-06-09 03:24:23 +03:00
Ilia Ross
70e9a1c00b Fix indentation 2024-06-09 03:14:50 +03:00
Ilia Ross
d21188c2ad Add improvements to mail frame interactions 2024-06-09 03:06:53 +03:00
Ilia Ross
a780103e2f Fix to improve calendar styles 2024-06-09 02:45:51 +03:00
Ilia Ross
4014293760 Fix to resize embedding iframe for content to fit on view details 2024-06-09 01:55:56 +03:00
Ilia Ross
ba3be31335 Fix to resize iframe if called by some elements from inside 2024-06-09 01:53:36 +03:00
Ilia Ross
adb3d0bb67 Revert "Fix to expose mail iframe resize function"
This reverts commit cd9bc8b7c4.
2024-06-09 01:42:12 +03:00
Ilia Ross
cd9bc8b7c4 Fix to expose mail iframe resize function 2024-06-09 01:16:21 +03:00
Ilia Ross
e1ebcf0506 Fix code to fit within an 80-character width 2024-06-09 01:06:27 +03:00
Ilia Ross
17a27dbe00 Fix to drop showing organizer time unless TZ is explicitly given 2024-06-09 00:48:36 +03:00
Ilia Ross
e36e943251 Fix to keep calendar cell always in right size 2024-06-09 00:31:39 +03:00
Ilia Ross
95ee1e2f2d Add support to embed iCalendar to email message 2024-06-08 23:52:59 +03:00
Ilia Ross
37cde80bbe Fix standard description to replace new lines to HTML break 2024-06-08 23:36:59 +03:00
Ilia Ross
45852664fe Add further fixes and improvements to the processor 2024-06-08 23:19:46 +03:00
Ilia Ross
00885b1f76 Fix location detection 2024-06-08 18:40:35 +03:00
Ilia Ross
cce8911f0f Add additional details to the object 2024-06-08 16:53:25 +03:00
Ilia Ross
3a151469c7 Add proper date parsing and storing extensive details about event 2024-06-08 16:47:08 +03:00
Ilia Ross
e3b94dc458 Fix summary match for strings like SUMMARY;LANGUAGE=fr-CA 2024-06-08 02:18:20 +03:00
Jamie Cameron
cde548ada3 Merge pull request #2192 from webmin/dev/websocket-url-proxy-rely
Set websocket URL depending on the proxy unless defined in config
2024-06-06 20:39:03 -07:00
Ilia Ross
00d0a89630 Set socket URL depending on the proxy unless defined in config 2024-06-07 01:15:27 +03:00
Ilia Ross
9c971202b3 Remove debug 2024-06-07 00:47:47 +03:00
Ilia Ross
2aa3bce4da Fix explicitly set module name from the caller 2024-06-07 00:35:41 +03:00
Ilia Ross
4103177d1e Fix dependencies [build] 2024-06-06 22:55:39 +03:00
Jamie Cameron
31b6cdc82b Merge branch 'master' of github.com:webmin/webmin 2024-06-06 08:34:03 -07:00
Jamie Cameron
fd8c634277 Zone key record might not exist https://forum.virtualmin.com/t/security-updates/127159 2024-06-06 08:33:34 -07:00
Ilia Ross
596ba13b1e Add logic to store iCalendars 2024-06-06 01:59:58 +03:00
Ilia Ross
5e684bf41b Add improvements to iCalendar parser 2024-06-05 03:34:33 +03:00
Jamie Cameron
356c8f7f53 Merge pull request #2191 from webmin/dev/websockets-funcs-are-global
Improve WebSockets API
2024-06-04 16:27:40 -07:00
Ilia Ross
185465351a Fix to use named loop variable 2024-06-05 00:07:44 +03:00
Ilia Ross
8d84e7313a Fix to call function properly 2024-06-04 23:54:13 +03:00
Ilia Ross
71e37adfed Add ability to clean all modules with websockets=1 on the .info 2024-06-04 19:55:25 +03:00
Ilia Ross
af912d9539 Add API to get WebSocket URL 2024-06-04 19:07:34 +03:00
Ilia Ross
5b31c7df84 Factor out WebSockets port and host options to global config 2024-06-04 18:43:34 +03:00
Ilia Ross
55b5939194 Move websocket functions to be always available 2024-06-04 15:48:06 +03:00
Jamie Cameron
00ddfd4d05 Also cleanup websockets 2024-06-03 18:42:31 -07:00
Jamie Cameron
2d23a3503e Fix spacing 2024-06-03 18:34:59 -07:00
Jamie Cameron
a838d11a26 No need for a loop to process a 1-element array 2024-06-03 18:29:56 -07:00
Jamie Cameron
5f28a28d8d Merge pull request #2189 from webmin/dev/icalendar-event-parser
Add support to parse calendar events files #2160
2024-06-03 16:05:49 -07:00
Ilia Ross
e13df24539 Fix to assign argument array before anything else 2024-06-04 00:54:55 +03:00
Ilia Ross
4f7924338d Add missing websockets-lib-funcs.pl file to the build #2190
[build]
2024-06-04 00:48:35 +03:00
Ilia Ross
3a1d609579 Add support to parse calendar events files 2024-06-03 20:58:38 +03:00
Jamie Cameron
e441427031 Merge pull request #2170 from webmin/dev/logviewer-custom-units
Add support for additional units in systemd log viewer
2024-06-01 09:57:19 -07:00
Ilia Ross
469857a41e Fix to use links as is
https://github.com/webmin/webmin/pull/2170#discussion_r1623004037
2024-06-01 18:37:28 +03:00
Ilia Ross
e47c82e7e8 Fix cron id format [build] 2024-06-01 15:32:43 +03:00
Ilia Ross
a0f6dd935c Fix to favour lexically scoped variable over global 2024-06-01 15:31:50 +03:00
Jamie Cameron
e302b706ec Add a default option for mynetworks_style https://github.com/webmin/webmin/issues/2174 2024-05-31 16:26:56 -07:00
Jamie Cameron
8c7fc88d51 Use more accurate wording https://github.com/webmin/webmin/issues/2174 2024-05-31 16:25:11 -07:00
Jamie Cameron
7b4d905eb6 Merge branch 'master' of github.com:webmin/webmin 2024-05-31 16:02:57 -07:00
Jamie Cameron
a1a6f669b2 Use a unique ID for webmin crons created in the same process at the same time https://forum.virtualmin.com/t/webmin-server-stauts/126983 2024-05-31 16:02:41 -07:00
Jamie Cameron
0298d884ef Merge pull request #2182 from webmin/dev/take-out-ws-lib-and-make-it-work-with-themes
Dev/take-out-ws-lib-and-make-it-work-with-themes
2024-05-31 13:40:31 -07:00
Ilia Ross
5a8b3467a1 Fix to consider themes using websockets too 2024-05-31 23:04:19 +03:00
Ilia Ross
17fb8304c3 Fix to take out WebSockets library 2024-05-31 22:58:27 +03:00
Jamie Cameron
5cd88dad43 Merge pull request #2181 from webmin/dev/fix-proftpd-mods-load
Fix how modules are loaded in ProFTPd
2024-05-31 12:41:50 -07:00
Ilia Ross
c15e7a5e5e Fix how modules are loaded in ProFTPd 2024-05-31 19:55:37 +03:00
Jamie Cameron
fad464be47 Merge pull request #2180 from webmin/dev/better-xterm-logging
Dev/better-xterm-logging
2024-05-31 08:57:39 -07:00
Ilia Ross
489db4c769 Fix to store logs in var directory 2024-05-31 16:54:36 +03:00
Ilia Ross
cc663af3df Fix to log username 2024-05-31 16:51:08 +03:00
Ilia Ross
0b58cd5197 Fix to print log nicely 2024-05-31 16:31:56 +03:00
Ilia Ross
dbd16c21cc Fix to drop extra new line [build] 2024-05-31 15:52:50 +03:00
Ilia Ross
8ddabb35b6 Fix test for ports below zero and put port number to error message 2024-05-31 15:50:34 +03:00
Ilia Ross
8476206da8 Merge pull request #2179 from webmin/dev/impove-status-module
Dev/impove-status-module
2024-05-31 13:37:18 +03:00
Ilia Ross
e0085e82d4 Fix to remove colon in button text as its relation is obvious 2024-05-31 13:10:18 +03:00
Ilia Ross
b697c134f1 Fix to break status icons to a new line 2024-05-31 12:15:02 +03:00
Ilia Ross
5d363d60fe Fix to break remotes to a new line without pointless limits 2024-05-31 12:14:45 +03:00
Ilia Ross
f06bc871dc Fix to break each icon to a new line 2024-05-31 12:13:33 +03:00
Ilia Ross
45e16aeeac Revert "[build] - Test collect_interval=5 preset"
This reverts commit 9be50b5aef.
2024-05-30 15:30:01 +03:00
Ilia Ross
9be50b5aef [build] - Test collect_interval=5 preset 2024-05-30 15:01:27 +03:00
Ilia Ross
80c7c7794c Fix saving SMTP TLS client security level #2177 2024-05-30 12:28:44 +03:00
Ilia Ross
decb55b8ff Add support for storing replaced text values and keys #2176
9e0d4cd9b6
2024-05-30 02:39:19 +03:00
Jamie Cameron
d061a190ac Handle case where FPM config contains no PHP options yet https://forum.virtualmin.com/t/pfp-fpm-default-configuration/127002 2024-05-29 16:26:48 -07:00
Jamie Cameron
6d89004446 Merge branch 'master' of github.com:webmin/webmin 2024-05-29 13:22:51 -07:00
Jamie Cameron
9817085c70 Delete PID file on shutdown 2024-05-29 13:22:47 -07:00
Ilia Ross
ca3362ee84 Fix to properly test fetched filtered content 2024-05-29 19:20:15 +03:00
Ilia Ross
e88ba87eae Add a message for progressive logs with no data 2024-05-29 17:38:28 +03:00
Ilia Ross
a420c7142f Fix to use hash for mapping since select names 2024-05-29 15:35:41 +03:00
Ilia Ross
6f37dc94bf Revert the change to hide logs from other modules yet
https://github.com/webmin/webmin/pull/2170#discussion_r1618145017
2024-05-29 11:30:53 +03:00
Ilia Ross
c59a200725 Fix functions name 2024-05-29 03:11:28 +03:00
Ilia Ross
e56aa7711c Add status handler function 2024-05-29 03:11:18 +03:00
Ilia Ross
b480b4caa3 Fix SPA themes have own control over onbeforeunload event 2024-05-29 01:37:43 +03:00
Ilia Ross
db456ad458 Add crucial calls abortion control 2024-05-29 01:11:53 +03:00
Ilia Ross
9513d85157 Fix to just always call it Filter 2024-05-28 22:59:45 +03:00
Ilia Ross
68b547d55a Fix to include forwarded message on empty body
a268373550 (r142447419)

[build]
2024-05-28 16:56:23 +03:00
Ilia Ross
dccc3fb10e Fix to call check right away
https://github.com/webmin/webmin/pull/2170#discussion_r1616387257
2024-05-28 00:08:23 +03:00
Jamie Cameron
d6bed07aae Delete obsolete java applet for running strace 2024-05-27 12:17:51 -07:00
Ilia Ross
bb7938a0f5 Add support for tailing logs in real time 2024-05-27 21:52:24 +03:00
Ilia Ross
8164480b48 Fix lines bug in journalctl 2024-05-27 18:08:57 +03:00
Ilia Ross
4155fdb4c5 Fix not to use bare words 2024-05-27 15:05:15 +03:00
Ilia Ross
19efd89c28 Fix bug when hiding controls 2024-05-27 14:53:01 +03:00
Ilia Ross
f911137624 Add module config and other buttons in case index page is bypassed 2024-05-27 14:40:06 +03:00
Ilia Ross
d4ac34e4b5 Fix to show right title when viewing journal 2024-05-27 14:39:23 +03:00
Ilia Ross
5323bda372 Fix to limit select width not to break the page on long systemd entries 2024-05-27 14:37:40 +03:00
Ilia Ross
1b1ac686e3 Fix to redirect straight to log view or show error 2024-05-27 13:57:27 +03:00
Ilia Ross
75e9323429 Rename the old logging system to "System Logs RS" to free up the name for actual systemd-journald 2024-05-27 13:47:10 +03:00
Ilia Ross
554b439bf8 Fix to drop redundant support for extra units 2024-05-27 00:56:42 +03:00
Ilia Ross
2f9a0b3f21 Add support for showing messages all units and filter by since
Fix numerous of other bugs:

  1. No `tac` for `journalctl` as there is a special `-r` flag
  2. No using tail for `journalctl`
2024-05-27 00:52:45 +03:00
Jamie Cameron
f457b971a7 Check if an NFS server is actually installed 2024-05-26 11:35:24 -07:00
Jamie Cameron
f5252d3f09 Merge branch 'master' of github.com:webmin/webmin 2024-05-25 22:19:28 -07:00
Jamie Cameron
60a9419cc3 Use static routes to set the default gateway https://forum.virtualmin.com/t/ubuntu-and-network-configurations/126890 2024-05-25 22:18:53 -07:00
Ilia Ross
cc2502737f Add support for additional units in systemd log viewer 2024-05-26 01:12:39 +03:00
Jamie Cameron
0cbd11335d Don't show procmail icon if controlled by Virtualmin https://github.com/virtualmin/virtualmin-gpl/issues/818 2024-05-25 11:42:02 -07:00
Ilia Ross
f9198b0fbd Update translations 2024-05-25 01:40:22 +03:00
Jamie Cameron
bb24e2bbdd Merge pull request #2168 from webmin/dev/firewalld-block-ip
Add support for blocking a given IP temporarily or permanently
2024-05-24 15:10:49 -07:00
Ilia Ross
a86eb6ff46 Fix to use substitution 2024-05-25 00:58:57 +03:00
Ilia Ross
d2420038f9 Update translations 2024-05-24 23:20:43 +03:00
Ilia Ross
26625786cb Fix layout 2024-05-24 23:16:51 +03:00
Ilia Ross
3f2023d174 Update translations 2024-05-24 22:55:30 +03:00
Ilia Ross
6b190a6cba Add support for blocking a given IP temporarily or permanently 2024-05-24 22:30:54 +03:00
Jamie Cameron
5c465a587c Add function to clear the Webmin cache for a URL 2024-05-23 15:17:27 -07:00
Jamie Cameron
61f631c1f7 Add more choices for smtpd_sasl_security_options 2024-05-22 14:30:19 -07:00
Jamie Cameron
40c1c30ae2 Don't show the last perl eval faiure unless full error reporting is enabled, because it scares the users https://github.com/virtualmin/virtualmin-gpl/issues/813 2024-05-20 16:22:59 -07:00
Jamie Cameron
d805878186 Merge branch 'master' of github.com:webmin/webmin 2024-05-20 13:29:46 -07:00
Jamie Cameron
84d46adcee There are only 65536 ports https://github.com/webmin/webmin/discussions/2161 2024-05-20 13:29:26 -07:00
Jamie Cameron
b740f9850b Merge pull request #2163 from webmin/dev/log-nicely
Fix to always use log function
2024-05-20 11:39:42 -07:00
Ilia Ross
2641985b98 Fix typo 2024-05-20 19:06:18 +03:00
Ilia Ross
736e514766 Fix to always use log function 2024-05-20 18:48:44 +03:00
Jamie Cameron
5ab6ce618d Sometimes less than a whole line is read 2024-05-17 19:47:14 -07:00
Jamie Cameron
1c8257ecff Add missing icon 2024-05-17 19:38:55 -07:00
Jamie Cameron
ebfd1e9e51 Terminal doesn't work in proxy mode https://forum.virtualmin.com/t/webmin-terminal-wss-connection-time-out/126735 2024-05-16 20:13:12 -07:00
Jamie Cameron
70dede0e22 Merge branch 'master' of github.com:webmin/webmin 2024-05-11 15:20:24 -07:00
Jamie Cameron
35e9f0a01d Limit UDP replies to 1 every 5 seconds per IP 2024-05-11 15:20:19 -07:00
Ilia Ross
0c8777acef Add support for nested forms embedded in tabs 2024-05-12 01:17:42 +03:00
Ilia Ross
04523fdb86 Fix tab name 2024-05-10 14:25:06 +03:00
Ilia Ross
b83bcc4723 Fix to compare versions correctly 2024-05-08 21:28:43 +03:00
Jamie Cameron
b9bb060250 Default changed in version 3.4 https://github.com/webmin/webmin/issues/2156 2024-05-08 10:42:32 -07:00
Jamie Cameron
f49f8f2fb1 Add more authentication methods https://github.com/webmin/webmin/issues/2154 2024-05-08 10:33:06 -07:00
Jamie Cameron
801f1f61d8 Always show extra client restrictions field https://github.com/webmin/webmin/issues/2153 2024-05-08 10:25:29 -07:00
Jamie Cameron
ede9921ea4 Merge branch 'master' of github.com:webmin/webmin 2024-05-08 09:39:36 -07:00
Jamie Cameron
cbd7a91d5c Cache the list of boot interfaces https://forum.virtualmin.com/t/webmin-network-settings-does-not-pickup-or-allow-setting-of-default-route/126466/ 2024-05-08 09:39:29 -07:00
Ilia Ross
36c8aa5e7d Update Xterm.js 2024-05-08 15:37:22 +03:00
Jamie Cameron
7881b1c6c2 Remove options that were obsoleted in version 3.9 https://github.com/webmin/webmin/issues/2150 2024-05-07 15:41:34 -07:00
Jamie Cameron
4a918ee504 Merge branch 'master' of github.com:webmin/webmin 2024-05-07 15:39:02 -07:00
Jamie Cameron
078d3acb98 Remove obsolete smtp_use_tls option 2024-05-07 15:38:22 -07:00
Ilia Ross
6a521ea32c Fix some experimental MIME types are now recognized #2147 2024-05-05 23:28:01 +03:00
Ilia Ross
0c0639d2e9 Add missing option help file #2146 2024-05-05 17:20:52 +03:00
Jamie Cameron
1c8cee607e Merge pull request #2145 from webmin/dev/jail-backend-port
Dev/jail-backend-port
2024-05-04 14:26:12 -07:00
Ilia Ross
4ac3a675e8 No need to stress 2024-05-04 21:40:25 +03:00
Ilia Ross
35dfcbe456 Update language 2024-05-04 21:38:31 +03:00
Ilia Ross
1d5900eb70 Add ports support 2024-05-04 21:37:28 +03:00
Ilia Ross
e2d6caf359 Add backend support 2024-05-04 21:35:38 +03:00
Ilia Ross
1cc640a8e2 Move enabled 2024-05-04 21:01:52 +03:00
Ilia Ross
13442d4aa4 Update translations 2024-05-03 14:16:43 +03:00
Jamie Cameron
677b39bd61 Improve wording 2024-05-02 21:51:23 -07:00
Jamie Cameron
0dc1af46f2 Document password timeouts with a tooltip 2024-05-02 21:49:33 -07:00
Jamie Cameron
bff3e78630 Also update MySQL to MariaDB in text strings https://github.com/virtualmin/virtualmin-gpl/issues/798 2024-05-01 20:30:48 -07:00
Jamie Cameron
d9d4522430 Clarify which characters cannot be used https://forum.virtualmin.com/t/virtualmin-seems-to-have-broken-itself-sort-of-dont-you-just-love-a-descriptive-title/126306 2024-05-01 07:51:01 -07:00
Jamie Cameron
0bd657978f Merge branch 'master' of github.com:webmin/webmin 2024-04-30 16:49:34 -07:00
Jamie Cameron
d59c49b6ce Change default monitor name if it's MariaDB https://github.com/virtualmin/virtualmin-gpl/issues/798 2024-04-30 16:48:15 -07:00
Ilia Ross
fae522a28e Add support for another AMD CPU #2140 [build] 2024-04-30 15:51:16 +03:00
Ilia Ross
9dcb1da4f5 Fix to invalidate EOL cache on re-checks #2139 2024-04-29 13:51:05 +03:00
Jamie Cameron
591161560a Merge branch 'master' of github.com:webmin/webmin 2024-04-28 09:07:40 -07:00
Jamie Cameron
799ccb3683 Add missing local variable 2024-04-28 09:05:02 -07:00
Ilia Ross
4e5da791e2 Fix to limit input to 4 numbers https://github.com/webmin/webmin/issues/2138#issuecomment-2079609477 [build] 2024-04-26 18:39:46 +03:00
Ilia Ross
4db36071b3 Fix $rawtime scope #2136 [build] 2024-04-26 16:02:24 +03:00
Ilia Ross
8de5c83ca8 Add ctrl help #2134 2024-04-26 13:34:20 +03:00
Ilia Ross
9b496bf413 Fix to drop installing systemd service at boot script [build]
https://github.com/webmin/webmin/issues/2133
2024-04-21 17:53:03 +03:00
Ilia Ross
985129bb70 Fix to call update boot script after adding boot #2133 [build] 2024-04-21 17:45:10 +03:00
Ilia Ross
f1804201e6 Fix indent [build] 2024-04-21 16:43:47 +03:00
Ilia Ross
0b1e5f87e1 Dev: Remove debug info 2024-04-21 16:41:25 +03:00
Ilia Ross
1e94a328ba Dev: Add more debug [build] 2024-04-21 16:29:05 +03:00
Ilia Ross
bac62e03c7 Add debug [build] 2024-04-21 16:18:10 +03:00
Ilia Ross
b1a6beda22 Revert "Fix to use latest version [build]"
This reverts commit cd46f97288.
2024-04-21 15:54:33 +03:00
Ilia Ross
b57d57b729 Fix to check for status only if it was running in the first place
https://sourceforge.net/p/webadmin/bugs/5646/

[build]
2024-04-21 15:48:09 +03:00
Ilia Ross
cd46f97288 Fix to use latest version [build] 2024-04-21 15:38:39 +03:00
Ilia Ross
1f2a7902c6 Fix to save status of service correctly [build] 2024-04-21 14:59:12 +03:00
Ilia Ross
975ae7b497 Fix to wait for systemd to update configuration
[build]
2024-04-21 14:53:03 +03:00
Ilia Ross
f252296471 Fix to preserve service state https://github.com/webmin/webmin/issues/2133
[build]
2024-04-21 13:56:11 +03:00
Jamie Cameron
f33b433b96 Merge pull request #2130 from webmin/dev/disable-manual-upgrades
Fix to correctly disable manual upgrades
2024-04-20 11:29:19 -07:00
Ilia Ross
6eb674b451 Fix to swap lines 2024-04-20 16:22:12 +03:00
Ilia Ross
690bae82fc Fix to use disable hash 2024-04-19 20:51:03 +03:00
Ilia Ross
575c1ca5a3 Fix to use Perl to get repo files 2024-04-19 20:33:24 +03:00
Jamie Cameron
97e4545c58 Merge pull request #2131 from Romanitch/bind8
Add ED25519 & ED448 DNSSEC Key Algorithm
2024-04-18 15:45:03 -07:00
Ilia Ross
73150b7818 Fix to remove un_urlize as unnecessary 2024-04-18 23:26:55 +03:00
Ilia Ross
c72a24369c Fix how self Webmin and Usermin upgrades are banned 2024-04-18 22:57:31 +03:00
Ilia Ross
ed7ac533d4 Fix to remove from build time 2024-04-18 21:19:40 +03:00
Romanitch
6df08bc645 add ED25519 & ED448 DNSSEC Key Algorithm 2024-04-18 19:43:16 +03:00
Ilia Ross
54d2766960 Fix to correctly disable manual upgrades
https://forum.virtualmin.com/t/should-this-warning-be-displayed/126011
2024-04-17 20:39:43 +03:00
Ilia Ross
c22f7fa8af Fix to correctly call the package for Debian systems 2024-04-17 20:00:38 +03:00
Jamie Cameron
da285e9804 Merge pull request #2129 from swelljoe/deprecate-old-netbsd-mounts
Fix for 10+ versions of netbsd
2024-04-17 09:48:10 -07:00
Joe Cooper
db42daab77 Fix for 10+ versions of netbsd 2024-04-17 10:09:42 -05:00
Ilia Ross
e2cf926097 Fix to correctly handle save and save and next buttons 2024-04-17 15:33:47 +03:00
Jamie Cameron
6f1b0db855 Merge branch 'master' of github.com:webmin/webmin 2024-04-16 19:50:21 -07:00
Jamie Cameron
1f99616848 Fix passing of params by save-and-next button 2024-04-16 19:49:58 -07:00
Jamie Cameron
d10d98421e Merge pull request #2128 from Mr-Method/dev/translation_uk/lang
dev/translation_uk/lang
2024-04-16 19:39:37 -07:00
Jamie Cameron
827e02d47d Merge pull request #2127 from Mr-Method/dev/translation_uk/filemin
dev/translation_uk/filemin
2024-04-16 19:39:13 -07:00
Jamie Cameron
1bee7442a6 Merge pull request #2126 from Mr-Method/dev/translation_uk/cpan
dev/translation_uk/cpan
2024-04-16 16:44:22 -07:00
Mr-Method
d165a4740a dev/translation_uk/lang
translated with wbmtranslator 0.9.2 (fixed)
2024-04-17 01:53:27 +03:00
Mr-Method
4126264a63 dev/translation_uk/filemin
translated with wbmtranslator 0.9.2 (fixed)
2024-04-17 01:47:59 +03:00
Jamie Cameron
0d390df894 Merge pull request #2125 from Mr-Method/dev/translation_uk/change-user
dev/translation_uk/change-user
2024-04-16 15:32:55 -07:00
Mr-Method
eda29478de dev/translation_uk/cpan
translated with wbmtranslator 0.9.2 (fixed)
2024-04-17 01:28:54 +03:00
Mr-Method
ea98188a63 dev/translation_uk/change-user
translated with wbmtranslator 0.9.2 (fixed)
2024-04-17 01:21:48 +03:00
55816 changed files with 58261 additions and 1924032 deletions

9
.gitattributes vendored
View File

@@ -1,9 +0,0 @@
# webmin .gitattribues file
# help git / github to know the encoding of webmin (lang) files
# force module.info to iso-8859-1 even it contains other encodings
*/module.info working-tree-encoding=iso8859-1 git-encoding=iso8859-1
# set all .UTF-8 to UTF-8
*.UTF-8 working-tree-encoding=UTF-8 git-encoding=UTF-8

221
.github/build/deb.sh vendored
View File

@@ -1,221 +0,0 @@
#!/usr/bin/env bash
#
# Copyright @iliajie <ilia@webmin.dev>
#
# Automatically builds and updates a repo metadata.
# Pulls latest changes from GitHub, detects release
# version based on what's available in the repo
#
# (Debian)
#
# Usage:
#
# # Pull and build production versions
# # of both Webmin and Usermin
# ./deb.sh
#
# # Pull and build devel versions
# # of both Webmin and Usermin
# ./deb.sh --devel
#
# # Pull and build production Webmin version 2.101, forcing
# # release version 3, displaying detailed output
# ./deb.sh webmin 2.101 3 --debug
#
# # Pull and build production Usermin version 2.000,
# # automatically setting release version to minimal
# ./deb.sh usermin 2.000
#
# shellcheck disable=SC1091
# Source build variables
source ./vars.sh || exit 1
# Source build init
source ./init.sh || exit 1
# Source general build functions
source ./funcs.sh || exit 1
# Build product func
build_prod() {
# Pack with English only in devel builds
local english_only=0
if [[ "'$*'" == *"--devel"* ]]; then
english_only=1
fi
# Always return back to root directory
cd "$root" || exit 1
# Define root
local ver=""
local prod=$1
root_prod="$root/$prod"
root_apt="$root_prod/deb"
# Print build actual date
date=$(get_current_date)
# Print opening header
echo "************************************************************************"
echo " build start date: $date "
echo " package format: DEB "
echo " product: $prod "
(make_prod_repos "$root_prod") &
spinner " package output version:"
# Pull main project first to get the latest tag
cd "$root_prod" || exit 1
cmd="git pull $verbosity_level"
eval "$cmd"
rs1=$?
# Clean and try again
if [ "$rs1" != "0" ]; then
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
eval "$cmd"
rs1=$?
fi
# Descend to theme dir
cd "authentic-theme" || exit 1
cmd="git pull $verbosity_level"
eval "$cmd"
rs2=$?
# Clean and try again
if [ "$rs2" != "0" ]; then
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
eval "$cmd"
rs2=$?
fi
if [ "$rs1" != "0" ] || [ "$rs2" != "0" ]; then
rs=1
else
rs=0
fi
# Build number
date_version=$(get_latest_commit_date_version)
# Handle other params
cd "$root_prod" || exit 1
if [[ "'$2'" != *"--"* ]]; then
ver=$2
fi
if [[ "'$3'" != *"--"* ]] && [[ -n "$3" ]]; then
rel=$3
relval="-$3"
else
rel=1
relval=""
fi
if [ -z "$ver" ]; then
ver=$(get_current_repo_tag)
fi
if [[ "'$*'" == *"--devel"* ]]; then
ver="$ver.$date_version"
# Set actual product version
echo "${ver}" >"version"
fi
printf "$ver-$rel\n"
echo "************************************************************************"
echo "Pulling latest changes.."
# We need to pull first to get the latest tag,
# so here we only report an error if any
postcmd $rs
echo
echo "Pre-clean up .."
# Make sure directories exist
make_dir "$root_repos/"
make_dir "$root_apt/"
make_dir "$root_prod/newkey/deb/"
make_dir "$root_prod/umodules/"
make_dir "$root_prod/minimal/"
make_dir "$root_prod/tarballs/"
# Re-create legacy link
rm -rf "$root/webadmin"
ln -s "$root/webmin" "$root/webadmin"
# Purge old files
purge_dir "$root_prod/newkey/deb"
purge_dir "$root_prod/umodules"
purge_dir "$root_prod/minimal"
purge_dir "$root_prod/tarballs"
if [ "$prod" != "" ]; then
# XXXX Need to check for
# product name exactly
rm -f "$root_repos/$prod-latest"*
fi
postcmd $?
echo
# Descend to project dir
cd "$root_prod" || exit 1
if [ "$english_only" = "1" ]; then
echo "Cleaning languages .."
cmd="./bin/language-manager --mode=clean --yes $verbosity_level_with_input"
eval "$cmd"
postcmd $?
echo
else
# Force restore build directory
if [ ! -f "lang/ja" ]; then
echo "Restoring languages .."
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
eval "$cmd"
postcmd $?
echo
fi
fi
echo "Pre-building package .."
eval "$cmd"
cmd="./makedist.pl \"${ver}${relval}\" $verbosity_level"
eval "$cmd"
postcmd $?
echo
echo "Building package .."
if [ "$relval" == "" ]; then
cmd="./makedebian.pl \"$ver\" $verbosity_level"
else
cmd="./makedebian.pl \"$ver\" \"$rel\" $verbosity_level"
fi
eval "$cmd"
postcmd $?
echo
cd "$root" || exit 1
echo "Preparing built files for upload .."
cmd="cp -f $root_prod/tarballs/${prod}-${ver}*\.tar.gz $root_repos/${prod}-latest.tar.gz $verbosity_level"
eval "$cmd"
cmd="echo $ver-$rel \($date\) > $root_repos/${prod}-latest.version $verbosity_level_to_file"
eval "$cmd"
cmd="find $root_apt -name ${prod}_${ver}${relval}*\.deb -exec mv '{}' $root_repos \; $verbosity_level"
eval "$cmd"
cmd="mv -f $root_repos/${prod}_${ver}${relval}*\.deb $root_repos/${prod}-latest.deb $verbosity_level"
eval "$cmd"
postcmd $?
}
if [ -n "$1" ] && [[ "'$1'" != *"--"* ]]; then
build_prod $@
cloud_upload_list_upload=("$root_repos/$1*")
cloud_upload cloud_upload_list_upload
cloud_repo_sign_and_update
else
build_prod webmin $@
build_prod usermin $@
cloud_upload_list_upload=("$root_repos/*")
cloud_upload cloud_upload_list_upload
cloud_repo_sign_and_update
fi

163
.github/build/funcs.sh vendored
View File

@@ -1,163 +0,0 @@
#!/usr/bin/env bash
#
# Copyright @iliajie <ilia@webmin.dev>
#
# General build functions
#
#
# Upload to cloud
# Usage:
# cloud_upload_list_delete=("$cloud_upload_ssh_dir/repodata")
# cloud_upload_list_upload=("$root_repos/*" "$root_repos/repodata")
# cloud_upload cloud_upload_list_upload cloud_upload_list_delete
cloud_upload() {
# Print new block only if definded
local ssh_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
if [ -n "$1" ]; then
echo
fi
# Delete files on remote if needed
if [ -n "$2" ]; then
echo "Deleting given files in $cloud_upload_ssh_host .."
local -n arr_del=$2
local err=0
for d in "${arr_del[@]}"; do
if [ -n "$d" ]; then
local cmd1="ssh $ssh_args $cloud_upload_ssh_user@$cloud_upload_ssh_host \"rm -rf $d\" $verbosity_level"
eval "$cmd1"
if [ "$?" != "0" ]; then
err=1
fi
fi
done
postcmd $err
echo
fi
# Upload files to remote
if [ -n "$1" ]; then
echo "Uploading built files to $cloud_upload_ssh_host .."
local -n arr_upl=$1
local err=0
for u in "${arr_upl[@]}"; do
if [ -n "$u" ]; then
local cmd2="scp $ssh_args -r $u $cloud_upload_ssh_user@$cloud_upload_ssh_host:$cloud_upload_ssh_dir/ $verbosity_level"
eval "$cmd2"
if [ "$?" != "0" ]; then
err=1
fi
fi
done
postcmd $err
echo
fi
}
# Sign and update repos metadata in remote
cloud_repo_sign_and_update() {
echo "Signing and updating repos metadata in $cloud_upload_ssh_host .."
local ssh_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
local remote_cmd="cd ~/.scripts && ./update-repo-packages-signature.bash $cloud_upload_gpg_passphrase"
local cmd1="ssh $ssh_args $cloud_upload_ssh_user@$cloud_upload_ssh_host \"$remote_cmd\" $verbosity_level"
eval "$cmd1"
postcmd $?
echo
}
# Post command func
postcmd() {
if [ "$1" != "0" ]; then
echo ".. failed"
exit 1
else
echo ".. done"
fi
}
# Get max number from array
max() {
local -n arr_nums=$1
IFS=$'\n'
echo "${arr_nums[*]}" | sort -nr | head -n1
}
# Mkdir and children dirs
make_dir() {
if [ ! -d "$1" ]; then
mkdir -p "$1"
fi
}
# Remove all content in dir
purge_dir() {
for file in "$1"/*; do
rm -rf "$file"
done
}
# Get latest tag version
get_current_repo_tag() {
cd "$root_prod" || exit 1
tg=$(git rev-list --tags --max-count=1)
ds=$(git describe --tags "$tg")
echo "$ds" | sed 's/v//'
}
# Get latest commit date
get_current_date() {
echo $(date +'%Y-%m-%d %H:%M:%S %z')
}
# Get latest commit date version
get_latest_commit_date_version() {
local theme_version
local prod_version
local max_prod
local highest_version
theme_version=$(git log -n1 --pretty='format:%cd' --date=format:'%Y%m%d%H%M')
cd "$root_prod" || exit 1
prod_version=$(git log -n1 --pretty='format:%cd' --date=format:'%Y%m%d%H%M')
max_prod=("$theme_version" "$prod_version")
highest_version=$(max max_prod)
echo "$highest_version"
}
# Pull project repo and theme
make_prod_repos() {
# Webmin or Usermin
if [ ! -d "$1" ]; then
local repo="webmin/$prod.git"
cmd="git clone https://github.com/$repo $verbosity_level"
eval "$cmd"
if [ ! -d "webmin" ]; then
cmd="git clone --depth 1 https://github.com/webmin/webmin $verbosity_level"
eval "$cmd"
fi
fi
# Theme
theme="authentic-theme"
if [ ! -d "$1/$theme" ]; then
cd "$1" || exit 1
local repo="webmin/$theme.git"
cmd="git clone --depth 1 https://github.com/$repo $verbosity_level"
eval "$cmd"
fi
}
spinner() {
local msg=$1
local pid=$!
local spin='-\|/'
local i=0
printf "$msg "
while kill -0 $pid 2>/dev/null; do
(( i = (i + 1) % 4 ))
# No spinner if not an interactive shell
if [ -n "$PS1" ]; then
printf '%c\b' "${spin:i:1}"
fi
sleep .1
done
}

29
.github/build/init.sh vendored
View File

@@ -1,29 +0,0 @@
#!/usr/bin/env bash
#
# Copyright @iliajie <ilia@webmin.dev>
#
# Build init
#
#
# Set up SSH dev keys
if [ -n "$WEBMIN_DEV__SSH_PRV_KEY" ] && [ -n "$WEBMIN_DEV__SSH_PUB_KEY" ]; then
# Generate new pair with right permissions
cmd="ssh-keygen -t rsa -q -f \"$HOME/.ssh/id_rsa\" -N \"\"$verbosity_level"
eval "$cmd"
# Import SSH keys from secrets to be able to connect to the remote host
echo "$WEBMIN_DEV__SSH_PRV_KEY" > "$HOME/.ssh/id_rsa"
echo "$WEBMIN_DEV__SSH_PUB_KEY" > "$HOME/.ssh/id_rsa.pub"
# Set up SSH production keys
elif [ -n "$WEBMIN_PROD__SSH_PRV_KEY" ] && [ -n "$WEBMIN_PROD__SSH_PUB_KEY" ]; then
# Generate new pair with right permissions
cmd="ssh-keygen -t rsa -q -f \"$HOME/.ssh/id_rsa\" -N \"\"$verbosity_level"
eval "$cmd"
# Import SSH keys from secrets to be able to connect to the remote host
echo "$WEBMIN_PROD__SSH_PRV_KEY" > "$HOME/.ssh/id_rsa"
echo "$WEBMIN_PROD__SSH_PUB_KEY" > "$HOME/.ssh/id_rsa.pub"
fi
# Create symlink to Perl
ln -fs /usr/bin/perl /usr/local/bin/perl

243
.github/build/rpm.sh vendored
View File

@@ -1,243 +0,0 @@
#!/usr/bin/env bash
#
# Copyright @iliajie <ilia@webmin.dev>
#
# Automatically builds and updates a repo metadata.
# Pulls latest changes from GitHub, detects release
# version based on what's available in the repo
#
# (RHEL)
#
# Usage:
#
# # Pull and build production versions
# # of both Webmin and Usermin
# ./rpm.sh
#
# # Pull and build devel versions
# # of both Webmin and Usermin
# ./rpm.sh --devel
#
# # Pull and build production Webmin version 2.101, forcing
# # release version 3, displaying detailed output
# ./rpm.sh webmin 2.101 3 --debug
#
# # Pull and build production Usermin version 2.000,
# # automatically setting release version to minimal
# ./rpm.sh usermin 2.000
#
# shellcheck disable=SC1091
# Source build variables
source ./vars.sh || exit 1
# Source build init
source ./init.sh || exit 1
# Source general build functions
source ./funcs.sh || exit 1
# Build product func
build_prod() {
# Pack with English only in devel builds
local english_only=0
if [[ "'$*'" == *"--devel"* ]]; then
english_only=1
fi
# Always return back to root directory
cd "$root" || exit 1
# Define root
local ver=""
local prod=$1
root_prod="$root/$prod"
# Print build actual date
date=$(get_current_date)
# Print opening header
echo "************************************************************************"
echo " build start date: $date "
echo " package format: RPM "
echo " product: $prod "
(make_prod_repos "$root_prod") &
spinner " package output version:"
# Pull main project first to get the latest tag
cd "$root_prod" || exit 1
cmd="git pull $verbosity_level"
eval "$cmd"
rs1=$?
# Clean and try again
if [ "$rs1" != "0" ]; then
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
eval "$cmd"
rs1=$?
fi
# Pull theme to theme dir
cd "authentic-theme" || exit 1
cmd="git pull $verbosity_level"
eval "$cmd"
rs2=$?
# Clean and try again
if [ "$rs2" != "0" ]; then
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
eval "$cmd"
rs2=$?
fi
if [ "$rs1" != "0" ] || [ "$rs2" != "0" ]; then
rs=1
else
rs=0
fi
# Build number
date_version=$(get_latest_commit_date_version)
# Handle other params
cd "$root_prod" || exit 1
if [[ "'$2'" != *"--"* ]]; then
ver=$2
fi
if [[ "'$3'" != *"--"* ]] && [[ -n "$3" ]]; then
rel=$3
else
rel=1
fi
if [ -z "$ver" ]; then
ver=$(get_current_repo_tag)
fi
if [[ "'$*'" == *"--devel"* ]]; then
ver="$ver.$date_version"
# Set actual product version
echo "${ver}" >"version"
fi
printf "$ver-$rel\n"
echo "************************************************************************"
echo "Pulling latest changes.."
# We need to pull first to get the latest tag,
# so here we only report an error if any
postcmd $rs
echo
echo "Pre-clean up .."
# Make sure directories exist
make_dir "$root_prod/newkey/rpm/"
make_dir "$root_prod/umodules/"
make_dir "$root_prod/minimal/"
make_dir "$root_prod/tarballs/"
make_dir "$root_build/BUILD/"
make_dir "$root_build/BUILDROOT/"
make_dir "$root_build/RPMS/"
make_dir "$root_build/SOURCES/"
make_dir "$root_build/SPECS/"
make_dir "$root_build/SRPMS/"
make_dir "$root_repos/"
# Re-create legacy link
rm -rf "$root/webadmin"
ln -s "$root/webmin" "$root/webadmin"
# Purge old files
purge_dir "$root_prod/newkey/rpm"
purge_dir "$root_prod/umodules"
purge_dir "$root_prod/minimal"
purge_dir "$root_prod/tarballs"
purge_dir "$root_build/BUILD"
purge_dir "$root_build/BUILDROOT"
purge_dir "$root_build/RPMS"
purge_dir "$root_build/SOURCES"
purge_dir "$root_build/SPECS"
purge_dir "$root_build/SRPMS"
rm -rf "$root_repos/repodata"
if [ "$prod" != "" ]; then
# XXXX Need to check for
# product name exactly
rm -f "$root_repos/$prod-latest"*
fi
postcmd $?
make_dir "$root_build/RPMS/noarch"
echo
# Descend to project dir
cd "$root_prod" || exit 1
if [ "$english_only" = "1" ]; then
echo "Cleaning languages .."
cmd="./bin/language-manager --mode=clean --yes $verbosity_level_with_input"
eval "$cmd"
postcmd $?
echo
else
# Force restore build directory
if [ ! -f "lang/ja" ]; then
echo "Restoring languages .."
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
eval "$cmd"
postcmd $?
echo
fi
fi
echo "Pre-building package .."
eval "$cmd"
if [ "$rel" = "1" ]; then
args="$ver"
else
args="$ver-$rel"
fi
cmd="./makedist.pl \"$args\" $verbosity_level"
eval "$cmd"
postcmd $?
echo
echo "Building package .."
cmd="./makerpm.pl \"$ver\" \"$rel\" $verbosity_level"
eval "$cmd"
postcmd $?
echo
cd "$root" || exit 1
echo "Preparing built files for upload .."
cmd="cp -f $root_prod/tarballs/$prod-$ver*\.tar.gz $root_repos/${prod}-latest.tar.gz $verbosity_level"
eval "$cmd"
cmd="echo $ver-$rel \($date\) > $root_repos/$prod-latest.version"
eval "$cmd"
cmd="find $root_rpms -name $prod-$ver-$rel*\.rpm -exec mv '{}' $root_repos \; $verbosity_level"
eval "$cmd"
cmd="mv -f $root_repos/$prod-$ver-$rel*\.rpm $root_repos/${prod}-latest.rpm $verbosity_level"
eval "$cmd"
postcmd $?
echo
echo "Post-clean up .."
cd "$root_build" || exit 1
for dir in *; do
cmd="rm -rf \"$dir/*\" $verbosity_level"
eval "$cmd"
done
postcmd $?
}
if [ -n "$1" ] && [[ "'$1'" != *"--"* ]]; then
build_prod $@
cloud_upload_list_upload=("$root_repos/$1*")
cloud_upload cloud_upload_list_upload
cloud_repo_sign_and_update
else
build_prod webmin $@
build_prod usermin $@
cloud_upload_list_upload=("$root_repos/*")
cloud_upload cloud_upload_list_upload
cloud_repo_sign_and_update
fi

27
.github/build/vars.sh vendored
View File

@@ -1,27 +0,0 @@
#!/usr/bin/env bash
#
# Copyright @iliajie <ilia@webmin.dev>
#
# Build variables
#
#
# Set defaults
root="${ENV_BUILD__ROOT:-$HOME}"
root_repos="${ENV_BUILD__ROOT_REPOS:-$root/repo}"
root_build="${ENV_BUILD__ROOT_BUILD:-$root/rpmbuild}"
root_rpms="${ENV_BUILD__ROOT_RPMS:-$root_build/RPMS/noarch}"
# Cloud upload config
cloud_upload_ssh_user="${ENV_BUILD__CLOUD_UPLOAD_SSH_USER:-webmin.dev}"
cloud_upload_ssh_host="${ENV_BUILD__CLOUD_UPLOAD_SSH_HOST:-webmin.dev}"
cloud_upload_ssh_dir="${ENV_BUILD__CLOUD_UPLOAD_SSH_DIR:-~/domains/builds.webmin.dev/public_html}"
cloud_upload_gpg_passphrase="${WEBMIN_DEV__GPG_PH}"
# Define verbosity level
verbosity_level=' >/dev/null 2>&1 </dev/null'
verbosity_level_to_file='2> /dev/null'
verbosity_level_with_input=' >/dev/null 2>&1'
if [[ "'$*'" == *"--debug"* ]]; then
unset verbosity_level verbosity_level_to_file verbosity_level_with_input
fi

View File

@@ -1,30 +0,0 @@
name: "webmin.dev: Deploy Webmin package"
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-22.04
if: contains(github.event.head_commit.message, '[build]')
steps:
- uses: actions/checkout@v3
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: git tar gzip openssl curl openssh-client rpm perl libjson-pp-perl libdigest-sha-perl liblist-moreutils-perl libencode-detect-perl
version: 1.0
- uses: szenius/set-timezone@v1.2
with:
timezoneLinux: "Europe/Nicosia"
- name: Build and upload packages
env:
WEBMIN_DEV__SSH_PRV_KEY: ${{ secrets.WEBMIN_DEV__SSH_PRV_KEY }}
WEBMIN_DEV__SSH_PUB_KEY: ${{ secrets.WEBMIN_DEV__SSH_PUB_KEY }}
WEBMIN_DEV__GPG_PH: ${{ secrets.WEBMIN_DEV__GPG_PH }}
ENV_BUILD__CLOUD_UPLOAD_SSH_HOST: ${{ secrets.WEBMIN_DEV__IP_ADDR }}
working-directory: ./.github/build
run: |-
./deb.sh webmin --devel
./rpm.sh webmin --devel

24
.gitignore vendored
View File

@@ -1,24 +0,0 @@
# thumbnails
Thumbs.db
.xvpics
# python byte-compiled
*.py[cod]
# temp files
*~
*.bak
test
*.tmp
*.site
core
# build files
.builds
.build
# makedist.pl
tarballs/
minimal/
.DS_Store
.vscode/settings.json

View File

@@ -1,584 +0,0 @@
## Changelog
#### 2.111 (April 16, 2024)
* Fix EOL detection for unreleased Linux distributions
#### 2.110 (April 15, 2024)
* Add an API to check if the system is running or approaching its end of life (EOL)
* Add support for `systemd-timesyncd` and `chronyd` to the System Time module
* Add Ubuntu 24.04 support
* Add Squid 6 support
* Add latest Devuan Linux support
* Add an option to request Let's Encrypt certificates using `certbot` in standalone mode [forum.virtualmin.com/t/123696](http://forum.virtualmin.com/t/webmin-ssl-certificate-with-lets-encrypt-directly-obtain-certificate-without-requiring-apache-or-nginx/123696/)
* Add IMAP and SMTP monitors in the System and Server Status module
* Fix TLS connection to SMTP servers not working in some cases
* Fix ProFTPd module to use actual UI library
* Fix to using the `qrencode` command to generate QR codes locally instead of the remote Google Chart API
* Fix a number of various other issues
#### 2.105 (November 09, 2023)
* Fix param to read only headers [sourceforge.net/usermin-bugs#501](https://sourceforge.net/p/webadmin/usermin-bugs/501/)
* Fix not to set `reuse` flag on initial Let's Encrypt request
* Fix to correctly escape mail file names upon deletion
* Fix index field in cache file in BIND DNS module
#### 2.104 (October 16, 2023)
* Add support for numbered and bulleted lists in email HTML editor
* Add ability to display active file locks in `Webmin Configuration ⇾ File Locking` page
* Fix hostname detection on `systemd` systems to avoid excessive logging [#2020](https://github.com/webmin/webmin/issues/2020)
* Fix Webmin version display [#2023](https://github.com/webmin/webmin/issues/2023)
* Fix to check if UI library is loaded before using it [#2021](https://github.com/webmin/webmin/issues/2021)
* Fix the absent init script for legacy systems after the initial installation
* Update the Authentic theme to the latest version with various fixes and improvements
#### 2.103 (October 08, 2023)
* Add support for hostname detection using `hostnamectl` command
* Add support for other ACME services
* Add ability to hide dotfiles in File Manager [#1578](https://github.com/webmin/authentic-theme/issues/1578)
* Add `xz`, `zstd` and plain `tar` support when creating archives in File Manager [#2009](https://github.com/webmin/webmin/issues/2009)
* Add support for English (United States) (military time) locale
* Fix to correctly switch key hash type with ACME services
* Fix bug when `backend` wasn't saved correctly in Fail2Ban module [#1992](https://github.com/webmin/webmin/issues/1992)
* Fix large files download in Upload and Download module
* Fix Google Authentication on RHEL systems derivatives
* Update the Authentic theme to the latest version with various fixes and improvements
#### 2.102 (August 23, 2023)
* Add support for Amazon Linux 2023
* Fix a bug in Network Configuration module when parsing network size [sourceforge.net/discussion#55377]( https://sourceforge.net/p/webadmin/discussion/55377/thread/78e5aa05f3)
* Fix Netplan related bugs in Network Configuration module
* Fix Terminal focus bug
* Fix to correctly compare Webmin semantic versions
* Fix to suppress output from `monitor.pl` command [#1984](https://github.com/webmin/webmin/issues/1984)
#### 2.101 (August 5, 2023)
* Add support for reading gzipped email messages
* Add `error_stderr` API
* Fix to show correct locale for sudo-capable users [webmin/authentic-theme#1663](https://github.com/webmin/authentic-theme/issues/1663)
* Fix new signing key import on Debian and derivatives
* Fix to check if password hash format is valid for `yescrypt` and `SHA512`
* Fix various XSS related issues
* Fix updating Webmin from repository if a package is available
#### 2.100 (July 22, 2023)
* Add support for showing defaults for options in PHP Configuration module
* Add significant improvements to email display, reply and compose
* Add support for WebGL in the Terminal module
* Add screen reader support in Terminal module
* Add full support for NetworkManager in Network Configuration module
* Fix correctly displaying bridges with Netplan in Network Configuration module
* Fix displaying active network interfaces in Network Configuration module
* Fix to consider current drive temperature in `smartctl` output #1881
* Fix to properly stop Usermin https://github.com/webmin/usermin/issues/89
* Fix no to add hashed password to the old password list if it's already in there https://github.com/virtualmin/virtualmin-pro/issues/35
* Fix displaying placeholder on input to reflect strftime-style format
* Update the Authentic theme to the latest version adding new vertical column layout
#### 2.021 (March 19, 2023)
* Add ability to set locale in Webmin Users module for consistency
* Fix an error when `make_date` is called on undefined value #1860
* Fix clearing packages caches before checking for updates in status collection #1863
* Update the Authentic theme to the latest version
#### 2.020 (March 08, 2023)
* Add full locale support
* Add slave zone file format option in BIND DNS module
* Add support for editing ACLs in File Manager
* Add support to configure SSL connection for MySQL/MariaDB module
* Add support for compressed backups in PostgreSQL module
* Add support for displaying inodes too in Disk Usage in the Dashboard
* Add better support for CloudLinux
* Fix to always default to RSA key type in Let's Encrypt requests
* Fix setup repository script for Oracle
* Fix shutdown timeout to avoid termination of running processes
* Fix support for SpamAssassin 4
* Fix to use system default hashing format for `htpasswd` file
* Fix FastRPC issues
* Update the Authentic theme to the latest version, with sped-up Dashboard performance
#### 2.013 (January 19, 2023)
* Fix Authentic theme issue with error handling
* Fix Framed theme to respect selected mode in left menu
* Fix search bar in left menu in Framed theme
#### 2.012 (January 18, 2023)
* Fix to set the correct algorithm when setting up RNDC #1817
* Fix the loop bug when sourcing other network configs in Debian
* Fix to include all Debian network config files in backups
* Fix to stop doing expensive package re-fetch on upgrades
* Add support for defining hostname for WebSocket connection
* Add Debian 12 support
#### 2.011 (January 10, 2023)
* Add ability to set shell character encoding and set `TERM` environmental variable in the new Terminal module
* Add support for editing network interfaces in include files for Debian systems
* Add various improvements to the old good Framed Theme
* Fix to change Gray Framed Theme name to Framed Theme
* Fix to verify and close WebSocket session, if parent session was closed
* Fix to remove `RC4` from the list of strong ciphers
* Fix don't fail LDAP user or group deletion, if they have already been deleted
* Fix error handling in MySQL/MariaDB Database server module when executing SQL commands
* Fix adding an extra server attachment field and other bugs in Read User Mail module
* Fix the link to release notes for Rocky Linux
* Fix issues with freezing and thawing dynamic reverse zones in BIND DNS Server module
* Fix bugs for modules granting anonymous access
* Fix `mailbox_idle_check_interval` option related bugs in Dovecot module [sourceforge.net#5602](https://sourceforge.net/p/webadmin/bugs/5602/)
* Fix to use correct extension for package file when upgrading Webmin [webmin/authentic-theme#1633](https://github.com/webmin/authentic-theme/issues/1633)
* Update the Authentic theme to the latest version
#### 2.010 (November 27, 2022)
* Add a new Terminal module (interactive shell)
* Add a new `setup-repos.sh` script to setup Webmin repos
* Add to replace old Gray Theme with Virtualmin Framed Theme
* Add _systemd_ improvements
* Add proper support for openSUSE Leap and Tumbleweed
* Add Linux Lite support
* Fix connecting to external IPv6 LDAP server
* Fix self-signed certificate generation
* Fix setting hostname using `hostnamectl` command on _systemd_ systems
* Fix to exclude sensors with unknown temperatures
* Fix for FreeBSD to support Let's Encrypt certificates requests
* Fix to support attachment filenames with slash in them
#### 2.001 (September 18, 2022)
* Fix missing origins and action for direct rules in FirewallD module
* Removed the need for a full restart when updating SSH keys
* Improved the Javascript for redirects to HTTPS
#### 2.000 (August 21, 2022)
* Add to enforce HTTP Strict Transport Security (HSTS) policy in SSL enabled mode
* Add better `http` to `https` redirects when SSL is enabled
* Add support for installing multiple versions of Webmin on `systemd` systems
* Add support for AMD CPU thermisters #1714
* Add better support for Webmin minor (release) versions upgrades
* Add Webmin and Usermin configuration modules display minor (release) version
* Add Mint Linux support
* Add latest Authentic 20.00 [theme update](https://github.com/webmin/authentic-theme/releases/tag/20.00) with number of bug fixes
* Fix to also restart dependent services (i.e. `fail2ban`) upon `firewalld` restart
* Fix to preserve service state for Webmin and Usermin upon package upgrades (i.e. don't start stopped)
* Fix Bind module config incorrectly updated upon Webmin upgrades on CentOS 7
#### 1.999 (August 4, 2022)
* Fix to allow IPv6 addresses for slaves in BIND module
* Fix to send `HUP` signal on reload with `systemd`
* Fix icons in Servers Index module for newer distros (Alma and Rocky)
* Fix to remove depricated option `UsePrivilegeSeparation` with OpenSSH 7.5+
* Fix Oracle Linux support
* Fix Ubuntu release notes links
* Add Webmin release note message
* Add latest Authentic [theme update](https://github.com/webmin/authentic-theme/releases/tag/19.99) with number of bug fixes
#### 1.998 (July 25, 2022)
* Fix Apache, BIND, MySQL, ProFTPd and other modules configs on newest distros for new installs
* Fix to use Cron default path when run from UI
* Fix post uninstall cleanups
* Fix version detection bug for Log File Rotation module
* Add improvements to Partitions on Local Disks module
* Add better support for CentOS Stream Linux for new installs
* Add improvements for searching and naming global PHP configs files
* Add support for unix extensions option for Samba module https://github.com/webmin/webmin/issues/1695
* Add latest Authentic [theme update](https://github.com/webmin/authentic-theme/releases/tag/19.98) with various bug fixes and small improvements
#### 1.997 (July 12, 2022)
* Add support for mirror and RAID volumes in LVM module
* Add latest Authentic [theme update](https://github.com/webmin/authentic-theme/releases/tag/19.97) with nice new features in File Manager and other fixes
* Fix more issues with restart when Webmin is upgraded from UI
#### 1.996 (July 4, 2022)
* Fix issues with `systemd` restarting Webmin on upgrade found in 1.995
#### 1.995 (June 23, 2022)
* Add improvements to stability for `systemd` systems
* Add native support to default to system default hashing format
* Add support to `yescrypt` password hashing scheme
* Add new _System Logs Viewer_ (logviewer) module
* Add new `webmin server` sub-command
* Add to set environmental variables in Filesystem Backup module
* Fix upload tracker issues with large uploads
* Fix NVMe drives status support
* Fix AlmaLinux support
* Fix BIND config for FreeBSD 12 on initial setup
#### Version 1.994 (May 22, 2022)
This release fixes a security issue in versions 1.991 and below. All systems with less-privileged Webmin users are recommended to upgrade as soon as possible.
#### Version 1.991 (April 18, 2022)
This is mainly a bugfix release for issues found since 1.990.
#### Version 1.990 (March 3, 2022)
This release contains a critical security fix, an updated theme, and a bunch of other small features and improvements. We recommend that all systems with untrusted Webmin users upgrade immediately!
#### Version 1.983 (December 26, 2021)
This release is mostly bugfixes for issues found in 1.983.
#### Version 1.983 (December 4, 2021)
These releases are mostly bugfixes for issues found in 1.982.
#### Version 1.982 (November 26, 2021)
This release includes the latest Authentic theme, support for archive extraction and folder uploads in the File Manager module, automatic formatting of the Apache config, translation updates, and many more small features and bugfixes.
#### Version 1.981 (August 28, 2021)
This is just a bugfix for issues found in version 1.980.
#### Version 1.980 (August 22, 2021)
This release includes numerous small bugfixes, a theme update, translation fixes, support for Rocky and Alma Linuxes, and a new API for changing password.
#### Version 1.979 (June 15, 2021)
This release fixes several bugs found in 1.974, updates the Authentic theme, adds 2FA support in Usermin, and fixes a security bug in the Network Configuration module.
#### Version 1.974 (May 1, 2021)
Mostly a bugfix release, but it also contains a security for users who installed using the `setup.pl` script (which is not common).
#### Version 1.972 (March 1, 2021)
This is mainly a bugfix release for issues with Let's Encrypt and a few other modules.
#### Version 1.970 (January 6, 2021)
This release updates the theme, fixes a Windows security issue, updates the CA cert for Let's Encrypt, and improves translations.
#### Version 1.962 (November 11, 2020)
These are bugfix releases for 2-factor signin and other small issues.
#### Version 1.960 (October 19, 2020)
This release improves MySQL user management, updates the theme UI, fixes parsing of complex Netplan configs, removes the dependency on apt-show-versions and much much more.
#### Version 1.953 (July 5, 2020)
This release adds automatic translations for all languages in UTF-8, updates the Authentic theme, adds support for Postfix SNI certs and Chrony, caching for LDAP lookups, and a huge number of bugfixes and minor features.
#### Version 1.941 (January 16, 2020)
This release updates the built-in Let's Encrypt client, adds support for creating "safe-mode" Webmin users, support for CAA records in the BIND module, and the ability to search Postfix maps. It also updates the Authentic theme to the latest version, which includes numerous improvements to the File Manager and overall UI.
#### Version 1.930 (August 18, 2019)
These updates fix a [security vulnerability](http://webmin.com/security.html) and should be installed IMMEDIATELY by all users. Although it is not exploitable in a Webmin install with the default configuration, upgrading is strongly recommended.
#### Version 1.920 (July 04, 2019)
This update includes the latest theme version, translation updates, the ability to disable hosts file entries, easier monitoring of bootup actions, and a bunch of bugfixes.
#### Version 1.910 (May 09, 2019)
This release includes theme and translation updates, a page for editing package repositories, cron and status module improvements, and a bunch of other bugfixes and small improvements.
#### Version 1.900 (November 19, 2018)
This version includes wildcard Let's Encrypt SSL cert support, theme and translation updates, support for announcements to Webmin users, and a bunch of other bugfixes and small improvements.
#### Version 1.890 (July 19, 2018)
This version includes Ubuntu 18 network config support, translation updates, multiple theme and file manager updates, BIND freeze/thaw support, support for more Linux distributuions, and a bunch of other bugfixes and small improvements.
#### Version 1.880 (March 16, 2018)
This version includes German, Catalan and Bulgarian translation updates, a new version of the Authentic theme, support for directly editing the MySQL and PostgreSQL config files, Let's Encrypt bugfixes, more control over system status email notifications, and more.
#### Version 1.870 (December 08, 2018)
This release includes many translation updates, fixes for Let's Encrypt support, UI cleanups, and most importantly a new major version of the Authentic theme.
#### Version 1.860 (October 10, 2017)
This release includes Let's Encrypt DNS fixes, Majordomo module improvements, XSS security bugfixes, translation updates, a new version of the theme, and more.
#### Version 1.850 (June 28, 2017)
This release includes Let's Encrypt fixes, Majordomo module improvements, FirewallD forwarding support, translation updates, an update to the Authentic theme, and a bunch of other bugfixes.
#### Version 1.840 (May 08, 2017)
This major release includes a large theme update, XSS security fixes, per-domain SSL cert support, thin-provisioned LVM support, Let's Encrypt improvements, translation updates, and the usual gang of bugfixes. Also available is Usermin 1.710, which contains many of the same updates.
#### Version 1.830 (December 29, 2016)
This is mainly a bugfix release, but also contains some translation updates, the latest version of the Authentic theme, fixes related to Let's Encrypt and LDAP client support, and SElinux and file attribute support in the file manager.
#### Version 1.820 (October 3, 2016)
This updated includes a bunch of bugfixes (particularly in the BIND module), translation updates, the ability to download a MySQL backup, Let's Encrypt improvements, and more.
#### Version 1.810 (August 8, 2016)
This updated includes the latest Authentic theme, a new IPv6 Firewall module for Linux, Webmin actions logging improvements, Let's Encrypt API fixes and a bunch of other small updates and bugfixes.
#### Version 1.800
* German translation updates, thanks to Raymond Vetter.
* Catalan translation updates from Jaume Badiella.
* Bulgarian translations from Grigor Gatchev.
* Added Support for Synology NAS and opkg/ipkg Community Package Manager, Kay Marquardt
* Added Support for configuring spam filtering when amvisd is used, Kay Marquardt
#### Version 1.790
* Added a recent logins section to the System Information page.
* Major rework of majordomo module, Kay Marquardt
#### Version 1.760
* For new installs, switched the location of data files in many modules to /var/webmin instead of /etc/webmin.
#### Version 1.750
* Norwegian updates, thanks to Stein-Aksel Basma.
* Catalan translation updates from Jaume Badiella.
* More German translation updates, thanks to Raymond Vetter.
* Fixed an XSS bug that allowed xmlrpc.cgi to be abused by a malicious link.
#### Version 1.740
* Norwegian updates, thanks to Stein-Aksel Basma.
* Catalan translation updates from Jaume Badiella.
* More German translation updates, thanks to Raymond Vetter.
#### Version 1.730
* More German translation updates, thanks to Raymond Vetter.
* Norwegian updates, thanks to Stein-Aksel Basma.
* The awesome new Authentic Theme by @iliajie is now included in the Webmin package.
* Catalan translation updates from Jaume Badiella.
#### Version 1.720
* Deprecated the old blue-theme in favor of the new gray-theme.
* Catalan translation updates from Jaume Badiella.
* More German translation updates, thanks to Raymond Vetter.
#### Version 1.710
* SSL v2 and v3 are now disabled by default at Webmin install time, to block the POODLE attack. They can be re-enabled on the SSL Encryption page of the Webmin Configuration module.
#### Version 1.700
* More German translation updates, thanks to Raymond Vetter.
* Catalan updates, thanks to Jaume Badiella.
* Added additional protected against Shellshock exploits made via the Webmin webserver.
#### Version 1.690
* More German translation updates, thanks to Raymond Vetter.
* Support for RHEL 7, CentOS 7 and other derivatives in multiple modules.
#### Version 1.670
* More German translation updates, thanks to Raymond Vetter.
* Norwegian updates, thanks to Stein-Aksel Basma.
* Catalan updates, thanks to Jaume Badiella.
* Security fixes for XSS attacks in `user_chooser.cgi` and other scripts.
#### Version 1.660
* More German translation updates, thanks to Raymond Vetter.
* Norwegian updates, thanks to Stein-Aksel Basma.
* Catalan updates, thanks to Jaume Badiella.
* IPv6 access control now match an address exactly, unless a network size is entered.
* FTP uploads and downloads to IPv6-only servers now work properly, thanks to support for the EPSV protocol command.
* Added a Bahasa Malaysia translation, thanks to Nawawi Jamili, Nizam Adnan and Weldan Jamili.
* Added filtering for lists in the user, group and file chooser popups, thanks to a patch from Nawawi Jamili.
#### Version 1.650
* More German translation updates, thanks to Raymond Vetter.
* Norwegian updates, thanks to Stein-Aksel Basma.
#### Version 1.620
* More German translation updates, thanks to Raymond Vetter.
* Polish translation updates from Piotr Kozica.
* Norwegian updates, thanks to Stein-Aksel Basma.
* Improved FreeBSD 8 and 9 support across multiple modules.
* Hungarian translation updates from Balázs Zoltán.
#### Version 1.610
* Norwegian updates, thanks to Stein-Aksel Basma.
* Catalan updates, thanks to Jaume Badiella.
* Yet more German translation updates, thanks to Raymond Vetter.
* Polish translation updates from Piotr Kozica.
#### Version 1.600
* Even more German translation updates, thanks to Raymond Vetter.
* Catalan updates, thanks to Jaume Badiella.
#### Version 1.590
* Even more German translation updates, thanks to Raymond Vetter.
* Norwegian updates, thanks to Stein-Aksel Basma.
* Dutch translation updates, thanks to Gandyman.
* Switch order of command and mode in debug logs to make it clear that "mode=X" is part of the log, not part of the command.
* Added the new Gray Framed Theme, and made it the default for new installs.
#### Version 1.580
* Even more German translation updates, thanks to Raymond Vetter.
* More Dutch updates, thanks to Gandyman.
* Catalan updates, thanks to Jaume Badiella.
* Norwegian updates, thanks to Stein-Aksel Basma.
* All languages now have UTF-8 encoded variants, as well as their native character sets.
* Added support for Ubuntu 12.04.
#### Version 1.570
* Even more German translation updates, thanks to Raymond Vetter.
* Added UTF-8 encodings for languages using the iso-8859-2, like Czech and Polish.
* Catalan updates, thanks to Jaume Badiella.
* Norwegian translation updates, thanks to Stein-Aksel Basma.
* The MySQL, PostgreSQL, Filesystem Backup and Backup Configuration Files modules now all support the use of Webmin variable substitutions in backup paths (like $HOSTNAME) via a new Module Config option.
#### Version 1.560
* More German translation updates, thanks to Raymond Vetter.
* More French translation updates, thanks to ButterflyOfFire.
#### Version 1.550
* Catalan updates, thanks to Jaume Badiella.
* Italian translation updates, thanks to Andrea Oliveri.
* Major German translation updates, thanks to Raymond Vetter.
#### Version 1.530
* Speed up the loading of language files by pre-caching them in memory when Webmin is started, and not performing sub-string substitutions in most modules.
* Added support for Pardus Linux, thanks to Kaan Ozdincer.
* Major Dutch updates, thanks to Gandyman.
* Majoe French translation update, thanks to ButterflyOfFire.
* Allow per-language language overrides to be defined, in custom-lang.$code files.
* Updated numerous modules to improve support for Debian 6 and Ubuntu 10.10.
* If a browser asks for gzip compression, Webmin can now return compressed content either generated dynamically or from a pre-compressed .gz file in the same directory. Dynamic compression depends on the Compress::Zlib perl module.
* Added support for Amazon Linux.
#### Version 1.520
* Catalan translation updates by Jaume Badiella.
#### Version 1.510
* Dutch translation updates, thanks to Gandyman.
* Polish translation updates, thanks to Dariusz Dêbowski.
#### Version 1.500
* Czech translation updates, thanks to Karel Hudan.
* The Webmin RPM now preserves the /etc/webmin directory when un-installed and then re-installed.
* Added a robots.txt file to block indexing of Webmin by search engines.
* The Webmin search box can now be disabled in the Webmin Users module, under "Permissions for all modules".
* Brazillian Portuguese translation updates for several modules, thanks to Djavan Fagundes.
#### Version 1.480
* Catalan translation updates by Jaume Badiella.
* Dutch translation updates, thanks to Gandyman.
* Beginnings of a Basque translation, thanks to Mireia Lezea.
#### Version 1.470
* Catalan translation updates by Jaume Badiella.
* Added an UTF-8 encoding of the Russian translation, thanks to shavlukov@gmail.com.
* French translation updates by ButterflyOfFire.
* Dutch translation updates by Gandyman.
* Dramatically improved Webmin's search function, to include links to pages that help or UI text comes from. Also changed the layout of results to a more Webmin-ish style.
#### Version 1.450
* Added a language option for UK english, and converted words in the default Webmin language to US english.
* Major Dutch translation updates, thanks to Gandyman.
* Catalan translation updates by Jaume Badiella.
* Converted all core modules to use the new WebminCore perl module instead of `web-lib.pl`. This significantly improves memory use and load time in code that uses functions from multiple modules, asssuming they have all been converted.
#### Version 1.440
* Russian translation updates, thanks to Anton Statutov.
* Webmin's serialization functions can now handle objects, which allows them to be passed as parameters to remote function calls. Both caller and recipient must have the object's class installed though.
* Converted commands in the core `web-lib-funcs.pl` API file to POD format, and added more details about each function.
#### Version 1.430
* A large Croatian translation update, thanks to Domagoj Bikic.
* When a user whose password is close to expiry or has already expired logs in, a warning will be displayed on Webmin's first page.
* Many Japanese translation updates, thanks to Kazuya Masuda.
#### Version 1.420
* Many Greek translation updates, thanks to Vagelis Koutsomitros.
* Catalan translation updates by Jaume Badiella.
* Many Dutch translation contributions by Gandyman.
#### Version 1.410
* Many Korean updates, thanks to JoungKyun Kim.
* More Dutch updates, thanks to Gandyman.
* Added a debugging log file, which records all files read and written, commands run and more. This can be enabled in the Webmin Configuration module.
#### Version 1.400
* Big Czech translation updates, thanks to Petr Vanek and the Czech translation team.
* All popups in Webmin are now XSS-safe, and thus do not need protection from unknown referers which prevented them from working in some browsers.
* All Webmin session IDs are now stored MD5 hashed, to prevent sessions from being captured if the sessiondb DBM is somehow read by an attacker.
* Many Dutch updates, thanks to Gandyman.
* MD5 encryption for Webmin and Unix passwords can be used on systems that have either the MD5 or Digest::MD5 perl module, or support it in the crypt() function.
#### Version 1.390
* Links from unknown referers are now blocked by default, to prevent XSS attacks. This may break browsers that don't supply a Referer: HTTP header.
#### Version 1.380
* Added a search box to the left frame of the blue theme, for finding modules, config options, help pages and text.
* All images, CSS and other static content served by Webmin has an HTTP Expires for 1 week in the future, to improve cachability.
* Lock files are automatically removed when the process creating them exits.
* NetBSD 4.0 support.
* Italian and Catalan translations contributed for many modules, thanks to Giovanni and Jaume Badiella.
* Changed the error message that appears when Webmin detects a link from another web page, and removed the button to allow the link (which was unreliable anyway).
#### Version 1.370
* Hid the Jabber and Security Sentries modules by default, as the underlying software is no longer supported.
* On Linux systems, sped up the function for finding processes so that it no longer has to launch 'ps' - instead, it reads /proc directly.
* When `read_file_lines` is used to read a file, the Unix or Windows newlines will be preserved when it is written out.
#### Version 1.340
* Added Redhat Enterprise release 5 support.
* Requests to the /unauthenticated URL can never execute CGI programs, to provide an extra layer of security against URL escaping attacks.
* Fixed XSS bugs in `pam_login.cgi`.
#### Version 1.330
* Added more `ui-lib.pl` functions for hidden page sections.
* Fixed another XSS bug in chooser.cgi.
* The Webmin function to get the system's hostname now reads a file instead of calling the hostname comment, which is faster.
* Added an ACL option to the file chooser for additional directories to allow access to.
* Changed the way sizes are displayed, to use a format like 1.32 GB or 8 kB.
* Removed letter images (used by the old theme), and forced the standard header function to always use text titles.
* Added support for Slam64 Linux.
#### Version 1.320
* Fixed XSS bugs in chooser.cgi.
* If the operating system is upgraded after Webmin is installed, a button is displayed on the main page to update Webmin's view of the current OS.
* Improved the tabs API to add an option to put a box around the visible tab, and whitespace around tabs.
* If listening on all specified IP addresses fails, Webmin will fall back to accepting connections on any address.
* All Module Config pages are now generating using new `ui-lib.pl` code, for easier theming.
* Added a global access control option to set the Unix user the file browser lists directories as.
#### Version 1.310
* Module configuration files can now be named based on the real operating system types, such as config-Ubuntu-Linux, which would be used in preference to config-debian-linux.
* When a large file is uploaded, it is no longer read into memory by `miniserv.pl`.
* Update the code that fetches mirror sites from Sourceforge, to handle their new website design.
* Changed the default theme for all installs to the new framed blue theme.
* Updated all rows of links (like select all, invert selection, add something) above tables to use a separator between links.
* Added caching for sudo capable user checks, to avoid excessive slow calls to sudo.
* Fixed a memory leak when running under ActiveState Perl on Windows.
#### Version 1.300
* Fixed the rare bug about renaming the .webmintmp file.
#### Version 1.290
* SELinux security contexts are preserved on files safely modified by Webmin's write-and-rename code.
* Added xmlrpc.cgi program, which provides an XML-RPC interface to all Webmin module functions.
* Tested and improved support for Fedora 5.
#### Version 1.280
* Fixed security holes that allow remote read access to any file on the server for which the path is known.
#### Version 1.270
* Updated almost all modules that use tables to use the new `ui_columns` functions. This allows themes to do highlighting when a row is moved over or selected.
* Added a new 'Simple Blue' theme, which uses fewer images and does table row highlighting.
* Changed the way that Webmin log diff files are stored, so that they are categorized by action and not all in one huge directory.
#### Version 1.260
* Proxy settings made in the Webmin Configuration module are passed on to programs Webmin calls via the `http_proxy` and `ftp_proxy` environment variables.
* Added automatically created UTF-8 translations for simplified and traditional Chinese.
#### Version 1.240
* Fixed a possible security hole caused by a bug in Perl.
#### Version 1.230
* Replaced all calls to the crypt() function with new code that will use the Crypt::UnixCrypt Perl modules on systems for with crypt() is broken.
#### Version 1.220
* Added basic support for running Webmin on Windows system with ActiveState Perl installed. The new `setup.pl` install script must be used, as the setup.sh shell script cannot run on Windows.
* Fixed a bug that could allow a remote attack if the option to use full PAM conversations is enabled.
* Improved the Webmin RPM to not lose the /etc/webmin directory when upgrading from an RPM by another vendor (like Mandrake or DAG).
#### Version 1.210
* Added a new Global ACL control option to limit a user to read-only mode. This does not yet support all modules, but in those that are supported any changes the user makes will simply not take effect.
* Restarting of Webmin is now much faster in some modules that do not need a full configuration reload, due to the addition of a function that justs tells `miniserv.pl` to re-read its config file.
#### Version 1.200
* On Solaris systems that support RBAC, available modules and access rights can now be derived from RBAC for selected users. This can be enabled on a per-user or per-module basic in the Webmin Users module.
#### Version 1.180
* All subheadings have been reduced in size when using the default MSC theme.
* All modules now use a new API for writing to configuration files, which ensures that the file does not get written to or truncated if the system is out of disk space.
#### Version 1.170
* When installing a module from the command line, by it will be granted to the same users who receive new modules when Webmin is upgraded. By default, this is root and admin.
* Added basic support for multiple root directories, so that Webmin modules can be separated into core and third-party on the filesystem.
* When installing or upgrading Webmin, password timeouts are now enabled by default. This protects against brute-force password guessing attacks.
#### Version 1.160
* Added support for Solaris 10.
* Included several additional translations for various languages and modules.
* Added support for config- files that allow a range of OS version numbers, and used this to reduce the number of standard config files.
#### Version 1.150
* Updated the setup.sh script to use MD5 password encryption by default, on systems where Perl supports it.
* Fixed a security hole in the `maketemp.pl` script, used to create the /tmp/.webmin directory at install time. If an un-trusted user creates this directory before Webmin is installed, he could create in it a symbolic link pointing to a critical file on the system, which would be overwritten when Webmin writes to the link filename (CVE bug CAN-2004-0559).
* When PAM is used for Unix authentication, expired passwords are now detected and the user is prompted to select a new password (if this feature is enabled on the Webmin Configuration module).
* Make all functions in `ui-lib.pl` themable, allowing themes to have more detailed control over modules that make use of this library.
* Updated all modules to call `ui_print_header` instead of calling header and printing `<hr>`, so that themes can avoid the `<hr>`. Also updated the MSC theme to do this.
#### Version 1.140
* Fixed a security hole that allowed any user to view the configuration of any module, even those that they should not have access to.
* Fixed a security hole that could allow an attacker to lock valid users by sending a bogus username or password.

30
LICENCE
View File

@@ -1,30 +0,0 @@
BSD 3-Clause License
Copyright (c) Jamie Cameron
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -1,30 +0,0 @@
Japanese translation is released under following license.
---------------------------------------------------------
Copyright (c) Kazuya Sakakihara
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the developer nor the names of contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE DEVELOPER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
---------------------------------------------------------

View File

@@ -1,225 +0,0 @@
#!/usr/local/bin/perl -w
use strict;
# Detect the operating system and version.
package OsChooser;
# Package scoped for mapping short names to long "proper" names
my %NAMES_TO_REAL;
# main
sub main {
if ($#ARGV < 1) { die "Usage: $0 os_list.txt outfile [0|1|2|3] [issue]\n"; }
my ($oslist, $out, $auto, $issue) = @ARGV;
return write_file($out, oschooser($oslist, $auto, $issue));
}
main() unless caller(); # make it testable and usable as a library
$| = 1;
sub oschooser {
my ($oslist, $auto, $issue) = @_;
my $ver_ref;
my ($list_ref, $names_ref) = parse_patterns($oslist);
if ($auto && ($ver_ref = auto_detect($oslist, $issue, $list_ref, $names_ref))) {
return ($ver_ref->[2], $ver_ref->[3], $ver_ref->[0], $ver_ref->[1]);
}
elsif (!$auto || ($auto == 3 && have_tty()) || $auto == 2) {
$ver_ref = ask_user($names_ref, $list_ref);
return ($ver_ref->[2], $ver_ref->[3], $ver_ref->[0], $ver_ref->[1]);
}
else {
print "Failed to detect operating system\n";
exit 1;
}
}
# Return a reference to a pre-parsed list array, and a ref to a names array
sub parse_patterns {
my ($oslist) = @_;
my @list;
my @names;
my %donename;
# Parse the patterns file
open(OS, "<$oslist") || die "failed to open $oslist : $!";
while(<OS>) {
chop;
if (/^([^\t]+)\t+([^\t]+)\t+([^\t]+)\t+([^\t]+)\t*(.*)$/) {
push(@list, [ $1, $2, $3, $4, $5 ]);
push(@names, $1) if (!$donename{$1}++);
$NAMES_TO_REAL{$1} ||= $3;
}
}
close(OS);
return (\@list, \@names);
}
# auto_detect($oslist, $issue)
# Returns detected OS details in a hash ref
sub auto_detect {
my ($oslist, $issue, $list_ref) = @_;
my $ver_ref;
my @list = @$list_ref;
# Try to guess the OS name and version
my $etc_issue;
my $uname = `uname -a`;
if ($issue) {
$etc_issue = `cat $issue`;
$uname = $etc_issue; # Strangely, I think this will work fine.
}
elsif (-r "/etc/.issue") {
$etc_issue = `cat /etc/.issue`;
}
elsif (-r "/etc/issue") {
$etc_issue = `cat /etc/issue`;
}
foreach my $o_ref (@list) {
if ($issue && $o_ref->[4]) {
$o_ref->[4] =~ s#cat [/a-zA-Z\-\s]*\s2#cat $issue 2#g;
} # Testable, but this regex substitution is dumb.XXX
local $^W = 0; # Disable warnings for evals, which may have undefined vars
if ($o_ref->[4] && eval "$o_ref->[4]") {
# Got a match! Resolve the versions
print "$o_ref->[4]\n";
$ver_ref = $o_ref;
if ($ver_ref->[1] =~ /\$/) {
$ver_ref->[1] = eval "($o_ref->[4]); $ver_ref->[1]";
}
if ($ver_ref->[3] =~ /\$/) {
$ver_ref->[3] = eval "($o_ref->[4]); $ver_ref->[3]";
}
last;
}
if ($@) {
print STDERR "Error parsing $o_ref->[4]\n";
}
}
return $ver_ref;
}
sub ask_user {
my ($names_ref, $list_ref) = @_;
my @names = @$names_ref;
my @list = @$list_ref;
my $vnum;
my $osnum;
# ask for the operating system name ourselves
my $dashes = "-" x 75;
print <<EOF;
For Webmin to work properly, it needs to know which operating system
type and version you are running. Please select your system type by
entering the number next to it from the list below
$dashes
EOF
{
my $i;
for($i=0; $i<@names; $i++) {
printf " %2d) %-20.20s ", $i+1, $names[$i];
print "\n" if ($i%3 == 2);
}
print "\n" if ($i%3);
}
print $dashes,"\n";
print "Operating system: ";
chop($osnum = <STDIN>);
if ($osnum !~ /^\d+$/) {
print "ERROR: You must enter the number next to your operating\n";
print "system, not its name or version number.\n\n";
exit 9;
}
if ($osnum < 1 || $osnum > @names) {
print "ERROR: $osnum is not a valid operating system number.\n\n";
exit 10;
}
print "\n";
# Ask for the operating system version
my $name = $names[$osnum-1];
print <<EOF;
Please enter the version of $name you are running
EOF
print "Version: ";
chop($vnum = <STDIN>);
if ($vnum !~ /^\S+$/) {
print "ERROR: An operating system number cannot contain\n\n";
print "spaces. It must be like 2.1 or ES4.0.\n";
exit 10;
}
print "\n";
return [ $name, $vnum,
$NAMES_TO_REAL{$name}, $vnum ];
}
# write_file($out, $os_type, $os_version, $real_os_type, $real_os_version)
# Write the name, version and real name and version to a file
sub write_file {
my ($out, $os_type, $os_version, $real_os_type, $real_os_version) = @_;
open(OUT, ">$out") or die "Failed to open $out for writing.";
print OUT "os_type='",$os_type,"'\n";
print OUT "os_version='",$os_version,"'\n";
print OUT "real_os_type='",$real_os_type,"'\n";
print OUT "real_os_version='",$real_os_version,"'\n";
return close(OUT);
}
sub have_tty
{
# Do we have a tty?
my $rv = system("tty >/dev/null 2>&1");
if ($?) {
return 0;
}
else {
return 1;
}
}
1;
__END__
=head1 OsChooser.pm
Attempt to detect operating system and version, or ask the user to select
from a list. Works from the command line, for usage from shell scripts,
or as a library for use within Perl scripts.
=head2 COMMAND LINE USE
OsChooser.pm os_list.txt outfile [auto] [issue]
Where "auto" can be the following values:
=over 4
=item 0
always ask user
=item 1
automatic, give up if fails
=item 2
automatic, ask user if fails
=item 3
automatic, ask user if fails and if a TTY
=back
=head2 SYNOPSIS
use OsChooser;
my ($os_type, $version, $real_os_type, $real_os_version) =
OsChooser->oschooser("os_list.txt", "outfile", $auto, [$issue]);
=cut

View File

@@ -1,53 +0,0 @@
## 内容
* [更新日志](https://github.com/webmin/webmin/blob/master/CHANGELOG.md)
* [关于](#关于)
* [安装](#安装)[<img src="https://github.com/webmin-devel/webmin/blob/master/media/download-23x14-stable.png?raw=true" title="稳定版">](http://webmin.com/download.html)[<img src="https://github.com/webmin-devel/webmin/blob/master/media/download-23x14-devel.png?raw=true" title="Development Versions">](http://webmin.com/devel.html)
* [文档](#文档)
* [致谢](#致谢)
* [许可](#许可)
## 关于
**Webmin** 是一个基于网页的类Unix服务器系统管理工具全球安装超过 _1,000,000_ 次(没错,事宝藏!)。有了它,运维快人一步!比如用户,磁盘配额,服务或者配置文件,比如更改,控制开源应用,再比如 BIND DNS Server管理 Apache HTTP Server PHP MySQL 还有[许多许多好东西](https://doxfer.webmin.com/Webmin/Introduction)。
[![Quick UI overview 2021](https://user-images.githubusercontent.com/4426533/114315375-61a1c480-9b07-11eb-9aaf-4aa949a39ab7.png)](https://www.youtube.com/watch?v=daYG6O4AsEw)
可通过安装可定制的模块来扩展可用性。 除此之外,还有另外两个扩展其功能的项目:
* [Virtualmin](https://www.virtualmin.com) 是一个强大的,灵活的,最受欢迎的,最全面的 Linux 和 BSD 系统网络托管控制面板,在全球拥有超过 _150,000次_ 安装。它有开源社区支持的版本以及功能更丰富的Premium版本
* [Usermin](https://github.com/webmin/usermin) 顾名思义,呈现和控制以用户为中心的功能子集,而不是管理员级别的任务。
Webmin 包括 _116_ 个[标准模块](https://doxfer.webmin.com/Webmin/Webmin_Modules),并且至少有同样多的第三方模块。
### 系统要求
Perl 5.10 或更高。
## 安装
Webmin 可以两种方法安装:
1. 下载一个预编译包可用于不同的发行版CentOS, Fedora, SuSE, Mandriva, Debian, Ubuntu, Solaris 和 [其他发行版](http://www.webmin.com/support.html))。[下载页面直达车](http://webmin.com/download.html);
<kbd>注:非常建议[在你的系统添加源](https://doxfer.webmin.com/Webmin/Installation),这样可以自动更新</kbd>
2. 下载并解压[源码](https://prdownloads.sourceforge.net/webadmin/webmin-1.996.tar.gz)然后运行[_setup.sh_](http://www.webmin.com/tgz.html) 脚本,无需任何选项,也就是说会直接安装到当前目录。或者使用命令行参数,例如目标目录。
<kbd>注:如果你正在安装 Webmin [到Windows](http://www.webmin.com/windows.html) 系统上,你必须运行 `perl setup.pl` 命令。Windows 版能否正常运行取决于许多程序,和可能不属于标准发行版的模块。你需要 _process.exe_ 命令, _sc.exe_ 命令,以及 _Win32::Daemon_ Perl 模块。</kbd>
## 文档
完整的 Webmin 还有它所有模块的详细配置都在[维基页面](https://doxfer.webmin.com/Webmin/Main_Page).
## 致谢
### 首席开发者
* [Jamie Cameron](http://www.webmin.com/about.html) [![](https://github.com/webmin-devel/webmin/blob/master/media/linkedin-15x15.png?raw=true)](https://www.linkedin.com/in/jamiecameron2)
### 贡献者
* [Joe Cooper](https://github.com/swelljoe)
* [Ilia Rostovtsev](https://github.com/iliajie)
* [Kay Marquardt](https://github.com/gnadelwartz)
* [Nawawi Jamili](https://github.com/nawawi) + [其他无偿奉献的开发者](https://github.com/webmin/webmin/graphs/contributors)
## 许可
Webmin 基于 [BSD 许可](https://github.com/webmin/webmin/blob/master/LICENCE)发布。

View File

@@ -1,61 +0,0 @@
&nbsp;
<p align="center"><img src="https://user-images.githubusercontent.com/4426533/218263860-f7baf9d6-cb19-4ddc-86dc-ac1b7a3c3a8a.png" alt="Webmin" width="310px"></p>
&nbsp;
<p align="center"> <a href="https://webmin.com/docs/" target="_blank">Documentation</a> &nbsp;&nbsp;|&nbsp;&nbsp; <a href="https://webmin.com/faq/" target="_blank">FAQ</a> &nbsp;&nbsp;|&nbsp;&nbsp; <a href="https://webmin.com/security/" target="_blank">Security</a> &nbsp;&nbsp;|&nbsp;&nbsp; <a href="https://webmin.com/screenshots/" target="_blank">Screenshots</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; <a href="https://forum.virtualmin.com/c/webmin/12" target="_blank">Forum</a> <br><br> <a href="https://webmin.com/"><img src="https://img.shields.io/badge/downloads-25M+-brightgreen.svg" alt="Downloads"></a> <a href="https://github.com/webmin/webmin/releases/"><img src="https://img.shields.io/github/release/webmin/webmin" alt="Latest release"></a> <a href="https://github.com/webmin/webmin/stargazers"><img src="https://img.shields.io/github/stars/webmin/webmin" alt="Stars"></a> <a href="https://github.com/webmin/webmin/network/members"><img src="https://img.shields.io/github/forks/webmin/webmin" alt="Members"></a> <a href="https://github.com/webmin/webmin/contributors/"><img src="https://img.shields.io/github/contributors/webmin/webmin" alt="Contributors"></a> <a href="https://github.com/webmin/webmin/issues/"><img src="https://img.shields.io/github/issues-raw/webmin/webmin" alt="Issues"></a> <a href="https://github.com/webmin/webmin/blob/master/LICENCE"><img src="https://img.shields.io/github/license/webmin/webmin" alt="License"></a> </p>
&nbsp;
---
&nbsp;
* [Changelog](https://github.com/webmin/webmin/blob/master/CHANGELOG.md)
* [About](#about)
* [Installation](#installation)
* [Development](#development)
* [License](#license)
## About
**Webmin** is a web-based system administration tool for Unix-like servers, and services with about _1,000,000_ yearly installations worldwide. Using it, it is possible to configure operating system internals, such as users, disk quotas, services or configuration files, as well as modify, and control open-source apps, such as BIND DNS Server, Apache HTTP Server, PHP, MySQL, and many more.
<p align="center">
<a href="https://webmin.com/screenshots/#gh-light-mode-only" target="_blank">
<img width="1440" alt="Dashboard screenshot" src="https://user-images.githubusercontent.com/4426533/218264253-c08fb45a-8d75-44bf-93b3-37a2ecae3d20.png">
</a>
<a href="https://webmin.com/screenshots/#gh-dark-mode-only" target="_blank">
<img width="1440" alt="Dashboard screenshot" src="https://user-images.githubusercontent.com/4426533/218265232-31140aa6-ada1-4019-bd75-04240aeabc83.png">
</a>
</p>
Usability can be expanded by installing modules, which can be custom made. Aside from this, there are two other major projects that extend its functionality:
* [Virtualmin](https://www.virtualmin.com) is a powerful, flexible, most popular, and most comprehensive web-hosting control panel for Linux, and BSD systems, with over _150,000_ installations worldwide. It is available in an open-source community-supported version, and a more feature-filled version with premium support;
* [Usermin](https://github.com/webmin/usermin) presents and controls a subset of user-centred features, rather than administrator-level tasks.
Webmin includes _116_ [standard modules](https://doxfer.webmin.com/Webmin/Webmin_Modules), and there are at least as many third-party modules.
### Requirements
Perl 5.10 or higher.
## Installation
For detailed installation instructions check our guide on [webmin.com/download](https://webmin.com/download) page.
## Development
### Lead developer
* [Jamie Cameron](https://www.webmin.com/about.html) [![](https://github.com/webmin-devel/webmin/blob/master/media/linkedin-15x15.png?raw=true)](https://www.linkedin.com/in/jamiecameron2)
### Developers
* [Ilia Rostovtsev](https://github.com/iliajie)
* [Joe Cooper](https://github.com/swelljoe)
### Contributors
* [Kay Marquardt](https://github.com/gnadelwartz)
* [Nawawi Jamili](https://github.com/nawawi)
* [unknown10777](https://github.com/unknown10777) + [90 more..](https://github.com/webmin/webmin/graphs/contributors)
## License
Webmin is released under the [BSD License](https://github.com/webmin/webmin/blob/master/LICENCE).

View File

@@ -1,23 +0,0 @@
## Reporting Security Issues
Please send all reports of security issues found in Webmin to security@webmin.com
via email, ideally PGP encrypted with the key from https://www.webmin.com/jcameron-key.asc .
Potential security issues, in descending order of impact, include :
* Remotely exploitable attacks that allow `root` access to Webmin without
any credentials.
* Privilege escalation vulnerabilities that allow non-`root` users of Webmin
to run commands or access files as `root`.
* XSS attacks that target users already logged into Webmin when they visit
another website.
Things that are not actually security issues include :
* XSS attacks that are blocked by Webmin's referrer checks, which are enabled
by default.
* Attacks that require modifications to Webmin's code or configuration, which
can only be done by someone who already has `root` permissions.

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -1,68 +0,0 @@
---- Changes since 1.130 ----
Improved the code for finding the openssl program for generating certificates.
Added the ability to restrict allowed Unix users who can login as Webmin users.
---- Changes since 1.150 ----
Added a Module Config option for an alternate user and group list display, which takes up less space on systems with a large number of Webmin users.
---- Changes since 1.160 ----
When editing a Webmin user or group, modules are now displayed under category headings.
---- Changes since 1.170 ----
Added a button to the user editing page for switching the current Webmin login to that user, without needing to know his password.
---- Changes since 1.180 ----
Added module hiding button to the group page, as in the user page.
---- Changes since 1.190 ----
Users and groups can now be backed up using the Backup Configuration Files module.
---- Changes since 1.200 ----
Users and groups with the same name can now be created. Internally, Webmin now uses .gacl files instead of .acl to store group ACL settings.
---- Changes since 1.210 ----
Enhanced the Unix User Authentication page to allow different access to be granted to different users and group members.
---- Changes since 1.220 ----
Users can now be temporarily locked without their passwords being lost.
---- Changes since 1.230 ----
CIDR-format network addresses can now be used in the IP access control field.
The inactivity logout time can now be set on a per-Webmin user basis, rather than the global setting in the Webmin Configuration module applying to all users.
---- Changes since 1.250 ----
Added checkboxes and buttons on the module's main page for deleting several users and groups at once.
Webmin users created and managed by other modules can be marked as non-editable, to prevent them from being edited when any changes would be over-written.
The IP addresses of connected users are displayed on the sessions page.
---- Changes since 1.260 ----
Added the ability to control which hours of the day and days of the week a Webmin user can login.
---- Changes since 1.290 ----
Added an option on the Unix User Authentication page to allow Unix users who can sudo to root to login to Webmin with root privileges.
Added an option to the Unix User Authentication that lets users who pass PAM validation but have no Unix or Webmin account login as a selected Webmin user.
---- Changes since 1.330 ----
When a group is deleted, sub-groups are also removed, and the group is removed from any parents.
---- Changes since 1.360 ----
Added the Password Restrictions page, for configuring password quality and change time settings.
Re-designed the Edit User page to use the new Webmin UI library, and move lesser-used fields into collapsible sections.
Webmin users can have a real name, which can be any text you like.
---- Changes since 1.370 ----
When editing a user who inherits some modules and ACL settings from a group, they can no longer be de-selected or edited.
---- Changes since 1.380 ----
Fixed a bug that prevented cloning from copying detailed access control settings, and ensured that other user attributes like the group, theme, language and access times are cloned too.
Added back the ability to edit the global ACL for groups.
---- Changes since 1.390 ----
Updated the user interface to use the Webmin UI library.
---- Changes since 1.400 ----
Fixed the display of modules granted to groups.
Added a per-user option to opt out of forced password changes after a certain number of days.
A human-readable description of the password restrictions regular expression can be entered, for use in error messages.
Webmin users can now be given temporary passwords, which they are forced to change at the next login. Thanks to GE Medical Systems for supporting this feature.
---- Changes since 1.410 ----
Added an API function to allow easier anonymous module access setup.
---- Changes since 1.440 ----
Removed the Hide Unused button and associated functionality, as un-available modules are already automatically hidden in the Un-used Modules category.
Moved the 'global ACL' fields to the Edit User and Edit Group pages, so that restrictions applying to all modules can be more easily found and edited.
Added a per-user option to not grant that user new module permissions when Webmin is upgraded.
If any theme overlays are installed, users' overlays can be selected on the Edit User page.
Converted commands in the module's API file to POD format, and added more details about each function.
---- Changes since 1.520 ----
Added the User and Group Database page, for configuring Webmin to store all new users, groups and access control lists in a MySQL, PostgreSQL or LDAP database. This allows Webmin permissions to be shared between multiple systems.
---- Changes since 1.650 ----
Added support for two-factor authentication using Authy or Google Authenticator.
---- Changes since 1.660 ----
Converted all pages to use the common Webmin UI library for a more consistent interface.
Made all code Perl strict and warnings compliant.
---- Changes since 1.670 ----
Added a button for adding multiple Webmin users to a group.
---- Changes since 1.930 ----
Added support for creating "safe-mode" Webmin users who have access only to modules and permissions that don't grant root access.

File diff suppressed because it is too large Load Diff

View File

@@ -1,87 +0,0 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
do 'acl-lib.pl';
our (%text, %in);
# acl_security_form(&options)
# Output HTML for editing security options for the acl module
sub acl_security_form
{
my ($o) = @_;
print &ui_table_row($text{'acl_users'},
&ui_radio("users_def", $o->{'users'} eq '*' ? 1 :
$o->{'users'} eq '~' ? 2 : 0,
[ [ 1, $text{'acl_uall'} ],
[ 2, $text{'acl_uthis'}."<br>" ],
[ 0, $text{'acl_usel'} ] ])."<br>\n".
&ui_select("users", [ split(/\s+/, $o->{'users'}) ],
[ (map { $_->{'name'} } &list_users()),
(map { [ '_'.$_->{'name'},
&text('acl_gr', $_->{'name'}) ] }
&list_groups()) ],
6, 1));
print &ui_table_row($text{'acl_mods'},
&ui_radio("mode", $o->{'mode'},
[ [ 0, $text{'acl_all'} ],
[ 1, $text{'acl_own'}."<br>" ],
[ 2, $text{'acl_sel'}."<br>" ] ]).
&ui_select("mods", [ split(/\s+/, $o->{'mods'}) ],
[ map { [ $_->{'dir'}, $_->{'desc'} ] }
&list_module_infos() ],
6, 1));
foreach my $f (&list_acl_yesno_fields()) {
print &ui_table_row($text{'acl_'.$f},
&ui_yesno_radio($f, $o->{$f}));
}
print &ui_table_hr();
print &ui_table_row($text{'acl_groups'},
&ui_yesno_radio("groups", $o->{'groups'}));
print &ui_table_row($text{'acl_gassign'},
&ui_radio("gassign_def", $o->{'gassign'} eq '*' ? 1 : 0,
[ [ 1, $text{'acl_gall'} ],
[ 0, $text{'acl_gsel'} ] ])."<br>\n".
&ui_select("gassign", [ split(/\s+/, $o->{'gassign'}) ],
[ map { $_->{'name'} } &list_groups() ],
6, 1));
}
# acl_security_save(&options)
# Parse the form for security options for the acl module
sub acl_security_save
{
my ($o) = @_;
if ($in{'users_def'} == 1) {
$o->{'users'} = '*';
}
elsif ($in{'users_def'} == 2) {
$o->{'users'} = '~';
}
else {
$o->{'users'} = join(" ", split(/\0/, $in{'users'}));
}
$o->{'mode'} = $in{'mode'};
$o->{'mods'} = $in{'mode'} == 2 ? join(" ", split(/\0/, $in{'mods'}))
: undef;
foreach my $f (&list_acl_yesno_fields()) {
$o->{$f} = $in{$f};
}
$o->{'groups'} = $in{'groups'};
$o->{'gassign'} = $in{'gassign_def'} ? '*' :
join(" ", split(/\0/, $in{'gassign'}));
}
sub list_acl_yesno_fields
{
return ('create', 'delete', 'rename', 'acl', 'cert', 'others', 'chcert',
'lang', 'locale', 'cats', 'theme', 'ips', 'perms', 'sync', 'unix', 'sessions',
'switch', 'times', 'pass', 'sql');
}

View File

@@ -1,108 +0,0 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require 'acl-lib.pl';
our ($config_directory, %gconfig);
# backup_config_files()
# Returns files and directories that can be backed up
sub backup_config_files
{
my @rv;
# Add primary user and group files
my %miniserv;
&get_miniserv_config(\%miniserv);
push(@rv, $miniserv{'userfile'});
push(@rv, &acl_filename());
# Add all .acl files for users and groups
foreach my $u (&list_users(), &list_groups()) {
if (!$u->{'proto'}) {
push(@rv, "$config_directory/$u->{'name'}.acl",
glob("$config_directory/*/$u->{'name'}.acl"));
}
}
# Add /etc/webmin/config
&copy_source_dest("$config_directory/config",
"$config_directory/config.aclbackup");
push(@rv, "$config_directory/config.aclbackup");
# Add /etc/webmin/miniserv.conf
&copy_source_dest("$config_directory/miniserv.conf",
"$config_directory/miniserv.conf.aclbackup");
push(@rv, "$config_directory/miniserv.conf.aclbackup");
return @rv;
}
# pre_backup(&files)
# Called before the files are actually read
sub pre_backup
{
return undef;
}
# post_backup(&files)
# Called after the files are actually read
sub post_backup
{
unlink("$config_directory/config.aclbackup");
unlink("$config_directory/miniserv.conf.aclbackup");
return undef;
}
# pre_restore(&files)
# Called before the files are restored from a backup
sub pre_restore
{
# Remove user and group .acl files
foreach my $u (&list_users(), &list_groups()) {
if (!$u->{'proto'}) {
unlink("$config_directory/$u->{'name'}.acl",
glob("$config_directory/*/$u->{'name'}.acl"));
}
}
return undef;
}
# post_restore(&files)
# Called after the files are restored from a backup
sub post_restore
{
# Splice global config entries for users into real config
my %aclbackup;
&read_file("$config_directory/config.aclbackup", \%aclbackup);
unlink("$config_directory/config.aclbackup");
foreach my $k (keys %gconfig) {
delete($gconfig{$k}) if ($k =~ /^(lang_|notabs_|theme_|ownmods_)/);
}
foreach my $k (keys %aclbackup) {
$gconfig{$k} = $aclbackup{$k} if ($k =~ /^(lang_|notabs_|theme_|ownmods_)/);
}
&write_file("$config_directory/config", \%gconfig);
# Splice miniserv.conf entries for users and password restrictions into
# real config
%aclbackup = ( );
&read_file("$config_directory/miniserv.conf.aclbackup", \%aclbackup);
unlink("$config_directory/miniserv.conf.aclbackup");
my %miniserv;
&get_miniserv_config(\%miniserv);
foreach my $k (keys %miniserv) {
delete($miniserv{$k}) if ($k =~ /^(preroot_|pass_)/);
}
foreach my $k (keys %aclbackup) {
$miniserv{$k} = $aclbackup{$k} if ($k =~ /^(preroot_|pass_)/);
}
&put_miniserv_config(\%miniserv);
&restart_miniserv();
return undef;
}
1;

View File

@@ -1,56 +0,0 @@
#!/usr/local/bin/perl
# cert_form.cgi
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
&ui_print_header(undef, $text{'cert_title'}, "", undef, undef, undef, undef,
undef, undef, "language=VBSCRIPT onload='postLoad()'");
eval "use Net::SSLeay";
print "<p>$text{'cert_msg'}<p>\n";
if ($ENV{'SSL_USER'}) {
print &text('cert_already', "<tt>$ENV{'SSL_USER'}</tt>"),
"<p>\n";
}
if ($ENV{'HTTP_USER_AGENT'} =~ /Mozilla/i) {
# Output a form that works for netscape and mozilla
print &ui_form_start("cert_issue.cgi", "post");
print &ui_table_start($text{'cert_header'}, undef, 2);
print &ui_table_row($text{'cert_cn'},
&ui_textbox("commonName", undef, 30));
print &ui_table_row($text{'cert_email'},
&ui_textbox("emailAddress", undef, 30));
print &ui_table_row($text{'cert_ou'},
&ui_textbox("organizationalUnitName", undef, 30));
print &ui_table_row($text{'cert_o'},
&ui_textbox("organizationName", undef, 30));
print &ui_table_row($text{'cert_sp'},
&ui_textbox("stateOrProvinceName", undef, 30));
print &ui_table_row($text{'cert_c'},
&ui_textbox("countryName", undef, 30));
print &ui_table_row($text{'cert_key'},
"<keygen name=key>");
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'cert_issue'} ] ]);
}
else {
# Unsupported browser!
print "<p><b>",&text('cert_ebrowser',
"<tt>$ENV{'HTTP_USER_AGENT'}</tt>"),"</b><p>\n";
}
&ui_print_footer("", $text{'index_return'});

View File

@@ -1,58 +0,0 @@
#!/usr/local/bin/perl
# cert_issue.cgi
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $module_config_directory, $base_remote_user);
&ReadParse();
&error_setup($text{'cert_err'});
$in{'key'} || &error($text{'cert_ekey'});
my %miniserv;
&get_miniserv_config(\%miniserv);
# Create the new key
my $temp1 = &transname();
my $temp2 = &tempname();
my $fh = "IN";
&open_tempfile($fh, ">$temp1");
foreach my $k ("emailAddress", "organizationalUnitName", "organizationName",
"stateOrProvinceName", "countryName", "commonName") {
&print_tempfile($fh, "$k = $in{$k}\n");
}
$in{'key'} =~ s/\s//g;
&print_tempfile($fh, "SPKAC = $in{'key'}\n");
&close_tempfile($fh);
my $cmd = &get_ssleay();
my $ssleay = &backquote_logged("$cmd ca -spkac $temp1 -out $temp2 -config $module_config_directory/openssl.cnf -days 1095 2>&1");
&unlink_file($temp1);
if ($?) {
&error("<pre>$ssleay</pre>");
}
else {
# Display status and redirect to actual cert file
&ui_print_unbuffered_header(undef, $text{'cert_title'}, "");
print &text('cert_done', $in{'commonName'}),"<p>\n";
print &text('cert_pickup', "cert_output.cgi?file=$temp2"),"<p>\n";
&ui_print_footer("", $text{'index_return'});
# Update the Webmin user
my ($me) = grep { $_->{'name'} eq $base_remote_user } &list_users();
$me || &error($text{'edit_egone'});
$me->{'cert'} = "/C=$in{'countryName'}".
"/ST=$in{'stateOrProvinceName'}".
"/O=$in{'organizationName'}".
"/OU=$in{'organizationalUnitName'}".
"/CN=$in{'commonName'}".
"/Email=$in{'emailAddress'}";
&modify_user($me->{'name'}, $me);
sleep(1);
&restart_miniserv();
&webmin_log("cert", undef, $base_remote_user, \%in);
}

View File

@@ -1,19 +0,0 @@
#!/usr/local/bin/perl
# cert_issue.cgi
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
&ReadParse();
my $tempdir = &tempname();
$tempdir =~ s/\/[^\/]+$//;
&is_under_directory($tempdir, $in{'file'}) ||
&error($text{'cert_etempdir'});
print "Content-type: application/x-x509-user-cert\n\n";
print &read_file_contents($in{'file'});
&unlink_file($in{'file'});

View File

@@ -1,31 +0,0 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
do 'acl-lib.pl';
our (%access);
sub cgi_args
{
my ($cgi) = @_;
if ($cgi eq 'edit_user.cgi') {
my ($u) = grep { &can_edit_user($_->{'name'}) } &list_users();
return $u ? 'user='.&urlize($u->{'name'}) :
$access{'create'} ? '' : 'none';
}
elsif ($cgi eq 'edit_group.cgi') {
my ($u) = grep { &can_edit_group($_->{'name'}) } &list_groups();
return $u ? 'group='.&urlize($u->{'name'}) :
$access{'groups'} ? '' : 'none';
}
elsif ($cgi eq 'edit_acl.cgi') {
my ($u) = grep { &can_edit_user($_->{'name'}) } &list_users();
if ($u && @{$u->{'modules'}}) {
return 'user='.&urlize($u->{'name'}).
'&mod='.$u->{'modules'}->[0];
}
return 'none';
}
return undef;
}

View File

@@ -1,4 +0,0 @@
ssleay=/usr/local/ssl/bin/openssl
select=0
order=0
display=1

View File

@@ -1,3 +0,0 @@
ssleay=/usr/bin/openssl
order=0
display=1

View File

@@ -1,3 +0,0 @@
ssleay=/usr/bin/openssl
order=0
display=1

View File

@@ -1,3 +0,0 @@
ssleay=/usr/bin/openssl
order=0
display=1

View File

@@ -1,3 +0,0 @@
ssleay=/usr/bin/openssl
order=0
display=1

View File

@@ -1,3 +0,0 @@
ssleay=/usr/bin/openssl
order=0
display=1

View File

@@ -1,3 +0,0 @@
ssleay=/usr/sfw/bin/openssl
order=0
display=1

View File

@@ -1,4 +0,0 @@
ssleay=/usr/bin/openssl
select=0
order=0
display=1

View File

@@ -1,5 +0,0 @@
line1=Configurable options,11
display=User and group display mode,1,1-Names only,0-Names and modules
order=Sort users and groups by,1,0-Order in file,1-Name
line2=System configuration,11
ssleay=Path to <tt>openssl</tt> or <tt>ssleay</tt> program,3,Automatic

View File

@@ -1,5 +0,0 @@
line1=تكوين الخيارات,11
display=وضع عرض المستخدم والمجموعة,1,1-الأسماء فقط,0-الأسماء والوحدات النمطية
order=فرز المستخدمين والمجموعات حسب,1,0-الطلب في الملف,1-الإ سم
line2=تكوين النظام,11
ssleay=المسار إلى openssl أو برنامج ssleay,3,تلقائي

View File

@@ -1,5 +0,0 @@
line1=Конфигурационни опции,11
display=Режим на показване на потребител и група,1,1-Само имена,0-Имена и модули
order=Подреди юзери и групи по,1,0-подредба във файл,1-име
line2=Системна конфигурация,11
ssleay=Път към openssl или ssleay програма,0

View File

@@ -1,5 +0,0 @@
line1=Opcions configurables,11
display=Forma de mostrar els usuaris i els grups,1,1-Només els noms,0-Noms i mòduls
order=Ordena els usuaris i grups per,1,0-L'ordre del fitxer,1-El nom
line2=Configuració del sistema,11
ssleay=Camí del programa <tt>openssl</tt> o <tt>ssleay</tt>,3,Automàtic

View File

@@ -1,5 +0,0 @@
line1=Možnosti konfigurace,11
display=Mód pro zobrazení uživatele a skupiny,1,1-Pouze jména,0-Jména a moduly
order=Třídit uživatele a skupiny podle,1,0-pořadí v souboru,1-jména
line2=Konfigurace systému,11
ssleay=Cesta k programu openssl nebo ssleay,0

View File

@@ -1,5 +0,0 @@
line1=Konfigurerbare indstillinger,11
display=Bruger og gruppe visnings mode,1,1-Kun navne,0-Navne og moduler
order=Sorter brugere og grupper ved,1.0-Sortering i fil,1-Navn
line2=Systemkonfiguration,11
ssleay=Sti til openssl eller ssleay progarm,3,Automatisk

View File

@@ -1,5 +0,0 @@
line1=Konfigurierbare Optionen,11
display=Benutzer- und Gruppenanzeige,1,1-Nur Namen,0-Namen und Module
order=Sortiere Benutzer und Gruppen nach,1,0-Reihenfolge in Datei,1-Name
line2=Systemkonfiguration,11
ssleay=Pfad zu <tt>openssl</tt> oder <tt>ssleay</tt>,3,Automatisch

View File

@@ -1,5 +0,0 @@
line1=Opciones Configurables,11
display=Modo de mostrar usuario y grupo,1,1-Sólo nombres,0-Nombres y módulos
order=Clasificar usuarios y grupos por,1,0-Orden en archivo,1-Nombre
line2=Configuración de Sistema,11
ssleay=Trayectoria al programa openssl o ssleay,0

View File

@@ -1,5 +0,0 @@
line1=Konfiguragarri diren aukerak, 11
display=Erabiltzaile eta taldea erakusteko modua, 1,1-Izenak soilik, 0-Izenak eta moduluak
order=Ordenatu erabiltzaile eta taldeak,1,0-Fitxategian ordenatu,1-Izena
line2=Sistemaren konfigurazioa,11
ssleay=Openssl edo ssleay programaren helbidea,3,Automatikoa

View File

@@ -1,5 +0,0 @@
line1=گزينه‌هاي پيکربندي,11
display=حالت نمايش کاربران و گروه‌ها,1,1-فقط نامها,0-نامها و پيمانه‌ها
order=مرتب سازي کاربران و گروه‌ها براساس,1,0-ترتيب در پرونده,1-نام
line2=پيکربندي سيستم,11
ssleay=مسير براي openssl يا برنامه ssleay,3,خودکار

View File

@@ -1,5 +0,0 @@
line1=Options configurables,11
display=Mode d'affichage des utilisateurs et des groupes,1,1-Noms seulement,0-Noms et modules
order=Trier les utilisateurs et les groupes par,1,0-Ordre dans le fichier,1-Nom
line2=Configuration du système,11
ssleay=Chemin d'accès au programme openssl ou ssleay,3,Automatique

View File

View File

@@ -1,5 +0,0 @@
line1=Konfigurálható beállítások,11
display=Felhasználó és csoport megjelenítési mód,1,1-Csak a neveket,0-Neveket és modulokat
order=Felhasználók és csoportok rendezése,1,0-A fájl rendezése szerint,1-Név szerint
line2=Rendszer konfiguráció,11
ssleay=Az <code>openssl</code> vagy <code>ssleay</code> program teljes elérési útja,0

View File

@@ -1,5 +0,0 @@
line1=Opzioni configurabili,11
display=Modalità di visualizzazione di utenti e gruppi,1,1-Solo i nomi,0-Nomi e moduli
order=Ordina gli utenti e i gruppi per,1,0-Ordine nel file,1-Nome
line2=Configurazione di sistema,11
ssleay=Percorso al programma openssl o ssleay,3,Automatico

View File

@@ -1,5 +0,0 @@
line1=設定可能なオプション,11
display=ユーザとグループの表示モード,1,1-名前のみ,0-名前とモジュール
order=ユーザとグループのソート順,1,0-ファイル順,1-名前順
line2=システム設定,11
ssleay=opensslプログラムまたはssleayプログラムのパス,3,自動

View File

@@ -1,5 +0,0 @@
line1=가능한 옵션,11
display=유저와 그룹 출력 모드,1,1-이름만,0-이름과 모듈
order=유저와 그룹 정렬,1,0-파일 순,1-이름
line2=시스템 설정,11
ssleay=openssl 또는 ssleay 파일 경로,3,Automatic

View File

@@ -1,5 +0,0 @@
line1=Pilihan konfigurasi,11
display=Mod paparan pengguna dan grup,1,1-Nama sahaja,0-Nama dan modul
order=Tapis pengguna dan grup dengan,1,0-Urutan dalam fail,1-Nama
line2=Konfigurasi sistem,11
ssleay=Lokasi program openssl atau ssleay,3,Automatik

View File

@@ -1,5 +0,0 @@
line1=Instelbare opties,11
display=Gebruiker en groep weergave instelling,1,1-Alleen Namen,0-Namen en modules
order=Sorteer gebruikers en groepen op,1,0-Volgorde in bestand,1-Naam
line2=Systeem configuratie,11
ssleay=Pad naar openssl of ssleay programma,3,Automatisch

View File

@@ -1,5 +0,0 @@
line1=Konfigurerbare innstillinger,11
display=Visningsmodus for bruker og gruppe,1,1-Bare navn,0-Navn og moduler
order=Sorter brukere og grupper etter,1,0-Rekkefølge i filen,1-Navn
line2=System konfigurasjon,11
ssleay=Stien til openssl eller ssleay program,0

View File

@@ -1,5 +0,0 @@
line1=Opcje konfiguracyjne,11
display=Tryb wyświetlania użytkowników i grup,1,1-Tylko nazwy,0-Nazwy i moduły
order=Porządkuj użytkowników i grupy wg,1,0-Kolejności w zbiorze,1-Nazwy
line2=Konfiguracja systemu,11
ssleay=Ścieżka do programu openssl lub ssleay,0

View File

@@ -1,5 +0,0 @@
line1=Opções configuráveis,11
display=Modo de exibição de usuário e grupo, 1, 1-Somente nomes, 0-Nomes e módulos
order=Ordenar usuários e grupos por,1,0-Ordem no arquivo,1-Nome
line2=Configuração do sistema,11
ssleay=Caminho para o programa openssl ou ssleay,0

View File

@@ -1,5 +0,0 @@
line1=Настраиваемые параметры,11
display=Режим отображения пользователей и групп,1,1-Только имена,0-Имена и модули
order=Упорядочивать пользователей и группы по,1,0-Очередности в файле,1-Имени
line2=Системные параметры,11
ssleay=Путь к программе openssl или ssleay,0

View File

@@ -1,5 +0,0 @@
line1=Nastaviteľné možnosti,11
display=Spôsob zobrazenia užívateľov a skupín,1,1-Iba mená,0-Mená a moduly
order=Zoraď užívateľov a skupiny podľa,1,0-Poradia v súbore,1-Mena
line2=Nastavenie Systému,11
ssleay=Cesta k programu openssl alebo ssleay,3,Automatická

View File

@@ -1 +0,0 @@
ssleay=Sökväg till openssl- eller ssleay-program,0

View File

@@ -1,5 +0,0 @@
line1=Yapılandırılabilir seçenekler,11
display=Kullanıcı ve grup görüntüleme biçimi,1,1-Sadece isim,0-İsim ve modüller
order=Kullanıcı ve grupları bu şekilde sırala,1,0-Dosyadaki sırası ile,1-İsim ile
line2=Sistem yapılandırması,11
ssleay=Openssl ya da ssleay programı yolu,3,Otomatik

View File

@@ -1,4 +0,0 @@
line1=Параметри&#44; що настроюються,11
order=Упорядковувати користувачів і групи по,1,0-черговості у файлі,1-імені
line2=Системні параметри,11
ssleay=Шлях до програми openssl чи ssleay,0

View File

@@ -1 +0,0 @@
ssleay=Openssl 或者 Ssleay 程序的路径,0

View File

@@ -1,4 +0,0 @@
line1=組態選項,11
order=排序使用者和全組 依,1,0-檔案內位置,1-名稱
line2=系統組態,11
ssleay=openssl或ssleay程式路徑,0

View File

@@ -1,150 +0,0 @@
#!/usr/local/bin/perl
# convert.cgi
# Convert unix to webmin users
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $config_directory);
&ReadParse();
&error_setup($text{'convert_err'});
$access{'sync'} && $access{'create'} || &error($text{'convert_ecannot'});
&foreign_require("useradmin", "user-lib.pl");
# Validate inputs
my (%users, %nusers, $gid);
if ($access{'gassign'} ne '*') {
my @gcan = split(/\s+/, $access{'gassign'});
&indexof($in{'wgroup'}, @gcan) >= 0 ||
&error($text{'convert_ewgroup2'});
}
if ($in{'conv'} == 1) {
$in{'users'} =~ /\S/ || &error($text{'convert_eusers'});
map { $users{$_}++ } split(/\s+/, $in{'users'});
}
elsif ($in{'conv'} == 2) {
map { $nusers{$_}++ } split(/\s+/, $in{'nusers'});
}
elsif ($in{'conv'} == 3) {
$gid = getgrnam($in{'group'});
defined($gid) || &error($text{'convert_egroup'});
}
elsif ($in{'conv'} == 4) {
$in{'min'} =~ /^\d+$/ || &error($text{'convert_emin'});
$in{'max'} =~ /^\d+$/ || &error($text{'convert_emax'});
}
# Get the group to add to
my $group;
my %exists;
foreach my $g (&list_groups()) {
$group = $g if ($g->{'name'} eq $in{'wgroup'});
$exists{$g->{'name'}}++;
}
$group || &error($text{'convert_ewgroup'});
my (@ginfo, @members);
if ($in{'conv'} == 3) {
# Find secondary members of group
@ginfo = getgrnam($in{'group'});
@members = split(/\s+/, $ginfo[3]);
}
# Build the list of users
my @users;
if ($in{'sync'}) {
# Can just get from getpw* system calls, as password isn't needed
@users = ( );
setpwent();
while(my @uinfo = getpwent()) {
push(@users, { 'user' => $uinfo[0],
'pass' => $uinfo[1],
'uid' => $uinfo[2],
'gid' => $uinfo[3],
'real' => $uinfo[6],
'home' => $uinfo[7],
'shell' => $uinfo[8] });
}
}
else {
# Read /etc/passwd
@users = &useradmin::list_users();
}
# Convert matching users
&ui_print_header(undef, $text{'convert_title'}, "");
print $text{'convert_msg'},"<p>\n";
print &ui_columns_start([ $text{'convert_user'}, $text{'convert_action'} ]);
map { $exists{$_->{'name'}}++ } &list_users();
my ($skipped, $exists, $invalid, $converted) = (0, 0, 0, 0);
foreach my $u (@users) {
my $ok;
if ($in{'conv'} == 0) {
$ok = 1;
}
elsif ($in{'conv'} == 1) {
$ok = $users{$u->{'user'}};
}
elsif ($in{'conv'} == 2) {
$ok = !$nusers{$u->{'user'}};
}
elsif ($in{'conv'} == 3) {
$ok = $u->{'gid'} == $gid ||
&indexof($u->{'user'}, @members) >= 0;
}
elsif ($in{'conv'} == 4) {
$ok = $u->{'uid'} >= $in{'min'} &&
$u->{'uid'} <= $in{'max'};
}
my $msg;
if (!$ok) {
#print &text('convert_skip', $u->{'user'}),"\n";
$msg = undef;
$skipped++;
}
elsif ($exists{$u->{'user'}}) {
$msg = "<i>".&text('convert_exists', $u->{'user'})."</i>";
$exists++;
}
elsif ($u->{'user'} !~ /^[A-z0-9\-\_\.]+$/) {
$msg = "<i>".&text('convert_invalid', $u->{'user'})."</i>";
$invalid++;
}
else {
# Actually add the user
$msg = "<b>".&text('convert_added', $u->{'user'})."</b>";
my $user = { 'name' => $u->{'user'},
'pass' => $in{'sync'} ? 'x' : $u->{'pass'},
'modules' => $group->{'modules'} };
&create_user($user);
foreach my $m (@{$group->{'modules'}}, "") {
my %groupacl;
if (&read_file(
"$config_directory/$m/$in{'wgroup'}.gacl",
\%groupacl)) {
&write_file(
"$config_directory/$m/$u->{'user'}.acl",
\%groupacl);
}
}
push(@{$group->{'members'}}, $u->{'user'});
$exists{$u->{'user'}}++;
$converted++;
}
print &ui_columns_row([ $u->{'user'}, $msg ]) if ($msg);
}
endpwent();
print &ui_columns_end();
# Finish off
&modify_group($group->{'name'}, $group);
&restart_miniserv();
# Print summary
print &text('convert_done', $converted, $invalid, $exists, $skipped),"<p>\n";
&ui_print_footer("", $text{'index_return'});

View File

@@ -1,54 +0,0 @@
#!/usr/local/bin/perl
# convert_form.cgi
# Display a form for converting unix users to webmin users
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'sync'} && $access{'create'} || &error($text{'convert_ecannot'});
&ui_print_header(undef, $text{'convert_title'}, "");
my @glist = &list_groups();
if ($access{'gassign'} ne '*') {
my @gcan = split(/\s+/, $access{'gassign'});
@glist = grep { &indexof($_->{'name'}, @gcan) >= 0 } @glist;
}
if (!@glist) {
print "$text{'convert_nogroups'}<p>\n";
&ui_print_footer("", $text{'index_return'});
exit;
}
print "$text{'convert_desc'}<p>\n";
print &ui_form_start("convert.cgi", "post");
print &ui_table_start(undef, undef, 2);
# Users to convert
print &ui_table_row($text{'convert_users'},
&ui_radio_table("conv", 0,
[ [ 0, $text{'convert_0'} ],
[ 1, $text{'convert_1'}, &ui_textbox("users", undef, 60)." ".
&user_chooser_button("users", 1) ],
[ 2, $text{'convert_2'}, &ui_textbox("nusers", undef, 60)." ".
&user_chooser_button("nusers", 1) ],
[ 3, $text{'convert_3'}, &unix_group_input("group") ],
[ 4, $text{'convert_4'}, &ui_textbox("min", undef, 6)." - ".
&ui_textbox("max", undef, 6) ]
]));
# Put into group
print &ui_table_row($text{'convert_group'},
&ui_select("wgroup", undef, [ map { $_->{'name'} } @glist ]));
# Keep passwords in sync
print &ui_table_row($text{'convert_sync2'},
&ui_yesno_radio("sync", 1));
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'convert_ok'} ] ]);
&ui_print_footer("", $text{'index_return'});

View File

@@ -1,28 +0,0 @@
users=*
mode=0
create=1
delete=1
rename=1
others=1
cert=1
acl=1
chcert=1
lang=1
locale=1
groups=1
gassign=*
perms=0
sync=1
unix=1
theme=1
sessions=1
cats=1
ips=1
switch=1
rbacenable=1
logouttime=1
times=1
minsize=1
nochange=1
pass=1
sql=1

View File

@@ -1,54 +0,0 @@
#!/usr/local/bin/perl
# delete_group.cgi
# Delete a group (and maybe it's members)
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user);
&ReadParse();
&error_setup($text{'gdelete_err'});
$access{'groups'} || &error($text{'gdelete_ecannot'});
my @glist = &list_groups();
my ($group) = grep { $_->{'name'} eq $in{'group'} } @glist;
my @mems = @{$group->{'members'}};
foreach my $m (@mems) {
&error($text{'gdelete_esub'}) if ($m =~ /^\@/);
}
if (&indexof($base_remote_user, @mems) >= 0) {
&error($text{'gdelete_euser'});
}
elsif (@mems && !$in{'confirm'}) {
# Ask if the user really wants to delete the group and members
&ui_print_header(undef, $text{'gdelete_title'}, "");
print &ui_confirmation_form(
"delete_group.cgi",
&text('gdelete_desc', "<tt>$in{'group'}</tt>",
"<tt>".join(" ", @mems)."</tt>"),
[ [ "group", $in{'group'} ] ],
[ [ "confirm", $text{'gdelete_ok'} ] ],
);
&ui_print_footer("", $text{'index_return'});
}
else {
# Delete the group (and members if any)
&delete_group($in{'group'});
foreach my $u (@mems) {
if ($u =~ /^\@(.*)/) {
&delete_group("$1");
}
else {
&delete_user($u);
}
}
&delete_from_groups("\@".$in{'group'});
&reload_miniserv();
&webmin_log("delete", "group", $in{'group'});
&redirect("");
}

View File

@@ -1,63 +0,0 @@
#!/usr/local/bin/perl
# Delete a bunch of Webmin groups
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user);
&ReadParse();
&error_setup($text{'gdeletes_err'});
$access{'groups'} || &error($text{'gdelete_ecannot'});
# Validate inputs
my @d = split(/\0/, $in{'d'});
@d || &error($text{'udeletes_enone'});
my @glist = &list_groups();
my $ucount = 0;
foreach my $g (@d) {
my ($group) = grep { $_->{'name'} eq $g } @glist;
foreach my $m (@{$group->{'members'}}) {
&error($text{'gdelete_esub'}) if ($m =~ /^\@/);
&error($text{'gdelete_euser'}) if ($m eq $base_remote_user);
$ucount++;
}
}
if ($in{'confirm'}) {
# Do it
foreach my $g (@d) {
my ($group) = grep { $_->{'name'} eq $g } @glist;
&delete_group($g);
foreach my $u (@{$group->{'members'}}) {
if ($u =~ /^\@(.*)/) {
&delete_group("$1");
}
else {
&delete_user($u);
}
}
&delete_from_groups("\@".$g);
}
&reload_miniserv();
&webmin_log("delete", "groups", scalar(@d));
&redirect("");
}
else {
# Ask the user if he is sure
&ui_print_header(undef, $text{'gdeletes_title'}, "");
print &ui_confirmation_form(
"delete_groups.cgi",
&text('gdeletes_rusure', scalar(@d), $ucount),
[ map { [ "d", $_ ] } @d ],
[ [ "confirm", $text{'gdeletes_ok'} ] ],
undef,
&text('gdeletes_users', join(" ", map { "<tt>$_</tt>" } @d)),
);
&ui_print_footer("", $text{'index_return'});
}

View File

@@ -1,20 +0,0 @@
#!/usr/local/bin/perl
# delete_session.cgi
# Delete a single session
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, %sessiondb);
&ReadParse();
$access{'sessions'} || &error($text{'sessions_ecannot'});
my %miniserv;
&get_miniserv_config(\%miniserv);
&delete_session_id(\%miniserv, $in{'id'});
&restart_miniserv();
&redirect($in{'redirect_ref'} ?
&get_referer_relative() : "list_sessions.cgi");

View File

@@ -1,24 +0,0 @@
#!/usr/local/bin/perl
# delete_user.cgi
# Delete a webmin user
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user);
&ReadParse();
&error_setup($text{'delete_err'});
$access{'delete'} || &error($text{'delete_ecannot'});
&can_edit_user($in{'user'}) || &error($text{'delete_euser'});
&used_for_anonymous($in{'user'}) && &error($text{'delete_eanonuser'});
if ($base_remote_user eq $in{'user'}) {
&error($text{'delete_eself'});
}
&delete_user($in{'user'});
&delete_from_groups($in{'user'});
&reload_miniserv();
&webmin_log("delete", "user", $in{'user'});
&redirect("");

View File

@@ -1,112 +0,0 @@
#!/usr/local/bin/perl
# Delete a bunch of Webmin users, or add them to a group
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user);
&ReadParse();
&error_setup($in{'joingroup'} ? $text{'udeletes_jerr'} : $text{'udeletes_err'});
# Validate inputs
my @d = split(/\0/, $in{'d'});
@d || &error($text{'udeletes_enone'});
foreach my $user (@d) {
&can_edit_user($user) || &error($text{'delete_euser'});
if ($base_remote_user eq $user && !$in{'joingroup'}) {
&error($text{'delete_eself'});
}
&used_for_anonymous($user) && &error($text{'delete_eanonuser'});
my $uinfo = &get_user($user);
$uinfo->{'readonly'} && &error($text{'udeletes_ereadonly'});
}
if ($in{'joingroup'}) {
# Add users to a group
my $newgroup = &get_group($in{'group'});
if ($access{'gassign'} ne '*') {
my @gcan = split(/\s+/, $access{'gassign'});
&indexof($in{'group'}, @gcan) >= 0 ||
&error($text{'save_egroup'});
}
foreach my $user (@d) {
my $uinfo = &get_user($user);
next if (!$uinfo);
next if ($newgroup &&
&indexof($user, @{$newgroup->{'members'}}) >= 0);
# Remove from old group, if any
my $oldgroup = &get_users_group($user);
if ($oldgroup) {
$oldgroup->{'members'} =
[ grep { $_ ne $user }
@{$oldgroup->{'members'}} ];
&modify_group($oldgroup->{'name'}, $oldgroup);
}
# Add to new group
push(@{$newgroup->{'members'}}, $user);
&modify_group($newgroup->{'name'}, $newgroup);
my @mods = @{$uinfo->{'modules'}};
if ($oldgroup) {
# Remove modules from the old group
@mods = grep { &indexof($_, @{$oldgroup->{'modules'}})
< 0 } @mods;
}
if ($newgroup) {
# Add modules from group to list
my @ownmods;
foreach my $m (@mods) {
push(@ownmods, $m) if (&indexof($m,
@{$newgroup->{'modules'}}) < 0);
}
@mods = &unique(@mods, @{$newgroup->{'modules'}});
$uinfo->{'ownmods'} = \@ownmods;
# Copy ACL files for group
&copy_group_user_acl_files($in{'group'}, $user,
[ @{$newgroup->{'modules'}}, "" ]);
}
$uinfo->{'modules'} = \@mods;
# Save the user
&modify_user($user, $uinfo);
}
&webmin_log("joingroup", "users", scalar(@d),
{ 'group' => $in{'group'} });
&redirect("");
}
elsif ($in{'confirm'}) {
# Do it
$access{'delete'} || &error($text{'delete_ecannot'});
foreach my $user (@d) {
&delete_user($user);
&delete_from_groups($user);
}
&reload_miniserv();
&webmin_log("delete", "users", scalar(@d));
&redirect("");
}
else {
# Ask the user if he is sure
$access{'delete'} || &error($text{'delete_ecannot'});
&ui_print_header(undef, $text{'udeletes_title'}, "");
print &ui_confirmation_form(
"delete_users.cgi",
&text('udeletes_rusure', scalar(@d)),
[ map { [ "d", $_ ] } @d ],
[ [ "confirm", $text{'udeletes_ok'} ] ],
&text('udeletes_users', join(" ", map { "<tt>$_</tt>" } @d)),
);
print "</center>\n";
&ui_print_footer("", $text{'index_return'});
}

View File

@@ -1,89 +0,0 @@
#!/usr/local/bin/perl
# edit_acl.cgi
# Display a form for editing the access control options for some module
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user, %gconfig);
&ReadParse();
$access{'acl'} || &error($text{'acl_emod'});
my $who;
if ($in{'group'}) {
$access{'groups'} || &error($text{'acl_egroup'});
$who = $in{'group'};
}
else {
my $me = &get_user($base_remote_user);
my @mcan = $access{'mode'} == 1 ? @{$me->{'modules'}} :
$access{'mode'} == 2 ? split(/\s+/, $access{'mods'}) :
( &list_modules() , "" );
&indexof($in{'mod'}, @mcan) >= 0 || &error($text{'acl_emod'});
&can_edit_user($in{'user'}) || &error($text{'acl_euser'});
$who = $in{'user'};
}
my %minfo = $in{'mod'} ? &get_module_info($in{'mod'})
: ( 'desc' => $text{'index_global'} );
my $below = &text($in{'group'} ? 'acl_title3' : 'acl_title2',
"<tt>".&html_escape($who)."</tt>",
"<tt>$minfo{'desc'}</tt>");
&ui_print_header($below, $text{'acl_title'}, "",
-r &help_file($in{'mod'}, "acl_info") ?
[ "acl_info", $in{'mod'} ] : undef);
my %maccess = $in{'group'} ? &get_group_module_acl($who, $in{'mod'})
: &get_module_acl($who, $in{'mod'}, 1);
# display the form
print &ui_form_start("save_acl.cgi", "post");
print &ui_hidden("_acl_mod", $in{'mod'}),"\n";
if ($in{'group'}) {
print &ui_hidden("_acl_group", $who),"\n";
}
else {
print &ui_hidden("_acl_user", $who),"\n";
}
print &ui_table_start(&text('acl_options', $minfo{'desc'}), "width=100%", 4);
if ($in{'mod'} && $in{'user'} && &supports_rbac($in{'mod'}) &&
!$gconfig{'rbacdeny_'.$who}) {
# Show RBAC option
print &ui_table_row($text{'acl_rbac'},
&ui_radio("rbac", $maccess{'rbac'} ? 1 : 0,
[ [ 1, $text{'acl_rbacyes'} ],
[ 0, $text{'no'} ] ]), 3);
}
# Load custom ACL library
my $mdir = &module_root_directory($in{'mod'});
if (-r "$mdir/acl_security.pl") {
&foreign_require($in{'mod'}, "acl_security.pl");
}
my $shown_config = 0;
if ($in{'mod'} && -r "$mdir/config.info" &&
(!&foreign_defined($in{'mod'}, "acl_security_noconfig") ||
!&foreign_call($in{'mod'}, "acl_security_noconfig"))) {
# Show module config editing option
print &ui_table_row($text{'acl_config'},
&ui_radio("noconfig", $maccess{'noconfig'} ? 1 : 0,
[ [ 0, $text{'yes'} ], [ 1, $text{'no'} ] ]), 3);
$shown_config = 1;
}
# Show custom ACL form
if (-r "$mdir/acl_security.pl") {
print &ui_table_hr() if ($shown_config);
&foreign_call($in{'mod'}, "load_theme_library");
&foreign_call($in{'mod'}, "acl_security_form", \%maccess);
}
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ],
[ "reset", $text{'acl_reset'} ] ]);
&ui_print_footer("", $text{'index_return'});

View File

@@ -1,152 +0,0 @@
#!/usr/local/bin/perl
# edit_group.cgi
# Edit or create a webmin group
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $config_directory);
&ReadParse();
$access{'groups'} || &error($text{'gedit_ecannot'});
my $g;
my %group;
if ($in{'group'}) {
# Editing an existing group
&ui_print_header(undef, $text{'gedit_title'}, "");
$g = &get_group($in{'group'});
$g || &error($text{'gedit_egone'});
%group = %$g;
}
else {
# Creating a new group
&ui_print_header(undef, $text{'gedit_title2'}, "");
%group = ( );
if ($in{'clone'}) {
# Copy modules from clone
$g = &get_group($in{'clone'});
if ($g) {
$group{'modules'} = $g->{'modules'};
}
}
}
print &ui_form_start("save_group.cgi", "post");
print &ui_hidden("old", $in{'group'});
if ($in{'clone'}) {
print &ui_hidden("clone", $in{'clone'});
}
print &ui_hidden_table_start($text{'gedit_rights'}, "width=100%", 2, "rights",
1, [ "width=30%" ]);
# Show the group name
print &ui_table_row($text{'gedit_group'},
&ui_textbox("name", $group{'name'}, 30, 0, undef, "autocomplete=off"));
# Show group description
print &ui_table_row($text{'gedit_desc'},
&ui_textbox("desc", $group{'desc'}, 60));
# Find and show the parent group
my @glist = grep { $_->{'name'} ne $group{'name'} } &list_groups();
my @mcan = $access{'gassign'} eq '*' ?
( ( map { $_->{'name'} } @glist ), '_none' ) :
split(/\s+/, $access{'gassign'});
my %gcan = map { $_, 1 } @mcan;
if (@glist && %gcan) {
my @opts = ( );
if ($gcan{'_none'}) {
push(@opts, [ undef, "&lt;$text{'edit_none'}&gt;" ]);
}
my $memg = undef;
foreach my $g (@glist) {
if (&indexof('@'.$group{'name'}, @{$g->{'members'}}) >= 0) {
$memg = $g->{'name'};
}
next if (!$gcan{$g->{'name'}} && $memg ne $g->{'name'});
push(@opts, [ $g->{'name'} ]);
}
print &ui_table_row($text{'edit_group'},
&ui_select("group", $memg, \@opts));
}
if ($in{'group'}) {
# Show all current members
my @grid = map { $_ =~ /^\@(.*)$/ ? ui_link("edit_group.cgi?group=$1", "<i>$1</i>") : ui_link("edit_user.cgi?user=$_", $_) }
@{$group{'members'}};
if (@grid) {
print &ui_table_row($text{'gedit_members'},
&ui_links_row(\@grid));
}
}
# Storage type
if ($in{'group'}) {
print &ui_table_row($text{'edit_proto'},
$text{'edit_proto_'.$group{'proto'}});
}
print &ui_hidden_table_end("basic");
# Start of modules section
print &ui_hidden_table_start($text{'edit_mods'}, "width=100%", 2, "mods");
# Show available modules, under categories
my @mlist = &list_module_infos();
my %has = map { $_, 1 } @{$group{'modules'}};
my @links = ( &select_all_link("mod", 0, $text{'edit_selall'}),
&select_invert_link("mod", 0, $text{'edit_invert'}) );
my @cats = &unique(map { $_->{'category'} || "" } @mlist);
my %catnames;
&read_file("$config_directory/webmin.catnames", \%catnames);
my $grids = "";
foreach my $c (sort { $b cmp $a } @cats) {
my @cmlist = grep { $_->{'category'} eq $c } @mlist;
$grids .= "<b>".($catnames{$c} || $text{'category_'.$c})."</b><br>\n";
my @grid = ( );
my $sw = 0;
foreach my $m (@cmlist) {
my $md = $m->{'dir'};
my $label;
if ($access{'acl'} && $in{'group'}) {
# Show link for editing ACL
$label = ui_link("edit_acl.cgi?" .
"mod=" . urlize($m->{'dir'}) .
"&group=". urlize($in{'group'}),
$m->{'desc'}) . "\n";
}
else {
$label = $m->{'desc'};
}
push(@grid, &ui_checkbox("mod", $md, $label,$has{$md}));
}
$grids .= &ui_grid_table(\@grid, 2, 100, [ "width=50%", "width=50%" ]);
}
print &ui_table_row(undef, &ui_links_row(\@links).
$grids.
&ui_links_row(\@links), 2);
print &ui_hidden_table_end("mods");
# Add global ACL section
if ($access{'acl'} && $in{'group'}) {
print &ui_hidden_table_start($text{'edit_global'}, "width=100%", 2,
"global", 0, [ "width=30%" ]);
my %uaccess = &get_group_module_acl($in{'group'}, "");
print &ui_hidden("acl_security_form", 1);
&foreign_require("", "acl_security.pl");
&foreign_call("", "acl_security_form", \%uaccess);
print &ui_hidden_table_end("global");
}
# Generate form end buttons
my @buts = ( );
push(@buts, [ undef, $in{'group'} ? $text{'save'} : $text{'create'} ]);
if ($in{'group'}) {
push(@buts, [ "but_clone", $text{'edit_clone'} ]);
push(@buts, [ "but_delete", $text{'delete'} ]);
}
print &ui_form_end(\@buts);
&ui_print_footer("", $text{'index_return'});

View File

@@ -1,59 +0,0 @@
#!/usr/local/bin/perl
# Show password quality and change restrictions
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'pass'} || &error($text{'pass_ecannot'});
&ui_print_header(undef, $text{'pass_title'}, "");
my %miniserv;
&get_miniserv_config(\%miniserv);
print &ui_form_start("save_pass.cgi");
print &ui_table_start($text{'pass_header'}, undef, 2);
# Minimum password size
print &ui_table_row($text{'pass_minsize'},
&ui_opt_textbox("minsize", $miniserv{'pass_minsize'}, 5,
$text{'pass_nominsize'})." ".$text{'edit_chars'});
# Regexps password must match
print &ui_table_row($text{'pass_regexps'},
&ui_textarea("regexps",
join("\n", split(/\t+/, $miniserv{'pass_regexps'})), 5, 60));
# Human-readable description of regexp
print &ui_table_row($text{'pass_regdesc'},
&ui_textbox("regdesc", $miniserv{'pass_regdesc'}, 60));
# Days before forced change
print &ui_table_row($text{'pass_maxdays'},
&ui_opt_textbox("maxdays", $miniserv{'pass_maxdays'}, 5,
$text{'pass_nomaxdays'})." ".$text{'pass_days'});
# Days before lockout
print &ui_table_row($text{'pass_lockdays'},
&ui_opt_textbox("lockdays", $miniserv{'pass_lockdays'}, 5,
$text{'pass_nolockdays'})." ".$text{'pass_days'});
# Disallow use of username
print &ui_table_row($text{'pass_nouser'},
&ui_yesno_radio("nouser", $miniserv{'pass_nouser'}));
# Disallow dictionary words
print &ui_table_row($text{'pass_nodict'},
&ui_yesno_radio("nodict", $miniserv{'pass_nodict'}));
# Number of old passwords to reject
print &ui_table_row($text{'pass_oldblock'},
&ui_opt_textbox("oldblock", $miniserv{'pass_oldblock'}, 5,
$text{'pass_nooldblock'})." ".$text{'pass_pass'});
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
&ui_print_footer("", $text{'index_return'});

View File

@@ -1,32 +0,0 @@
#!/usr/local/bin/perl
# Show RBAC status
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %gconfig, %access, $module_name, $module_root_directory);
$access{'rbacenable'} || &error($text{'rbac_ecannot'});
&ui_print_header(undef, $text{'rbac_title'}, "");
print "$text{'rbac_desc'}<p>\n";
if ($gconfig{'os_type'} ne 'solaris') {
print &text('rbac_esolaris', $gconfig{'real_os_type'}),"<p>\n";
}
elsif (!&supports_rbac()) {
if (&foreign_available("cpan")) {
print &text('rbac_eperl', "<tt>Authen::SolarisRBAC</tt>",
"../cpan/download.cgi?source=0&local=$module_root_directory/Authen-SolarisRBAC-0.1.tar.gz&mode=2&return=/$module_name/&returndesc=".&urlize($text{'index_return'})),"<p>\n";
}
else {
print &text('rbac_ecpan', "<tt>Authen::SolarisRBAC</tt>"),
"<p>\n";
}
}
else {
print "$text{'rbac_ok'}<p>\n";
}
&ui_print_footer("", $text{'index_return'});

View File

@@ -1,114 +0,0 @@
#!/usr/local/bin/perl
# Show form for an external user / group database
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'sql'} || &error($text{'sql_ecannot'});
&ui_print_header(undef, $text{'sql_title'}, "");
my %miniserv;
&get_miniserv_config(\%miniserv);
print &ui_form_start("save_sql.cgi");
print &ui_table_start($text{'sql_header'}, undef, 2);
my ($proto, $user, $pass, $host, $prefix, $args) =
&split_userdb_string($miniserv{'userdb'});
$proto ||= '';
# Build inputs for MySQL backend
my @mysqlgrid = ( );
push(@mysqlgrid,
$text{'sql_host'},
&ui_textbox("mysql_host", $proto eq "mysql" ? $host : "", 30));
push(@mysqlgrid,
$text{'sql_user'},
&ui_textbox("mysql_user", $proto eq "mysql" ? $user : "", 30));
push(@mysqlgrid,
$text{'sql_pass'},
&ui_textbox("mysql_pass", $proto eq "mysql" ? $pass : "", 30));
push(@mysqlgrid,
$text{'sql_db'},
&ui_textbox("mysql_db", $proto eq "mysql" ? $prefix : "", 30));
my $mysqlgrid = &ui_grid_table(\@mysqlgrid, 2, 100);
# Build inputs for PostgreSQL backend
my @postgresqlgrid = ( );
push(@postgresqlgrid,
$text{'sql_host'},
&ui_textbox("postgresql_host", $proto eq "postgresql" ? $host : "", 30));
push(@postgresqlgrid,
$text{'sql_user'},
&ui_textbox("postgresql_user", $proto eq "postgresql" ? $user : "", 30));
push(@postgresqlgrid,
$text{'sql_pass'},
&ui_textbox("postgresql_pass", $proto eq "postgresql" ? $pass : "", 30));
push(@postgresqlgrid,
$text{'sql_db'},
&ui_textbox("postgresql_db", $proto eq "postgresql" ? $prefix : "", 30));
my $postgresqlgrid = &ui_grid_table(\@postgresqlgrid, 2, 100);
# Build inputs for LDAP backend
my @ldapgrid = ( );
push(@ldapgrid,
$text{'sql_host'},
&ui_textbox("ldap_host", $proto eq "ldap" ? $host : "", 30));
push(@ldapgrid,
$text{'sql_ssl'},
&ui_radio("ldap_ssl", $args->{'scheme'} eq 'ldaps' ? 1 :
$args->{'tls'} ? 2 : 0,
[ [ 0, $text{'sql_ssl0'} ],
[ 1, $text{'sql_ssl1'} ],
[ 2, $text{'sql_ssl2'} ] ]));
push(@ldapgrid,
$text{'sql_user'},
&ui_textbox("ldap_user", $proto eq "ldap" ? $user : "", 30));
push(@ldapgrid,
$text{'sql_pass'},
&ui_textbox("ldap_pass", $proto eq "ldap" ? $pass : "", 30));
push(@ldapgrid,
$text{'sql_prefix'},
&ui_textbox("ldap_prefix", $proto eq "ldap" ? $prefix : "", 30));
push(@ldapgrid,
$text{'sql_userclass'},
&ui_textbox("ldap_userclass", $proto eq "ldap" && $args->{'userclass'} ?
$args->{'userclass'} : "webminUser", 30));
push(@ldapgrid,
$text{'sql_groupclass'},
&ui_textbox("ldap_groupclass", $proto eq "ldap" && $args->{'groupclass'} ?
$args->{'groupclass'} : "webminGroup",30));
push(@ldapgrid,
&ui_button($text{'sql_schema'}, undef, 0,
"onClick='window.location=\"schema.cgi\"'"), "");
my $ldapgrid = &ui_grid_table(\@ldapgrid, 2, 100);
print &ui_table_row(undef,
&ui_radio_table("proto", $proto,
[ [ '', $text{'sql_none'} ],
[ 'mysql', $text{'sql_mysql'}, $mysqlgrid ],
[ 'postgresql', $text{'sql_postgresql'}, $postgresqlgrid ],
[ 'ldap', $text{'sql_ldap'}, $ldapgrid ] ]), 2);
print &ui_table_row(undef,
&ui_radio("addto", int($miniserv{'userdb_addto'} || 0),
[ [ 0, $text{'sql_addto0'} ],
[ 1, $text{'sql_addto1'} ] ]), 2);
print &ui_table_row(undef,
&ui_radio("nocache", int($miniserv{'userdb_nocache'} || 0),
[ [ 0, $text{'sql_nocache0'} ],
[ 1, $text{'sql_nocache1'} ] ]), 2);
print &ui_table_row(undef,
&ui_opt_textbox("timeout", $miniserv{'userdb_cache_timeout'},
5, $text{'sql_timeout_def'}, $text{'sql_timeout_for'}).
" ".$text{'sql_timeout_secs'});
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
&ui_print_footer("", $text{'index_return'});

View File

@@ -1,44 +0,0 @@
#!/usr/local/bin/perl
# edit_sync.cgi
# Display unix/webmin user synchronization
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'sync'} && $access{'create'} && $access{'delete'} ||
&error($text{'sync_ecannot'});
&ui_print_header(undef, $text{'sync_title'}, "");
my @glist = &list_groups();
if (!@glist) {
print "<p>$text{'sync_nogroups'}<p>\n";
&ui_print_footer("", $text{'index_return'});
exit;
}
print &ui_form_start("save_sync.cgi");
print &ui_table_start(undef, undef, 2);
# Sync on creation / deletion
print &ui_table_row($text{'sync_when'},
&ui_checkbox("create", 1, $text{'sync_create'}, $config{'sync_create'}).
"<br>\n".
&ui_checkbox("delete", 1, $text{'sync_delete'}, $config{'sync_delete'}).
"<br>\n".
&ui_checkbox("modify", 1, $text{'sync_modify'}, $config{'sync_modify'}).
"<br>\n".
&ui_checkbox("unix", 1, $text{'sync_unix'}, $config{'sync_unix'}));
# Assign new users to group
print &ui_table_row($text{'sync_group'},
&ui_select("group", $config{'sync_group'},
[ map { $_->{'name'} } @glist ]));
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
&ui_print_footer("", $text{'index_return'});

View File

@@ -1,91 +0,0 @@
#!/usr/local/bin/perl
# edit_unix.cgi
# Choose a user whose permissions will be used for logins that don't
# match any webmin user, but have unix accounts
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'unix'} && $access{'create'} && $access{'delete'} ||
&error($text{'unix_ecannot'});
&ui_print_header(undef, $text{'unix_title'}, "");
print "$text{'unix_desc'}<p>\n";
my %miniserv;
&get_miniserv_config(\%miniserv);
print &ui_form_start("save_unix.cgi", "post");
print &ui_table_start($text{'unix_header'}, undef, 2);
# Enable Unix auth
my @unixauth = &get_unixauth(\%miniserv);
my $utable = "";
$utable .= &ui_radio("unix_def", @unixauth ? 0 : 1,
[ [ 1, $text{'unix_def'} ], [ 0, $text{'unix_sel'} ] ])."<br>\n";
$utable .= &ui_columns_start([ $text{'unix_mode'}, $text{'unix_who'},
$text{'unix_to'} ]);
my $i = 0;
my @webmins = map { [ $_->{'name'} ] }
sort { $a->{'name'} cmp $b->{'name'} } &list_users();
foreach my $ua (@unixauth, [ ], [ ]) {
$utable .= &ui_columns_row([
&ui_select("mode_$i", !defined($ua->[0]) ? 0 :
$ua->[0] eq "" ? 0 :
$ua->[0] eq "*" ? 1 :
$ua->[0] =~ /^\@/ ? 2 : 3,
[ [ 0, " " ],
[ 1, $text{'unix_mall'} ],
[ 2, $text{'unix_group'} ],
[ 3, $text{'unix_user'} ] ]),
&ui_textbox("who_$i", $ua->[0] eq "*" || $ua->[0] eq "" ? "" :
$ua->[0] =~ /^\@(.*)$/ ? $1 : $ua->[0], 20),
&ui_select("to_$i", $ua->[1], \@webmins),
]);
$i++;
}
$utable .= &ui_columns_end();
print &ui_table_row($text{'unix_utable'}, $utable);
# Allow users who can sudo to root?
print &ui_table_row("",
&ui_checkbox("sudo", 1, $text{'unix_sudo'},
$miniserv{'sudo'}));
# Allow PAM-only users?
print &ui_table_row("",
&ui_checkbox("pamany", 1, &text('unix_pamany',
&ui_select("pamany_user",
$miniserv{'pamany'},
\@webmins)),
$miniserv{'pamany'}));
print &ui_table_hr();
# Who can do Unix auth?
my $users = $miniserv{"allowusers"} ?
join("\n", split(/\s+/, $miniserv{"allowusers"})) :
$miniserv{"denyusers"} ?
join("\n", split(/\s+/, $miniserv{"denyusers"})) : "";
print &ui_table_row($text{'unix_restrict2'},
&ui_radio("access", $miniserv{"allowusers"} ? 1 :
$miniserv{"denyusers"} ? 2 : 0,
[ [ 0, $text{'unix_all'} ],
[ 1, $text{'unix_allow'} ],
[ 2, $text{'unix_deny'} ] ])."<br>\n".
&ui_textarea("users", $users, 6, 60));
# Block login by shell?
print &ui_table_row("",
&ui_checkbox("shells_deny", 1, $text{'unix_shells'},
$miniserv{'shells_deny'} ? 1 : 0)." ".
&ui_filebox("shells", $miniserv{'shells_deny'} || "/etc/shells", 40));
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
&ui_print_footer("", $text{'index_return'});

View File

@@ -1,465 +0,0 @@
#!/usr/local/bin/perl
# edit_user.cgi
# Edit a new or existing webmin user
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %gconfig, %access, $config_directory, $base_remote_user, $remote_user);
&foreign_require("webmin", "webmin-lib.pl");
&ReadParse();
my ($u, %user, $safe);
if ($in{'user'}) {
# Editing an existing user
&can_edit_user($in{'user'}) || &error($text{'edit_euser'});
&ui_print_header(undef, $text{'edit_title'}, "");
$u = &get_user($in{'user'});
$u || &error($text{'edit_egone'});
%user = %$u;
my %gacl = &get_module_acl($in{'user'}, '');
$safe = $gacl{'_safe'};
}
else {
# Creating a new user
$access{'create'} || &error($text{'edit_ecreate'});
if ($in{'clone'}) {
# Initial settings come from clone
$u = &get_user($in{'clone'});
%user = %$u;
delete($user{'name'});
my %gacl = &get_module_acl($in{'clone'}, '');
$safe = $gacl{'_safe'};
}
else {
# User starts out empty
%user = ( );
$safe = $in{'safe'};
}
&ui_print_header(undef, $safe ? $text{'edit_title3'}
: $text{'edit_title2'}, "");
}
my $me = &get_user($base_remote_user);
# Give up if readonly
if ($user{'readonly'} && !$in{'readwrite'}) {
my %minfo = &get_module_info($user{'readonly'});
print &text('edit_readonly', $minfo{'desc'},
"edit_user.cgi?user=$in{'user'}&readwrite=1"),"<p>\n";
&ui_print_footer("", $text{'index_return'});
exit;
}
print &ui_form_start("save_user.cgi", "post");
if ($in{'user'}) {
print &ui_hidden("old", $user{'name'});
print &ui_hidden("oldpass", $user{'pass'});
}
if ($in{'clone'}) {
print &ui_hidden("clone", $in{'clone'});
}
print &ui_hidden("safe", $safe);
print &ui_hidden_table_start($text{'edit_rights'}, "width=100%", 2, "rights",
1, [ "width=30%" ]);
# Username
print &ui_table_row($text{'edit_user'},
$access{'rename'} || !$in{'user'} ?
&ui_textbox("name", $user{'name'}, 30,
0, undef, "autocomplete=off") : $user{'name'});
# Source user for clone
if ($in{'clone'}) {
print &ui_table_row($text{'edit_cloneof'}, "<tt>$in{'clone'}</tt>");
}
# Find and show parent group
my @glist = &list_groups();
my @mcan = $access{'gassign'} eq '*' ?
( ( map { $_->{'name'} } @glist ), '_none' ) :
split(/\s+/, $access{'gassign'});
my %gcan = map { $_, 1 } @mcan;
my $memg;
if (@glist && %gcan) {
my @opts = ( );
if ($gcan{'_none'}) {
push(@opts, [ undef, "&lt;$text{'edit_none'}&gt;" ]);
}
foreach my $g (@glist) {
if (&indexof($user{'name'}, @{$g->{'members'}}) >= 0 ||
$in{'clone'} &&
&indexof($in{'clone'}, @{$g->{'members'}}) >= 0) {
$memg = $g;
}
next if (!$gcan{$g->{'name'}} && $memg ne $g);
push(@opts, [ $g->{'name'} ]);
}
print &ui_table_row($text{'edit_group'},
&ui_select("group", $memg->{'name'}, \@opts));
}
# Show password type menu and current password
my $passmode = !$in{'user'} ? 0 :
$user{'pass'} eq 'x' ? 3 :
$user{'sync'} ? 2 :
$user{'pass'} eq 'e' ? 5 :
$user{'pass'} eq '*LK*' ? 4 : 1;
my %miniserv;
&get_miniserv_config(\%miniserv);
my @opts = ( [ 0, "$text{'edit_set'} .." ] );
if ($in{'user'}) {
push(@opts, [ 1, $text{'edit_dont'} ]);
}
push(@opts, [ 3, $text{'edit_unix'} ]);
if ($user{'sync'}) {
push(@opts, [ 2, $text{'edit_same'} ]);
}
if ($miniserv{'extauth'}) {
push(@opts, [ 5, $text{'edit_extauth'} ]);
}
push(@opts, [ 4, $text{'edit_lock'} ]);
my ($lockbox, $tempbox) = ("", "");
if ($passmode == 1) {
$lockbox = &ui_checkbox("lock", 1, $text{'edit_templock'},
$user{'pass'} =~ /^\!/ ? 1 : 0);
}
if ($passmode != 3 && $passmode != 4) {
$tempbox = &ui_checkbox("temp", 1, $text{'edit_temppass'},
$user{'temppass'});
}
my $expmsg = "";
if ($user{'lastchange'} && $miniserv{'pass_maxdays'}) {
my $daysold = int((time() - $user{'lastchange'})/(24*60*60));
if ($miniserv{'pass_lockdays'} &&
$daysold > $miniserv{'pass_lockdays'}) {
$expmsg = "<br>"."<font color=#ff0000>".
&text('edit_passlocked', $daysold)."</font>";
}
elsif ($daysold > $miniserv{'pass_maxdays'}) {
$expmsg = "<br>"."<font color=#ffaa00>".
&text('edit_passmax', $daysold)."</font>";
}
elsif ($daysold) {
$expmsg = "<br>".&text('edit_passold', $daysold);
}
else {
$expmsg = "<br>".$text{'edit_passtoday'};
}
}
my $js = "onChange='form.pass.disabled = value != 0;'";
print &ui_table_row($text{'edit_pass'},
&ui_select("pass_def", $passmode, \@opts, 1, 0, 0, 0, $js)." ".
&ui_password("pass", undef, 25, $passmode != 0, undef,
"autocomplete=off").
($lockbox || $tempbox ? "<br>" : "").$lockbox.$tempbox.$expmsg);
# Real name
print &ui_table_row($text{'edit_real'},
&ui_textbox("real", $user{'real'}, 60));
# Storage type
if ($in{'user'}) {
print &ui_table_row($text{'edit_proto'},
$text{'edit_proto_'.($user{'proto'} || '')});
}
# Safe or not?
my $smsg;
if ($in{'user'} && $safe) {
$smsg = &ui_radio("unsafe", 0, [ [ 0, $text{'edit_safe1'} ],
[ 1, $text{'edit_safe0'} ] ]);
}
else {
$smsg = $safe ? $text{'edit_safe1'} : $text{'edit_safe0'};
}
print &ui_table_row($text{'edit_safe'}, $smsg);
print &ui_hidden_table_end("rights");
# Start of UI options section
my $showui = $access{'chcert'} || $access{'lang'} ||
$access{'cats'} || $access{'theme'};
if ($showui) {
print &ui_hidden_table_start($text{'edit_ui'}, "width=100%", 2, "ui",
0, [ "width=30%" ]);
}
if ($access{'chcert'}) {
# SSL certificate name
print &ui_table_row($text{'edit_cert'},
&ui_opt_textbox("cert", $user{'cert'}, 50, $text{'edit_none'}));
}
if ($access{'lang'}) {
# Current language
my $ulang = safe_language($user{'lang'});
print &ui_table_row($text{'edit_lang'},
&ui_radio("lang_def", $ulang ? 0 : 1,
[ [ 1, $text{'default'} ],
[ 0, &ui_select("lang", $ulang,
[ map { [ $_->{'lang'}, $_->{'desc'}."" ] }
&list_languages() ]) ]
]));
}
if ($access{'locale'}) {
# Current locale
eval "use DateTime; use DateTime::Locale; use DateTime::TimeZone;";
if (!$@ && $] > 5.011) {
my $locales = &list_locales();
my %localesrev = reverse %{$locales};
my $locale_auto = &parse_accepted_language();
print &ui_table_row($text{'edit_locale'},
&ui_radio("locale_def", $user{'locale'} ? 0 : 1,
[ [ 1, $text{'default'} ],
[ 0, &ui_select("locale", $user{'locale'} || $gconfig{'locale'} || &get_default_system_locale(),
[ map { [ $localesrev{$_}, $_ ] } sort values %{$locales} ]) ] ]),
undef, [ "valign=middle","valign=middle" ]);
}
}
if ($access{'cats'}) {
# Show categorized modules?
print &ui_table_row($text{'edit_notabs'},
&ui_radio("notabs", $user{'notabs'} || 0,
[ [ 1, $text{'yes'} ],
[ 2, $text{'no'} ],
[ 0, $text{'default'} ] ]));
}
my @all = &webmin::list_visible_themes($user{'theme'});
my @themes = grep { !$_->{'overlay'} } @all;
my @overlays = grep { $_->{'overlay'} } @all;
if ($access{'theme'}) {
# Current theme
my @topts = ( );
push(@topts, !$user{'theme'} ? [ '', $text{'edit_themedef'} ] : ());
foreach my $t (@themes) {
push(@topts, [ $t->{'dir'}, $t->{'desc'} ]);
}
print &ui_table_row($text{'edit_theme'},
&ui_radio("theme_def", defined($user{'theme'}) ? 0 : 1,
[ [ 1, $text{'edit_themeglobal'} ],
[ 0, &ui_select("theme", $user{'theme'}, \@topts) ] ]));
}
if ($access{'theme'} && @overlays) {
# Overlay theme, if any
print &ui_table_row($text{'edit_overlay'},
&ui_radio("overlay_def", defined($user{'overlay'}) ? 0 : 1,
[ [ 1, $text{'edit_overlayglobal'} ],
[ 0, &ui_select("overlay", $user{'overlay'},
[ map { [ $_->{'dir'}, $_->{'desc'} ] } @overlays ]
) ] ]));
}
if ($showui) {
print &ui_hidden_table_end("ui");
}
# Start of security options section
my $showsecurity = $access{'logouttime'} || $access{'ips'} ||
$access{'minsize'} ||
&supports_rbac() && $access{'mode'} == 0 || $access{'times'};
if ($showsecurity) {
print &ui_hidden_table_start($text{'edit_security'}, "width=100%", 2,
"security", 0, [ "width=30%" ]);
}
if ($access{'logouttime'}) {
# Show logout time
print &ui_table_row($text{'edit_logout'},
&ui_opt_textbox("logouttime", $user{'logouttime'}, 5,
$text{'default'})." ".$text{'edit_mins'});
}
if ($access{'minsize'}) {
# Show minimum password length, for just this user
print &ui_table_row($text{'edit_minsize'},
&ui_opt_textbox("minsize", $user{'minsize'}, 5,
$text{'default'})." ".$text{'edit_chars'});
}
if ($access{'nochange'} && $miniserv{'pass_maxdays'}) {
# Opt out of forced password change, for this user
print &ui_table_row($text{'edit_nochange'},
&ui_radio("nochange", $user{'nochange'},
[ [ 0, $text{'yes'} ], [ 1, $text{'no'} ] ]));
}
if ($access{'ips'}) {
# Allowed IP addresses
print &ui_table_row(&hlink("<b>$text{'edit_ips'}</b>", "ips"),
&ui_radio("ipmode", $user{'allow'} ? 1 :
$user{'deny'} ? 2 : 0,
[ [ 0, $text{'edit_all'}."<br>" ],
[ 1, $text{'edit_allow'}."<br>" ],
[ 2, $text{'edit_deny'}."<br>" ] ]).
&ui_textarea("ips",
join("\n", split(/\s+/, $user{'allow'} ||
$user{'deny'} || "")),
4, 30));
}
if (&supports_rbac() && $access{'mode'} == 0) {
# Deny access to modules not managed by RBAC?
print &ui_table_row($text{'edit_rbacdeny'},
&ui_radio("rbacdeny", $user{'rbacdeny'} ? 1 : 0,
[ [ 0, $text{'edit_rbacdeny0'} ],
[ 1, $text{'edit_rbacdeny1'} ] ]));
}
if ($access{'times'}) {
# Show allowed days of the week
my %days = map { $_, 1 } split(/,/, $user{'days'} || '');
my $daysels = "";
for(my $i=0; $i<7; $i++) {
$daysels .= &ui_checkbox("days", $i, $text{'day_'.$i},
$days{$i});
}
print &ui_table_row($text{'edit_days'},
&ui_radio("days_def", !defined($user{'days'}) || $user{'days'} eq '' ? 1 : 0,
[ [ 1, $text{'edit_alldays'} ],
[ 0, $text{'edit_seldays'} ] ])."<br>".
$daysels);
# Show allow hour/minute range
my ($hf, $mf) = split(/\./, $user{'hoursfrom'} || '');
my ($ht, $mt) = split(/\./, $user{'hoursto'} || '');
print &ui_table_row($text{'edit_hours'},
&ui_radio("hours_def", !defined($hf) || $hf eq '' ? 1 : 0,
[ [ 1, $text{'edit_allhours'} ],
[ 0, &text('edit_selhours',
&ui_textbox("hours_hfrom", $hf, 2),
&ui_textbox("hours_mfrom", $mf, 2),
&ui_textbox("hours_hto", $ht, 2),
&ui_textbox("hours_mto", $mt, 2)) ] ]));
}
# Two-factor details
if ($user{'twofactor_provider'}) {
my ($prov) = grep { $_->[0] eq $user{'twofactor_provider'} }
&webmin::list_twofactor_providers();
print &ui_table_row($text{'edit_twofactor'},
&text('edit_twofactorprov', "<i>$prov->[1]</i>",
"<tt>$user{'twofactor_id'}</tt>")."<br>\n".
&ui_checkbox('cancel', 1, $text{'edit_twofactorcancel'}, 0));
}
elsif ($miniserv{'twofactor_provider'}) {
print &ui_table_row($text{'edit_twofactor'},
$text{'edit_twofactornone'}." ".
&ui_submit($text{'edit_twofactoradd'}, "twofactor"));
}
print &ui_hidden_table_end("security");
# Work out which modules can be selected
@mcan = $access{'mode'} == 1 ? @{$me->{'modules'}} :
$access{'mode'} == 2 ? split(/\s+/, $access{'mods'}) :
&list_modules();
my (%mcan, %has);
map { $mcan{$_}++ } @mcan;
map { $has{$_}++ } @{$user{'modules'}};
# Start of modules section
my @groups = &list_groups();
print &ui_hidden_table_start(@groups ? $text{'edit_modsg'} : $text{'edit_mods'},
"width=100%", 2, "mods");
# Build list of modules, based on safe mode
my @allmods = &list_module_infos();
if ($safe) {
@allmods = grep { $has{$_->{'dir'}} ||
&get_safe_acl($_->{'dir'}) } @allmods;
}
# Show available modules, under categories
my @mlist = grep { $access{'others'} || $has{$_->{'dir'}} ||
$mcan{$_->{'dir'}} } @allmods;
my @links = ( &select_all_link("mod", 0, $text{'edit_selall'}),
&select_invert_link("mod", 0, $text{'edit_invert'}) );
my @cats = &unique(map { $_->{'category'} || '' } @mlist);
my %catnames;
&read_file("$config_directory/webmin.catnames", \%catnames);
my $grids = "";
foreach my $c (sort { $b cmp $a } @cats) {
my @cmlist = grep { ($_->{'category'} || '') eq $c } @mlist;
$grids .= "<b>".($catnames{$c} ||
$text{'category_'.$c} || '')."</b><br>\n";
my @grid = ( );
my $sw = 0;
foreach my $m (@cmlist) {
my $md = $m->{'dir'};
my $fromgroup = $memg &&
&indexof($md, @{$memg->{'modules'}}) >= 0;
if ($mcan{$md} && $fromgroup) {
# Module comes from group
push(@grid, (sprintf "<img src=images/%s.gif> %s\n",
$has{$md} ? 'tick' : 'empty', $m->{'desc'}).
($has{$md} ? &ui_hidden("mod", $md) : ""));
}
elsif ($mcan{$md}) {
my $label;
if ($access{'acl'} && $in{'user'} && !$safe) {
# Show link for editing ACL
$label = ui_link("edit_acl.cgi?" .
"mod=" . urlize($m->{'dir'}) .
"&user=". urlize($in{'user'}),
$m->{'desc'}) . "\n";
}
else {
# No privileges to edit ACL
$label = $m->{'desc'};
}
push(@grid, &ui_checkbox("mod", $md, $label,$has{$md}));
}
else {
push(@grid, (sprintf "<img src=images/%s.gif> %s\n",
$has{$md} ? 'tick' : 'empty', $m->{'desc'}));
}
}
$grids .= &ui_grid_table(\@grid, 2, 100, [ "width=50%", "width=50%" ]);
}
print &ui_table_row(undef, &ui_links_row(\@links).
$grids.
&ui_links_row(\@links), 2);
print &ui_hidden_table_end("mods");
# Add global ACL section, but only if not set from the group
my $groupglobal = $memg && -r "$config_directory/$memg->{'name'}.acl";
if ($access{'acl'} && !$groupglobal && $in{'user'} && !$safe) {
print &ui_hidden_table_start($text{'edit_global'}, "width=100%", 2,
"global", 0, [ "width=30%" ]);
my %uaccess;
%uaccess = &get_module_acl($in{'user'}, "", 1);
print &ui_hidden("acl_security_form", 1);
&foreign_require("", "acl_security.pl");
&foreign_call("", "acl_security_form", \%uaccess);
print &ui_hidden_table_end("global");
}
# Generate form end buttons
my @buts = ( );
push(@buts, [ undef, $in{'user'} ? $text{'save'} : $text{'create'} ]);
if ($in{'user'}) {
if ($access{'create'}) {
push(@buts, [ "but_clone", $text{'edit_clone'} ]);
}
if (&foreign_available("webminlog")) {
push(@buts, [ "but_log", $text{'edit_log'} ]);
}
if ($access{'switch'} && $main::session_id && $in{'user'} ne $remote_user) {
push(@buts, [ "but_switch", $text{'edit_switch'} ]);
}
if ($access{'delete'}) {
push(@buts, [ "but_delete", $text{'delete'} ]);
}
}
print &ui_form_end(\@buts);
&ui_print_footer("", $text{'index_return'});

View File

@@ -1,19 +0,0 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
do 'acl-lib.pl';
our ($config_directory);
sub feedback_files
{
return ( "$config_directory/miniserv.conf",
"$config_directory/miniserv.users",
"$config_directory/webmin.acl",
"$config_directory/webmin.groups",
"$config_directory/config" );
}
1;

View File

@@ -1 +0,0 @@
<header> IP-toegangsbeheer </header> Gebruiker-IP-toegangsbeheer werk op dieselfde manier as die globale IP-toegangsbeheer in die Webmin Configuration-module. Slegs as &#39;n gebruiker die globale beheermaatreëls deurgaan, sal ook diegene hier gekontroleer word. <p><footer>

View File

@@ -1 +0,0 @@
<header> التحكم في الوصول IP </header> يعمل التحكم في وصول IP للمستخدم بنفس الطريقة التي يعمل بها التحكم العام في الوصول إلى IP في وحدة تكوين Webmin. فقط إذا اجتاز المستخدم عناصر التحكم العامة ، فسيتم فحصها هنا أيضًا. <p style=";text-align:right;direction:rtl"><footer>

View File

@@ -1 +0,0 @@
<header> Кантроль доступу IP </header> Карыстальніцкі кантроль доступу да IP працуе гэтак жа, як глабальны кантроль доступу да IP у модулі канфігурацыі Webmin. Толькі калі карыстальнік пройдзе глабальныя элементы кіравання, праверка будзе праверана і тут. <p><footer>

View File

@@ -1 +0,0 @@
<header> IP контрол на достъпа </header> Потребителският контрол на достъп до IP работи по същия начин като глобалния контрол на достъпа до IP в модула за конфигуриране на Webmin. Само ако потребителят премине глобалните контроли, тези тук също ще бъдат проверени. <p><footer>

View File

@@ -1,8 +0,0 @@
<header>Control d'Accés IP</header>
El control d'accés IP d'usuari funciona de la mateixa manera que el control
d'accés IP global del mòdul de Configuració de Webmin. Només si un usuari passa
els controls globals es comprovaran també aquí aquests. <p>
<footer>

View File

@@ -1 +0,0 @@
<header> Řízení přístupu IP </header> Řízení přístupu uživatelů IP funguje stejným způsobem jako globální řízení přístupu IP v modulu Webmin Configuration. Pouze v případě, že uživatel předá globální ovládací prvky, budou také ty zkontrolovány. <p><footer>

View File

@@ -1,5 +0,0 @@
<header>IP adgangskontrol</header>
Bruger IP adgangskontrol virker på samme måde som den globale IP adgangskontrol i Webmin konfigurationsmodulet. Kun hvis en bruger passerer den globale adgangskontrol vil denne også blive tjekket.
<footer>

View File

@@ -1,5 +0,0 @@
<header>IP-Zugriffskontrolle</header>
Die Benutzer IP-Zugriffskontrolle funktioniert nach dem selben Prinzip wie die globale IP-Zugriffskontrolle im Webminkonfiguration-Modul. Nur wenn ein Benutzer durch die globalen IP-Zugriffskontrollen Zugang erhält wird zusätzlich die benutzerdefinierte IP-Zugriffkontrolle angewendet.
<footer>

View File

@@ -1 +0,0 @@
<header> Έλεγχος πρόσβασης IP </header> Ο έλεγχος πρόσβασης IP χρήστη λειτουργεί με τον ίδιο τρόπο όπως ο καθολικός έλεγχος πρόσβασης IP στη λειτουργική μονάδα Webmin Configuration. Μόνο εάν ένας χρήστης περάσει τα καθολικά στοιχεία ελέγχου, θα ελεγχθούν και αυτοί εδώ. <p><footer>

View File

@@ -1 +0,0 @@
<header> Control de acceso IP </header> El control de acceso IP del usuario funciona de la misma manera que el control de acceso IP global en el módulo de configuración de Webmin. Solo si un usuario pasa los controles globales, también se verificarán aquí. <p><footer>

View File

@@ -1 +0,0 @@
<header> IP sarbide kontrola </header> Erabiltzaileen IP sarbide kontrola Webmin Konfigurazio moduluan IP sarbide kontrol orokorraren modu berean funtzionatzen du. Erabiltzaile batek kontrol globalak gainditzen baditu hemen ere egiaztatuko dira. <p><footer>

View File

@@ -1,17 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<p dir="rtl"><b><header> مهار دسترسي IP </header>
</b>
<body>
</p>
<p dir="rtl">
<body>
<header>مهار دسترسي IP در بخش مهار دسترسي کاربران مانند مهار دسترسي IP عمومي در
بخش پيکربندي وب مين عمل مي نمايد. زماني که کاربر يک کنترل را ارسال مي کند، در اين
قسمت مورد بررسي قرار مي گيرد.</header></p>
</html>

View File

@@ -1 +0,0 @@
<header> IP-pääsyn hallinta </header> Käyttäjän IP-pääsyn hallinta toimii samalla tavalla kuin globaali IP-pääsyn hallinta Webmin-määritysmoduulissa. Vain jos käyttäjä läpäisee globaalit ohjausobjektit, myös nämä tarkistetaan. <p><footer>

View File

@@ -1,5 +0,0 @@
<header>Contrôle d'accès IP</header>
Le contrôle d'accès utilisateur par adresse IP fonctionne de la même manière que le contrôle d'accès IP global dans le module Configuration de Webmin. Seul un utilisateur ayant passé le contrôle global sera vérifié de nouveau avec ces règles.
<footer>

View File

@@ -1 +0,0 @@
<header> בקרת גישת IP </header> בקרת גישת IP של משתמשים פועלת באותו אופן כמו בקרת הגישה הגלובלית ל- IP במודול תצורת Webmin. רק אם משתמש יעבור את הפקדים הגלובליים ייבדקו גם אלה כאן. <p style=";text-align:right;direction:rtl"><footer>

View File

@@ -1 +0,0 @@
<header> IP kontrola pristupa </header> Korisnička kontrola pristupa IP funkcionira na isti način kao i globalna kontrola pristupa u modulu Konfiguracija Webmin. Samo ako korisnik prođe globalne kontrole, provjerit će se i ovdje. <p><footer>

View File

@@ -1,6 +0,0 @@
<header>IP access control</header>
User IP access control works in the same way as the global IP access control in the Webmin Configuration module. Only if a user passes the global controls will those here be checked as well. <p>
<footer>

View File

@@ -1 +0,0 @@
<header> IP hozzáférés vezérlés </header> A felhasználói IP-hozzáférés-vezérlés ugyanúgy működik, mint a globális IP-hozzáférés-vezérlés a Webmin Configuration modulban. Csak akkor, ha a felhasználó átadja a globális vezérlőelemeket, akkor itt ellenőrizni is kell. <p><footer>

View File

@@ -1,5 +0,0 @@
<header>Controllo degli accessi IP</header>
Il controllo degli accessi IP per gli utenti funziona allo stesso modo del controllo degli accessi IP globale configurabile nel modulo 'Configurazione di Webmin'. Solo se un utente soddisfa i requisiti IP impostati con il controllo globale sarà sottoposto ad un nuovo controllo impostato in questa pagina.
<footer>

View File

@@ -1 +0,0 @@
<header> IPアクセス制御</header>ユーザーIPアクセス制御は、Webmin構成モジュールのグローバルIPアクセス制御と同じように機能します。ユーザーがグローバルコントロールに合格した場合のみ、ここでもチェックされます。 <p><footer>

View File

@@ -1,6 +0,0 @@
<header>IP 접근 제어</header>
유저 IP 접근 제어 작업은 웹민 설정 모듈의 광역 IP 접근 제어와 같은 방법으로 작업 합니다.
광역 조절에서 통과된 유저는 여기에서 다시 체크가 되어집니다.
<footer>

View File

@@ -1 +0,0 @@
<header> IP prieigos kontrolė </header> Vartotojo IP prieigos kontrolė veikia taip pat, kaip ir pasaulinė IP prieigos kontrolė „Webmin Configuration“ modulyje. Tik tada, kai vartotojas perduos pasaulinius valdiklius, bus tikrinami ir šie. <p><footer>

Some files were not shown because too many files have changed in this diff Show More