Compare commits

...

625 Commits

Author SHA1 Message Date
Ilia Ross
30e6360fa2 Update CHANGELOG.md 2023-08-24 00:58:40 +03:00
Jamie Cameron
dda9290ff5 minor version bump 2023-08-23 11:53:53 -07:00
Jamie Cameron
15a00d8119 Remove perl module dependency and just use glob instead 2023-08-23 11:49:00 -07:00
Jamie Cameron
9289083171 No need for BEGIN block 2023-08-23 10:54:20 -07:00
Jamie Cameron
3d482d2bf5 Support CF-Connecting-IPv6 header 2023-08-22 18:46:43 -07:00
Jamie Cameron
318150e6b0 Merge branch 'master' of github.com:webmin/webmin 2023-08-21 17:18:53 -07:00
Jamie Cameron
8939b060b4 Clean up diff dirs so they don't get package up https://forum.virtualmin.com/t/debian-upgrade-nwe-directories-in-root-and-orig-directories-left-after-upgrade-completed/122241/8 2023-08-21 17:18:46 -07:00
Ilia Ross
4709ff6adf Add support for odd Amazon Linux interface names 2023-08-22 01:52:22 +03:00
Jamie Cameron
31af9f996c Also support CF-Connecting-IP https://github.com/webmin/webmin/issues/1956 2023-08-21 10:04:16 -07:00
Jamie Cameron
c716443737 Merge branch 'master' of github.com:webmin/webmin 2023-08-20 21:22:15 -07:00
Jamie Cameron
fd06605f51 Add support for True-Client-IP header as used by Cloudflare https://github.com/webmin/webmin/issues/1956 2023-08-20 21:22:08 -07:00
Ilia Ross
c8f6b05987 Add Config::IniFiles to vendor_perl [build]
* Amazon Linux doesn't have it available anywhere
2023-08-20 15:24:12 +03:00
Ilia Ross
a90dbc5f33 Fix not to print HTML in stdout 2023-08-20 14:08:31 +03:00
Ilia Ross
7fc16f8948 Update CHANGELOG.md 2023-08-19 18:22:16 +03:00
Ilia Ross
a2f1f24a95 Fix Apache graceful restart
https://github.com/virtualmin/virtualmin-gpl/issues/613
2023-08-18 16:15:36 +03:00
Ilia Ross
825b928168 Fix not to escape HTML unless sent to UI 2023-08-18 12:57:43 +03:00
Jamie Cameron
de648c24bd Expand range of versions 2023-08-17 18:28:11 -07:00
Ilia Ross
907818d2a4 Fix SpamAssassin config for Debian 12 2023-08-17 22:45:14 +03:00
Jamie Cameron
60a79e67d4 Merge branch 'master' of github.com:webmin/webmin 2023-08-16 20:41:14 -07:00
Jamie Cameron
04a3b8b5e6 Suppress output from monitor.pl https://github.com/webmin/webmin/issues/1984 2023-08-16 20:41:04 -07:00
Ilia Ross
dd1b4bc77b Fix to also set UCF_FORCE_CONFFOLD variable
https://github.com/virtualmin/virtualmin-gpl/issues/612
2023-08-16 15:12:18 +03:00
Ilia Ross
5156a472be Fix a bug in regex to correctly grep wack [build]
https://sourceforge.net/p/webadmin/discussion/55377/thread/78e5aa05f3
2023-08-16 13:48:54 +03:00
Ilia Ross
185e7db58d Revert "Revert "Fix to priorities ip command usage""
This reverts commit f8ec917bc5.
2023-08-16 13:03:51 +03:00
Ilia Ross
f8ec917bc5 Revert "Fix to priorities ip command usage"
This reverts commit 3b36dfa8ad.
2023-08-16 13:01:17 +03:00
Jamie Cameron
1016ec5f1d HTML escape more fields 2023-08-15 22:16:09 -07:00
Jamie Cameron
8a6d4cfefd Escape some more inputs 2023-08-15 22:15:10 -07:00
Jamie Cameron
7cbbdc898a More HTML escaping 2023-08-15 22:13:14 -07:00
Jamie Cameron
8db4074d4d HTML escape more stuff 2023-08-15 21:18:50 -07:00
Jamie Cameron
f6c48e7a11 Merge branch 'master' of github.com:webmin/webmin 2023-08-15 21:14:14 -07:00
Jamie Cameron
9ae54e61bd Escape search input 2023-08-15 21:13:53 -07:00
Ilia Ross
e917f33e09 Fix to correctly compare Webmin version being semantic version 2023-08-15 17:15:13 +03:00
Jamie Cameron
38aa06b8c6 Merge branch 'master' of github.com:webmin/webmin 2023-08-14 23:03:00 -07:00
Jamie Cameron
57e710e8a6 Small code cleanup 2023-08-14 23:02:35 -07:00
Ilia Ross
0d9d978f72 Fix APT repos
https://forum.virtualmin.com/t/switch-to-new-webmin-repository-url-doesnt-work/121851/5?u=ilia
2023-08-12 11:17:33 +03:00
Jamie Cameron
196b886ddb Merge branch 'master' of github.com:webmin/webmin 2023-08-11 20:36:22 -07:00
Jamie Cameron
4197e61772 Allow use of proxied SSL client name even when in non-SSL mode https://github.com/webmin/webmin/issues/1962 2023-08-11 20:35:57 -07:00
Ilia Ross
6dc87705d9 Fix to always fix Debian repo in the new format 2023-08-11 14:05:08 +03:00
Jamie Cameron
4b59570a82 Merge branch 'master' of github.com:webmin/webmin 2023-08-10 08:14:37 -07:00
Ilia Ross
33927e07ae Fix missing semicolon 2023-08-10 15:10:04 +03:00
Ilia Ross
65444b8865 Fix Terminal focus bug 2023-08-10 14:25:00 +03:00
Jamie Cameron
5357b084af Deal with case where there is no address https://sourceforge.net/p/webadmin/bugs/5630/ 2023-08-09 22:58:31 -07:00
Ilia Ross
862bbc36df Fix to address XSS issues #4 2023-08-09 19:07:13 +03:00
Ilia Ross
e6105bb757 Fix to address XSS issues #1 2023-08-09 16:49:40 +03:00
Ilia Ross
864e0c4918 Fix Cron edit files manually page not display directories #1978 [build] 2023-08-09 14:23:41 +03:00
Ilia Ross
115c5763a3 Fix Postfix edit files manually page not display directories #1978 [build] 2023-08-09 12:46:21 +03:00
Ilia Ross
d6e307d59a Fix not to use new lines to avoid color overflow 2023-08-08 23:19:34 +03:00
iliajie
9dc21ace2d Fix CHANGELOG.md 2023-08-08 14:24:06 +03:00
iliajie
c500759d83 Fix to simplify the code 2023-08-07 21:52:22 +03:00
iliajie
736d30ef76 Fix to display error message cleanly #1975 2023-08-07 19:44:47 +03:00
Jamie Cameron
a27095f40f Merge branch 'master' of github.com:webmin/webmin 2023-08-06 09:51:06 -07:00
Jamie Cameron
60a3b3b4a9 Make sure NSEC3PARAM record is always deleted https://github.com/virtualmin/virtualmin-gpl/issues/604 2023-08-06 09:50:43 -07:00
iliajie
f932925b29 Fix support for Amazon Linux release 2023 OS [build] 2023-08-06 15:45:57 +03:00
iliajie
21e8940860 Update CHANGELOG.md [build] 2023-08-05 23:46:51 +03:00
Jamie Cameron
944794aeac Fix duplicate string 2023-08-05 13:03:12 -07:00
Jamie Cameron
00bd6cf27f Merge branch 'master' of github.com:webmin/webmin 2023-08-05 12:28:52 -07:00
Jamie Cameron
1fb3bfa6ef Update webmin from repository if a package is available 2023-08-05 12:28:06 -07:00
iliajie
da14ecbe46 Update install command to use recommends 2023-08-05 20:19:36 +03:00
Jamie Cameron
1c48f3761e Merge branch 'master' of github.com:webmin/webmin 2023-08-04 17:06:32 -07:00
Jamie Cameron
246b0018eb Hack around IMAP not supporting regexps in searches https://forum.virtualmin.com/t/usermin-email-filters/121844/4 2023-08-04 17:06:01 -07:00
iliajie
2e97b09d10 Fix to show correct locale for sudo-capable user https://github.com/webmin/authentic-theme/issues/1663
f3cc268f0c
2023-08-04 12:58:39 +03:00
iliajie
f3cc268f0c Fix to show correct locale for sudo-capable user #1663 [build] 2023-08-04 12:54:17 +03:00
iliajie
8c3973c68f Update CHANGELOG [build] 2023-08-04 00:58:02 +03:00
Jamie Cameron
33b591dfac Also check if hash format is valid for yescrypt 2023-08-03 14:49:04 -07:00
Jamie Cameron
ec0ab05782 Merge branch 'master' of github.com:webmin/webmin 2023-08-03 14:41:02 -07:00
Jamie Cameron
4b03b80912 Generate new salt if salt isn't valid for SHA 2023-08-03 14:40:16 -07:00
iliajie
d312c3e318 Add support for Amazon Linux 2023 [build] 2023-08-03 23:20:28 +03:00
iliajie
9439ba0450 Add container class 2023-08-03 21:57:03 +03:00
iliajie
bea827c0b7 Fix various XSS related issues 2023-08-03 17:21:40 +03:00
iliajie
b1ee7cbf53 Move Encode::Detect to recommends [build] 2023-08-03 14:09:13 +03:00
iliajie
f56807c023 Fix to make build conditional and test against message 2023-08-03 14:00:50 +03:00
iliajie
7b34282488 Fix to remove building on schedule 2023-08-03 13:49:20 +03:00
iliajie
31b48f8dd6 Add nightly warning 2023-08-03 13:27:18 +03:00
Jamie Cameron
8c1a74d245 More escaping of folder names 2023-08-02 23:21:25 -07:00
Jamie Cameron
6ae1061900 Escape category name 2023-08-02 21:10:35 -07:00
Jamie Cameron
7de3647f0d Escape all the places where the module description is displayed 2023-08-02 17:28:24 -07:00
iliajie
76389ea06c Fix to do more filtering to address reported XSS issue 2023-08-03 00:05:23 +03:00
iliajie
8ae4364ee1 Fix let caller do filtering 2023-08-02 23:42:17 +03:00
iliajie
054f0a254e Fix to do a bit more filtering to prevent root user XSS itself 2023-08-02 23:31:59 +03:00
iliajie
02a5982ff9 Fix for Usermin to clone Webmin repos too 2023-08-02 20:31:26 +03:00
iliajie
a835742293 webmin.dev: Deploy Webmin package 2023-08-02 20:05:55 +03:00
iliajie
2d7f299419 Fix workflows location 2023-08-02 20:04:51 +03:00
iliajie
3bd37be97b Add builds 2023-08-02 20:02:54 +03:00
iliajie
62e1b4c785 Add script to setup development repos with signing keys 2023-08-02 01:48:13 +03:00
Jamie Cameron
3671a76333 Ubuntu 23 has renamed the SSH systemd service to ssh 2023-08-01 15:39:59 -07:00
iliajie
f3652c7a87 Fix wording https://github.com/webmin/webmin/issues/1971#issuecomment-1659864264 2023-08-01 11:50:52 +03:00
Jamie Cameron
980c4c834c Merge branch 'master' of github.com:webmin/webmin 2023-07-31 11:01:35 -07:00
Jamie Cameron
df438c59ed Prevent incompatible option setting https://github.com/webmin/webmin/issues/1971 2023-07-31 11:01:27 -07:00
iliajie
932f2464bc Update CHANGELOG.md date 2023-07-31 16:52:19 +03:00
iliajie
d9ea914889 Fix to always upload to user home directory if possible 2023-07-31 03:10:00 +03:00
iliajie
1730540764 Fix to always download to user home directory if possible 2023-07-31 03:05:39 +03:00
iliajie
9454cb4a2b Merge branch 'master' of github.com:webmin/webmin 2023-07-31 02:50:57 +03:00
iliajie
355d7b5404 Fix to update CHANGELOG.md 2023-07-31 02:50:11 +03:00
iliajie
9f93c29c5f Fix more of those useless XSS 2023-07-31 02:43:25 +03:00
Jamie Cameron
43e671497a New version bump 2023-07-30 16:37:45 -07:00
iliajie
b14c1c07dc Fix to also discard any command output
Ref.: f4ad3293bf (diff-9801c20c5b4becfcc428783737908ea507bfa6387e42710a174992124d267912R64)
2023-07-30 12:23:33 +03:00
Jamie Cameron
f4ad3293bf No need to log a command that we're already capturing the output for 2023-07-29 17:51:41 -07:00
iliajie
e809329ca0 Fix to revert the fix "don't just blindly write the new key" ; fix logging 2023-07-29 22:45:44 +03:00
iliajie
3cc16bb120 Fix not to print section name if there is only one 2023-07-29 17:17:03 +03:00
iliajie
1eb43eafd2 Update key email 2023-07-29 14:28:58 +03:00
iliajie
f652def98d Merge branch 'master' of github.com:webmin/webmin 2023-07-29 11:49:44 +03:00
Jamie Cameron
392fb41a24 Make sure gzip and gunzip are installed 2023-07-28 23:30:13 -07:00
Jamie Cameron
c14b100845 Merge branch 'master' of github.com:webmin/webmin 2023-07-28 18:33:57 -07:00
Jamie Cameron
b3b5fff0dc If trusting the remote IP, also trust the proxied SSL client cert https://github.com/webmin/webmin/issues/1962 2023-07-28 18:33:48 -07:00
iliajie
ef0a48d83a Fix not to print empty section 2023-07-28 23:37:24 +03:00
iliajie
58a15dafc7 Fix fix repo script when there are multiple sources configured 2023-07-28 17:24:51 +03:00
iliajie
79f78d5e28 Fit to simplify message text for updating repo URL 2023-07-28 17:19:19 +03:00
Jamie Cameron
51e1c7bef3 Unix permission fixes 2023-07-26 21:51:05 -07:00
Jamie Cameron
5b5af3eb20 Merge branch 'master' of github.com:webmin/webmin 2023-07-26 21:50:16 -07:00
Jamie Cameron
2e93819c1b If a mail file is compressed, read it via gzip 2023-07-26 21:50:09 -07:00
iliajie
d3a10de65d Update CHANGELOG.md 2023-07-27 00:46:39 +03:00
iliajie
8ef754b477 Add error_stderr API 2023-07-26 22:38:28 +03:00
Jamie Cameron
4cbda407f9 Merge pull request #1142 from seabres/multiple_ldap_server
Allow multiple LDAP server for userdb
2023-07-25 17:17:37 -07:00
Jamie Cameron
71cce5c580 Merge branch 'master' of github.com:webmin/webmin 2023-07-25 16:04:03 -07:00
Jamie Cameron
360c27add5 Don't just blindly write the new key 2023-07-25 16:03:55 -07:00
iliajie
753290b95a Fix Squid package name 2023-07-25 21:11:38 +03:00
iliajie
ae579a2047 Fix headers names be in teletype text 2023-07-25 19:45:09 +03:00
iliajie
9746f7ea9e Add facility to check for Webmin module menu link 2023-07-24 01:01:02 +03:00
Jamie Cameron
e599e0206a Can only use ifup if innstalled 2023-07-23 08:40:27 -07:00
iliajie
f37dbd4c3d Fix to simplify wording 2023-07-22 22:22:54 +03:00
iliajie
ff42c66129 Fix to drop using official word 2023-07-22 22:20:47 +03:00
iliajie
d384e696f7 Fix to add support setting repos without human input #1961 2023-07-22 14:24:48 +03:00
iliajie
3b36dfa8ad Fix to priorities ip command usage 2023-07-22 13:31:20 +03:00
Jamie Cameron
2d900e88c8 Fix setting of default gateway https://github.com/webmin/webmin/issues/1960 2023-07-21 17:58:05 -07:00
Jamie Cameron
ba25fba714 Major version bump 2023-07-19 23:14:55 -07:00
iliajie
44fe8dd676 Fix to correctly pass screen reader option to Terminal 2023-07-19 23:15:58 +03:00
iliajie
143fb86567 Update translations 2023-07-19 20:08:41 +03:00
iliajie
dc721b2e4e Fix to support the mode without user prompt 2023-07-19 19:52:59 +03:00
iliajie
91a0e71d6f Merge branch 'master' of github.com:webmin/webmin 2023-07-19 17:21:36 +03:00
iliajie
30770eae4a Fix to format special words correctly inside config page 2023-07-19 17:21:21 +03:00
iliajie
b355fafe0d Fix to use correct label for fixed-width font 2023-07-19 17:20:51 +03:00
Jamie Cameron
076e3577ba Don't repeat check if failure was due to a timeout 2023-07-18 16:34:24 -07:00
Jamie Cameron
6493bc6564 Fix placement of button 2023-07-18 16:30:37 -07:00
Jamie Cameron
27c6a003d8 Merge pull request #1957 from webmin/dev/network-order-api
Add ability to present active interfaces the way network manager wants
2023-07-18 14:21:54 -07:00
iliajie
e9ecd9c09e Update CHANGELOG.md 2023-07-19 00:08:57 +03:00
iliajie
9135fa916b Add screen reader optional support in Terminal module 2023-07-19 00:07:55 +03:00
iliajie
8d392af6d3 Update CHANGELOG.md 2023-07-18 23:48:56 +03:00
Jamie Cameron
da5b0d2411 Merge pull request #1953 from webmin/dev/phpini-show-defaults
Add PHP module improvements
2023-07-18 13:34:15 -07:00
iliajie
cae06a79a0 Fix to use regular params 2023-07-18 22:53:58 +03:00
iliajie
1a807f5f58 Fix new line in the end of the file once again 2023-07-18 15:25:17 +03:00
iliajie
c56ea21638 Fix missing new line as in original file in master to avoid diff 2023-07-18 15:23:37 +03:00
iliajie
36095d04f8 Fix to use ip addr command only to get active interfaces 2023-07-18 15:19:29 +03:00
Jamie Cameron
8efeb1c86c Format hours and minutes the same https://github.com/webmin/authentic-theme/issues/1663 2023-07-17 18:51:02 -07:00
iliajie
582549ddb6 Fix correctly extract list of IPs ; support switching from DHCP to static 2023-07-17 15:13:45 +03:00
iliajie
04e14cc979 Add ability to present active interfaces the way network manager wants 2023-07-17 13:56:58 +03:00
Jamie Cameron
0cd5feb0a3 Set method and interfaces in one shot 2023-07-16 15:33:45 -07:00
Jamie Cameron
fd762c2f47 Add missing logging messages 2023-07-16 15:03:37 -07:00
Jamie Cameron
9aeab55a88 Don't match dynamic if we're matching it later 2023-07-16 14:39:41 -07:00
Jamie Cameron
3fb71fb569 Merge branch 'master' of github.com:webmin/webmin 2023-07-16 14:14:27 -07:00
Jamie Cameron
f4d83f5ebf Priorize the dynamically assigned IP 2023-07-16 14:14:18 -07:00
iliajie
b2f4dd4fe8 Fix to clearly say if option cannot be extracted 2023-07-16 20:35:02 +03:00
iliajie
0c575c5266 Fix not to display options that are deprecated or removed 2023-07-16 17:27:47 +03:00
iliajie
acc47ce0e7 Add PHP API for comparison and version extraction 2023-07-16 17:13:50 +03:00
iliajie
81e5120fc4 Add displaying tooltip with defaults for "PHP Variables" page 2023-07-16 15:14:23 +03:00
iliajie
281cb21cce Add displaying tooltip with defaults for "Directory Settings" page 2023-07-16 15:10:41 +03:00
iliajie
ad084a1ceb Fix to display unknown value as empty not to be confusing 2023-07-16 15:07:17 +03:00
iliajie
4b436c2f16 Add displaying tooltip with defaults for "Database Settings" page 2023-07-16 15:05:51 +03:00
iliajie
51e672b87d Add displaying tooltip with defaults for "Session Options" page 2023-07-16 14:52:59 +03:00
iliajie
f21650971e Add displaying tooltip with defaults for "Error Logging" page 2023-07-16 14:52:27 +03:00
iliajie
eccb7a169c Add displaying tooltip with defaults for "Other Settings" page 2023-07-16 14:50:33 +03:00
iliajie
77c9d1fa9c Fix tooltip content formatting if HTML is supported 2023-07-16 14:49:04 +03:00
iliajie
fb0b6b4044 Fix to simplify linkage to PHP.net 2023-07-16 13:13:08 +03:00
iliajie
deb172ca82 Fix PHP detection from the path to work for all supported distros 2023-07-16 13:09:19 +03:00
iliajie
f7dc0add11 Add initial support for displaying default PHP value 2023-07-16 03:44:10 +03:00
iliajie
915781d381 Fix typo 2023-07-16 01:36:31 +03:00
iliajie
dca48f4f00 Add support for the new link bubbles 2023-07-16 01:35:11 +03:00
iliajie
8e47199147 Fix to consider active interface using new ui_element_inline API 2023-07-15 23:28:57 +03:00
iliajie
437bdd2528 Fix typo when detecting PHP binary 2023-07-15 23:27:18 +03:00
iliajie
bedb091e56 Add ui_element_inline API and use it on the button in **Net** module 2023-07-15 14:51:54 +03:00
Jamie Cameron
323f0cc043 Use formal params 2023-07-14 16:51:25 -07:00
Jamie Cameron
df7bf3af4a Handle case where main IP is assigned by DHCP 2023-07-14 14:55:44 -07:00
Jamie Cameron
94d3727b41 Fix spacing 2023-07-14 10:20:13 -07:00
Jamie Cameron
510c7153e4 Merge branch 'master' of github.com:webmin/webmin 2023-07-14 10:18:18 -07:00
Jamie Cameron
389d061972 Use new developers key 2023-07-14 10:18:12 -07:00
iliajie
ad5e279231 wuftpd, mon, and jabber are obsolete 2023-07-14 20:14:15 +03:00
Jamie Cameron
f9bccb3853 Merge branch 'master' of github.com:webmin/webmin 2023-07-13 19:49:15 -07:00
Jamie Cameron
3c21733d57 use a safe function to rename a file 2023-07-13 19:48:51 -07:00
iliajie
0d45d61edc Fix to put error details into help bubble 2023-07-13 14:51:13 +03:00
Jamie Cameron
eb79f4c169 Add config option to force use of some authentication plugin 2023-07-12 16:55:03 -07:00
Jamie Cameron
48eb29e547 Merge branch 'master' of github.com:webmin/webmin 2023-07-12 15:52:31 -07:00
Jamie Cameron
3fe5aa8887 Grub 1 and Vgetty are obsolete https://github.com/webmin/webmin/issues/1950 2023-07-12 15:52:23 -07:00
Jamie Cameron
50e058d2b6 Merge pull request #1951 from webmin/dev/error-less-obscure
Fix to make errors less obscure
2023-07-12 14:01:28 -07:00
iliajie
2d85a2951c Fix to make errors less obscure 2023-07-12 23:40:41 +03:00
Jamie Cameron
21e4debf24 Merge pull request #1948 from webmin/dev/server-header
Add ability to control `Server:` response header #1945
2023-07-11 18:56:16 -07:00
iliajie
486b323990 Add ability to control Server: response header #1945
This change:

  1. Adds ability for an admin to set custom response header for `Server:`
  2. Fixes displaying of running Webmin version for unauthenticated user
2023-07-11 15:05:04 +03:00
iliajie
4b89587726 Merge branch 'master' of github.com:webmin/webmin 2023-07-11 13:59:10 +03:00
iliajie
f24fa4af6a Fix to always show PHP default radio 2023-07-11 13:58:43 +03:00
Jamie Cameron
dda33af768 Allow selection of default mode always https://github.com/virtualmin/virtualmin-gpl/issues/555 2023-07-10 16:35:52 -07:00
iliajie
cc05c62609 Fix sub name and add missing class name 2023-07-10 05:48:24 +03:00
iliajie
3c113c9278 Fix not to print section when there are none 2023-07-10 01:30:07 +03:00
iliajie
8b09edc5d3 Fix schedule table be tagged 2023-07-10 01:29:42 +03:00
iliajie
643ace4777 Add new API: ui_space, ui_newline, ui_text
Nothing can be thrown to the browser without being used with UI lib!
2023-07-09 23:07:59 +03:00
Jamie Cameron
097e24a7b1 Allow extra logs to end with a | indicating they are actually commands https://github.com/webmin/webmin/issues/1946 2023-07-09 10:55:48 -07:00
Jamie Cameron
f797d29b81 Fix format of disk usage table: 2023-07-08 17:18:28 -07:00
Jamie Cameron
aca381b118 Inputs can't be outside the table tags 2023-07-07 15:54:30 -07:00
iliajie
195ea913df Fix logic to check if /dev/urandom is allowed 1bc262481d (commitcomment-120432005) 2023-07-05 12:06:47 +03:00
Ilia
7232db4b57 Merge pull request #1940 from swelljoe/redhat-dir-is-deprecated
Prefer rpmbuild dir, even when building as root
2023-07-03 12:18:53 +03:00
Jamie Cameron
f688f29029 Allow editing of bridge STP field 2023-07-02 22:30:51 -07:00
Jamie Cameron
057f10d868 Fix saving of bridge interface 2023-07-02 20:38:02 -07:00
Jamie Cameron
086ebe845a Fix editing of bridge connections to interfaces 2023-07-02 18:48:35 -07:00
Joe Cooper
3e47779858 Prefer rpmbuild dir, even when building as root 2023-07-02 20:30:34 -05:00
Jamie Cameron
39132506e8 Implement creation of bridge interfaces 2023-07-02 17:25:23 -07:00
Jamie Cameron
71dc51523a Merge branch 'master' of github.com:webmin/webmin 2023-07-02 10:50:59 -07:00
Jamie Cameron
93a853f95f Work on bridge support 2023-07-01 23:16:58 -07:00
Jamie Cameron
c0edba233a Merge pull request #1939 from webmin/dev/collation-downgrade
Add ability to downgrade database collation
2023-07-01 19:11:38 -07:00
iliajie
368dacd028 Fix to simplify the code 2023-07-02 03:20:03 +03:00
iliajie
b49d4f8147 Fix to copy file permissions too 2023-07-01 22:19:30 +03:00
iliajie
8f3fb71b68 Fix label be no redundant 2023-06-30 23:30:48 +03:00
iliajie
01e4a5145d Fix label be no redundant 2023-06-30 23:02:51 +03:00
iliajie
f3bc8c9061 Fix to tighten regex match 2023-06-30 14:21:41 +03:00
iliajie
9e58110854 Fix indent 2023-06-30 13:44:47 +03:00
iliajie
2b2ead4d7d Add ability to downgrade database collation 2023-06-30 13:42:31 +03:00
iliajie
827c77c960 Add support for render addons #1656 2023-06-29 16:35:01 +03:00
iliajie
9db9582f4a Fix not to leak variable to global scope 2023-06-29 14:31:06 +03:00
iliajie
20f0538c64 Update xterm.js 2023-06-29 13:57:04 +03:00
iliajie
a026b69736 Add Terminal to be used with safe Webmin user 2023-06-29 13:07:45 +03:00
Jamie Cameron
5b760082d9 Merge branch 'master' of github.com:webmin/webmin 2023-06-28 16:19:34 -07:00
Jamie Cameron
487b11e9be Clean up code showing local disk space https://github.com/webmin/webmin/issues/1936 2023-06-28 16:19:17 -07:00
iliajie
8c236004c9 Fix last row element 2023-06-29 00:05:45 +03:00
Jamie Cameron
1025f8c657 Fix setting of virtual IPs 2023-06-28 07:39:46 -07:00
Jamie Cameron
14ad4cbf85 More work on network manager 2023-06-27 23:27:19 -07:00
Jamie Cameron
0a1f12c22b Use CLI instead of directly updating config files 2023-06-27 15:59:29 -07:00
Jamie Cameron
a9070e4bc3 Improve creation of default interface 2023-06-26 08:01:18 -07:00
Jamie Cameron
679a590b0c Merge pull request #1935 from webmin/dev/images-in-replies
Fix to integrate existing Usermin code to display inline images in replies correctly
2023-06-25 09:53:16 -07:00
iliajie
797dd6a59c Fix to correctly set existing styling for tags found in document
i.e. this will preserve existing styling if any!
2023-06-25 17:43:04 +03:00
iliajie
0b72f7f895 Fix indent 2023-06-25 16:54:25 +03:00
iliajie
6472213dcc Fix not to drop attachments 2023-06-25 16:52:10 +03:00
iliajie
80df962012 Fix to integrate existing Usermin code to display inline imgs in replies 2023-06-25 16:51:45 +03:00
iliajie
944236d454 Fix textarea to be vertically resized only and be in sync with HTML size 2023-06-25 16:09:49 +03:00
iliajie
43dc4a479e Fix not to touch image reference
https://github.com/webmin/webmin/pull/1926#issuecomment-1605882853
2023-06-25 12:38:47 +03:00
iliajie
9355b4969d Fix default HTML editor height 2023-06-24 23:28:55 +03:00
Jamie Cameron
0cd1d43fef Merge branch 'master' of github.com:webmin/webmin 2023-06-23 23:24:14 -07:00
Jamie Cameron
44b06c8908 More work on editing network manager config 2023-06-23 23:19:36 -07:00
iliajie
d78b8e0e1d Fix to embed theme styles when viewing an email too 2023-06-24 01:23:09 +03:00
iliajie
312f55fe11 Fix to update command used in man 2023-06-23 13:50:01 +03:00
Jamie Cameron
87b54273ff Merge pull request #1934 from devadattas/patch-1
Resolves Support issue for MariaDB 11 (https://github.com/webmin/webmin/issues/1933)
2023-06-22 22:07:28 -07:00
Devadatta Sahoo
dedfaa49ae Resolves https://github.com/webmin/webmin/issues/1933
Resolves https://github.com/webmin/webmin/issues/1933
2023-06-23 06:28:40 +05:30
Jamie Cameron
944400a136 Merge pull request #1931 from webmin/dev/fix-temp-dir-creation
Fix to consider temp directory may exists with incorrect permissions
2023-06-22 15:48:37 -07:00
iliajie
d3cdbbcc4b Fix to call only in HTML mode 2023-06-23 01:08:47 +03:00
iliajie
ef9e525bd6 Fix a bug loading theme iframe quote style file 2023-06-22 13:34:21 +03:00
iliajie
0754367f48 Fix to consider temp directory may exists with incorrect permissions 2023-06-22 12:32:35 +03:00
iliajie
3a7145b2e3 Fix language strings as 'warning' and 'danger' already part of UI alert 2023-06-22 11:46:38 +03:00
Jamie Cameron
8dd96e2aca Merge branch 'master' of github.com:webmin/webmin 2023-06-21 16:51:47 -07:00
Jamie Cameron
f49539ad96 Add a warning about editing Virtualmin-controlled domains 2023-06-21 16:48:51 -07:00
iliajie
739411a07e Fix navigation type detection bug 2023-06-21 18:21:42 +03:00
iliajie
ea8c76b5b8 Fix to consider framed theme to load iframe inner styles too 2023-06-21 17:53:11 +03:00
iliajie
d191f1ba92 Add to consider different navigation types 2023-06-21 16:07:42 +03:00
iliajie
444c101d19 Fix to remove outline for inner contenteditable 2023-06-21 15:40:13 +03:00
iliajie
9017d290bc Merge remote-tracking branch 'origin/master' 2023-06-21 12:42:21 +03:00
iliajie
2733f945c5 Add ability for themes to embed styles into quote iframe 2023-06-21 12:42:08 +03:00
Jamie Cameron
231df9c37f UI to edit network manager routes 2023-06-20 23:07:56 -07:00
Jamie Cameron
dbde3d370b Merge branch 'master' of github.com:webmin/webmin 2023-06-20 23:02:55 -07:00
Jamie Cameron
1e07f0c93a Add MTU support 2023-06-20 23:00:11 -07:00
iliajie
9ed3fd2237 Fix to disable ispell 2023-06-20 23:37:36 +03:00
iliajie
629ca21a3a Fix to correctly test for dark palette 2023-06-20 23:33:27 +03:00
Jamie Cameron
0f898b161b Update nameservers in netplan config 2023-06-19 20:21:39 -07:00
Jamie Cameron
de53c330d6 Support for getting and setting default gateway 2023-06-19 20:19:28 -07:00
Jamie Cameron
d9401ff1b7 Merge branch 'master' of github.com:webmin/webmin 2023-06-19 20:10:28 -07:00
Jamie Cameron
e33c5aa630 More work on network manager support: 2023-06-19 20:10:17 -07:00
Jamie Cameron
8ac62d43bd Merge pull request #1926 from webmin/dev/mail-awesome-replies
Add support for better HTML handling in email replies
2023-06-19 11:24:48 -07:00
iliajie
c2c3533e4e Fix HTML editor adding extra new line on page reload 2023-06-19 20:19:15 +03:00
iliajie
bfe966f6cf Add email styling support for Google Mail 2023-06-19 02:59:04 +03:00
iliajie
75b1401e62 Add simple algorithm to convert classes to inline styles
Tags CSS styling to inline styles is on the next and the final commit!
2023-06-19 01:10:29 +03:00
iliajie
f1159015ed Fix to perfect inner styling 2023-06-18 17:18:33 +03:00
iliajie
9c348f7909 Fix to drop pretty redundant Expert mode to: Basic, Simple, Advanced 2023-06-18 16:14:41 +03:00
iliajie
c80d854054 Drop Katex support as we cannot reliably use it in emails 2023-06-18 15:47:02 +03:00
iliajie
f6299b4e29 Add embedment of styling in our email (works everywhere but GMail) 1/2
Gmail fix is coming
2023-06-18 15:42:23 +03:00
Jamie Cameron
b91e25aa6f Clear cached postfix version on webmin upgrade 2023-06-17 22:49:05 -07:00
iliajie
a268373550 Add local editor classes and styles to inline styling in resulting HTML
1/2 - needs more improvements and optimizations - although it works already
2023-06-18 03:23:02 +03:00
iliajie
8d595a7ac5 Fix to remove empty line 2023-06-18 01:29:42 +03:00
iliajie
2065602494 Fix HTML editor tooltip z-index 2023-06-18 01:29:28 +03:00
iliajie
d27e37efbf Fix not to whitelist any attributes 2023-06-18 01:28:46 +03:00
iliajie
85f9402bfe Fix to rename theme iframe CSS file 2023-06-18 00:26:28 +03:00
iliajie
6bb6a0de01 Fix to load iframe CSS from a theme based file 2023-06-18 00:25:43 +03:00
iliajie
081dfbe373 Fix to update last message on the initial load 2023-06-17 23:37:43 +03:00
iliajie
8d330a95de Add ability to load images in quote replies 2023-06-17 22:56:25 +03:00
iliajie
ac5f974d5c Fix to allow inline images 2023-06-17 20:57:17 +03:00
iliajie
3f1306e9cf Fix iframe styling to be theme dependent 2023-06-17 19:23:39 +03:00
iliajie
8bd7c32c10 Fix to keep font size and color in sync for viewer and editor 2023-06-17 19:21:57 +03:00
iliajie
cf7165ffaa Fix heading paddings consistency 2023-06-17 18:40:56 +03:00
iliajie
dd4c7e6fe1 Fix to view email area no padding (let HTML email do the job) 2023-06-17 18:37:20 +03:00
iliajie
5aa1986a30 Fix email styling when viewing 2023-06-17 18:34:06 +03:00
iliajie
ff09a096cb Fix to revert the last commit as we don't need to store replies 2023-06-17 11:54:06 +03:00
iliajie
ca74a730ee Fix to store full message content, including possible replies 2023-06-17 03:06:51 +03:00
iliajie
e208907db1 Fix to pass config option 2023-06-17 02:55:54 +03:00
iliajie
83c0cb66e5 Fix to have only one new line to preserve integrity on restore 2023-06-17 02:34:45 +03:00
iliajie
675dd4d269 Fix to use function declaration instead ; prefix function name 2023-06-17 01:42:53 +03:00
iliajie
f49f068cdc Fix caller function name module dependent, and allow being overridden 2023-06-17 01:21:19 +03:00
iliajie
f39282e0d0 Fix to drop test for modern themes, as it simply works flawlessly 2023-06-17 01:10:50 +03:00
iliajie
b66a2ac0c2 Add ability not to loose message content on page reload or going back 2023-06-17 00:59:29 +03:00
iliajie
2bc982127d Add support for dark mode in code highlights 2023-06-17 00:00:20 +03:00
iliajie
21e76d19bf Fix to drop obsolete option 2023-06-16 23:39:47 +03:00
iliajie
5ec3664397 Fix to correct modules load missing timestamp and webprefix 2023-06-16 23:36:55 +03:00
Jamie Cameron
be449d6fe2 More work on editing network manager configs 2023-06-16 13:14:10 -07:00
iliajie
1248c603e6 Fix to fully abstract selectors and possible elements to sync from 2023-06-16 23:10:40 +03:00
iliajie
1ba3cdcbc9 Fix to remove incorrect HTML escape 2023-06-16 21:38:25 +03:00
iliajie
3e5b68507e Fix not to add any quote if a new message 2023-06-16 20:57:23 +03:00
iliajie
d11257cf84 Fix fills for HTML editor toolbar dropdowns 2023-06-16 19:33:24 +03:00
iliajie
a2204e46e0 Add support for choosing HTML editor mode in module config 2023-06-16 19:22:24 +03:00
iliajie
61197c485f Fix to improve modes names 2023-06-16 19:16:34 +03:00
iliajie
3f39df4203 Fix to automate modules load based on editors mode 2023-06-16 19:11:52 +03:00
iliajie
6386ece898 Add more editor modes
Available modes are: 'essential', 'simple', 'basic', 'advanced'
2023-06-16 18:52:02 +03:00
iliajie
ead4e97574 Fix to abstract HTML editor setup 2023-06-16 18:37:15 +03:00
iliajie
209ee473de Fix missing signature ; revert to using mail toolbar for mail 2023-06-16 17:53:48 +03:00
iliajie
4e06d22d85 Fix not to display empty toolbar container 2023-06-16 17:47:04 +03:00
iliajie
a70a0de807 Add formula support using Katex 2023-06-16 16:45:23 +03:00
iliajie
2788697c25 Fix to automate detection of installed modules 2023-06-16 16:43:11 +03:00
iliajie
126b96730b Add support for code highlight in HTML editor 2023-06-16 16:20:11 +03:00
iliajie
c24c544225 Fix not to mess with default code highlight 2023-06-16 16:11:47 +03:00
iliajie
7373913b0b Add support for loading extra modules 2023-06-16 15:52:53 +03:00
iliajie
90a21972ad Fix link item to be in a separate block 2023-06-16 15:41:32 +03:00
iliajie
17c3dbcf81 Add support for editor full toolbar 2023-06-16 15:38:42 +03:00
iliajie
2ae51b03fd Update translations 2023-06-16 15:08:06 +03:00
iliajie
a353a11653 Improve design by factoring out HTML editor related subs into a lib 2023-06-16 15:01:34 +03:00
iliajie
61e80f5d9f Update new HTML editor being available globally and for all themes 2023-06-16 14:03:58 +03:00
iliajie
f931b6dc01 Add significant improvements to HTML editor load ; share init function 2023-06-16 13:49:05 +03:00
iliajie
2ae5317946 Fix reply opener background 2023-06-16 12:15:32 +03:00
iliajie
50e4738f61 Fix editor area to have background 2023-06-16 12:10:52 +03:00
iliajie
46a6379510 Fix to remove unnecessary loading of custom CSS 2023-06-16 12:10:32 +03:00
Jamie Cameron
a0ede6b7e9 More work on network manager support 2023-06-15 22:24:00 -07:00
Jamie Cameron
f27277c4eb A quote string might have # inside it 2023-06-15 15:11:25 -07:00
iliajie
d53bace45c Fix reply toggle element to use no fonts for better cross compatibility 2023-06-15 22:54:10 +03:00
iliajie
1b689c4eb9 Fix for SPA themes to utilize the same template 2023-06-15 22:04:04 +03:00
iliajie
5677804487 Fix not to loose signature if exists 2023-06-15 18:17:30 +03:00
iliajie
e70d5ce764 Add support for awesome replies using new HTML editor 2023-06-15 18:17:14 +03:00
iliajie
45d6c8d235 Fix to print date in reply 2023-06-15 18:06:47 +03:00
iliajie
a95ccc006b Add new Quill HTML editor 2023-06-15 18:02:08 +03:00
iliajie
9bcf02a9b0 Fix to still provide Xinha for the old Java File Manager 2023-06-15 17:58:54 +03:00
iliajie
8c5a479d3a Fix to drop old Xinha HTML editor 2023-06-15 17:55:58 +03:00
iliajie
6872d8b6d6 Add support for the new HTML editor in the old theme 2023-06-15 17:51:59 +03:00
iliajie
036c08bb1d Add translations for HTML editor 2023-06-15 17:51:32 +03:00
iliajie
61805cee73 Add blockquote formatting unless exists already 2023-06-15 17:51:16 +03:00
iliajie
665c867601 Fix to never reset font weight 2023-06-15 17:46:20 +03:00
iliajie
3509d76a8c Fix textarea paddings 2023-06-15 13:09:13 +03:00
Jamie Cameron
e55f6d0908 Add missing save button https://forum.virtualmin.com/t/no-save-button-for-ssh-server-host-ssh-keys/121174 2023-06-14 21:38:41 -07:00
Jamie Cameron
b00f24f0b5 Use the right signing key 2023-06-14 21:27:43 -07:00
Jamie Cameron
07a46ff561 Start of work on networkmanager support 2023-06-14 21:27:12 -07:00
Jamie Cameron
5954e40808 IPv6 auto field is called auto6 2023-06-14 16:26:57 -07:00
iliajie
3e9a0e84fc Fix to reduce number of rows by default (HTML mode) 2023-06-13 19:33:38 +03:00
iliajie
a837b21013 Fix to reduce number of rows by default 2023-06-13 18:30:39 +03:00
iliajie
a38229817a Fix missing signature in emails 2023-06-13 18:27:41 +03:00
Jamie Cameron
90c36605e8 Merge branch 'master' of github.com:webmin/webmin 2023-06-13 07:41:52 -07:00
Jamie Cameron
e552c68f7e SSL need to be shut down properly 2023-06-13 07:41:09 -07:00
iliajie
7708bc240c Fix to enable HTML editor by default 2023-06-13 02:45:39 +03:00
Jamie Cameron
f6a3381682 Don't hang if we get a partial line 2023-06-11 19:01:49 -07:00
Jamie Cameron
fffe6fad63 Add option for ProxyPreserveHost https://forum.virtualmin.com/t/looking-to-set-up-a-or-multiple-reverse-proxies/121016/19 2023-06-10 16:33:59 -07:00
Jamie Cameron
cd1345cf30 Merge branch 'master' of github.com:webmin/webmin 2023-06-09 14:56:20 -07:00
Jamie Cameron
e8264986af Add option to ignore file changed errors https://forum.virtualmin.com/t/best-strategy-for-filesystem-backup/121093/5 2023-06-09 14:55:55 -07:00
iliajie
472bd9c0e4 Fix to use microtime in filenames with var_dump sub 2023-06-09 13:51:55 +03:00
iliajie
18552ad5ab Fix table columns width in Firewall module to be proportional #1923 2023-06-09 12:22:18 +03:00
Jamie Cameron
1bdcc54f21 Merge pull request #1917 from webmin/dev/load-email-images-by-server
Add support to load email images using the server (for privacy)
2023-06-08 20:11:02 -07:00
iliajie
ca5c75785d Fix to test Perl version for make_date to support (still) CentOS 6
https://sourceforge.net/p/webadmin/bugs/5622/
2023-06-09 03:21:01 +03:00
iliajie
d0e84297eb Fix for each module have its own XHR library
https://github.com/webmin/webmin/pull/1917#discussion_r1222408167
2023-06-08 14:48:46 +03:00
iliajie
df3b10c449 Revert "Fix file name as can be URL with a tracker, e.g. http://...img.png?1234"
This reverts commit f19acd68b2.
2023-06-08 01:16:32 +03:00
iliajie
72c5e39121 Fix to pass simply $response_headers instead 2023-06-07 22:04:58 +03:00
iliajie
cdd01e41bb Fix to check if defined instead 9a69913ccb (r116945393) 2023-06-07 20:30:27 +03:00
iliajie
5fc5fea30a Fix to reference ul tag 2023-06-07 13:38:28 +03:00
iliajie
a276ca7c14 Update language string for PostgreSQL 2023-06-07 12:58:27 +03:00
iliajie
a58fcffcb3 Fix error styling in PostgreSQL index page 2023-06-07 12:58:04 +03:00
iliajie
12bca2adb8 Fix missing dash in key name 2023-06-07 11:49:42 +03:00
iliajie
33fd258c71 Fix to abstract Webmin key name and OS type used in key names 2023-06-07 11:46:43 +03:00
iliajie
9a69913ccb Fix not to set response headers unless requested
https://github.com/webmin/webmin/pull/1917#discussion_r1220002442
2023-06-06 22:44:23 +03:00
iliajie
3d67e17cef Fix indent https://github.com/webmin/webmin/pull/1917#discussion_r1219998798 2023-06-06 22:19:48 +03:00
iliajie
61a40022d7 Add error handling https://github.com/webmin/webmin/pull/1917#discussion_r1219997915 2023-06-06 22:14:11 +03:00
Jamie Cameron
5a7dd1a458 Sign with SHA-256 signature 2023-06-05 22:55:57 -07:00
Jamie Cameron
74202c964f Dev version bump 2023-06-05 22:39:04 -07:00
iliajie
dc7d517989 Remove debug line 2023-06-06 01:15:21 +03:00
iliajie
b662f8d0c3 Fix code indent ; remove spinner once 2023-06-06 01:08:36 +03:00
iliajie
191ea97ea7 Fix to name containing row 2023-06-06 00:33:47 +03:00
iliajie
b0f33b6156 Fix code indents 2023-06-05 14:11:26 +03:00
iliajie
98b67cd60e Fix not to install old Webmin key at all #1919 2023-06-05 13:28:36 +03:00
iliajie
edffeba60b Fix to drop any local MIME type checks
https://github.com/webmin/webmin/pull/1917#discussion_r1217241079
2023-06-05 11:57:56 +03:00
Jamie Cameron
88ae0b68f0 Make wording clearer 2023-06-04 19:52:22 -07:00
iliajie
303b5ee31a Fix indent 2023-06-05 00:47:15 +03:00
iliajie
f694b01535 Fix to escape image URL before sending to the server 2023-06-05 00:35:51 +03:00
iliajie
37857ceeed Fix to try to use content type from response header
https://github.com/webmin/webmin/pull/1917#discussion_r1215792940
2023-06-04 15:12:31 +03:00
iliajie
5b8239c239 Add ability to return response headers 2023-06-04 15:11:08 +03:00
iliajie
8e3fdf43b0 Fix not to use pointless temp file 2023-06-03 22:33:18 +03:00
Jamie Cameron
c7198232f5 Fix wording a little 2023-06-03 11:09:53 -07:00
Jamie Cameron
3855a5f480 Merge branch 'master' of github.com:webmin/webmin 2023-06-02 08:02:19 -07:00
Jamie Cameron
37a03e720c Look in /etc/firewalld/services as well 2023-06-02 08:02:00 -07:00
iliajie
58229c1653 Fix to drop no longer needed and potentially dangerous head_html 2023-06-02 12:49:23 +03:00
iliajie
4ee13f0e20 Fix not to disable referrer check as there is no need for it
https://github.com/webmin/webmin/pull/1917#discussion_r1213968009
2023-06-02 11:36:30 +03:00
iliajie
8d66b62fce Add to use HTML::Entities to try to decode all possible entities
https://github.com/webmin/webmin/pull/1917#discussion_r1213969328
2023-06-02 11:25:27 +03:00
iliajie
eae51d8492 Fix to simplify: remove pre-loader and just load naturally 2023-06-02 02:56:32 +03:00
iliajie
1a0dec8f1e Add image pre-loaders to be awesome 2023-06-02 01:16:07 +03:00
iliajie
991e10a266 Add a robust way for testing file MIME type 2023-06-01 23:09:12 +03:00
iliajie
ec21297448 Add API to unescape HTML entities 2023-06-01 23:00:52 +03:00
iliajie
b97acb1e21 Fix to default to use server loaded images 2023-06-01 18:08:22 +03:00
iliajie
02236da8bc Fix to checkout master commits (added by accident) 2023-06-01 18:05:24 +03:00
iliajie
b3ab3f65a8 Revert "Merge branch 'master' into dev/load-email-images-by-server"
This reverts commit a5ba7ebe05, reversing
changes made to 0e93560003.
2023-06-01 17:59:31 +03:00
Ilia
a5ba7ebe05 Merge branch 'master' into dev/load-email-images-by-server 2023-06-01 17:57:09 +03:00
iliajie
0e93560003 Fix to drop wrong comment 2023-06-01 17:51:09 +03:00
iliajie
35922c6da6 Set x-no-links header 2023-06-01 17:49:19 +03:00
iliajie
71267fb601 Add XHR API to be called using JavaScript 2023-06-01 17:48:04 +03:00
iliajie
6a079198bd Add the reference for the images to load 2023-06-01 17:47:14 +03:00
iliajie
88bd2825ab Add an option to control how to view images 2023-06-01 17:42:24 +03:00
Jamie Cameron
13da04673f Finish off fix to APT repo 2023-06-01 07:11:41 -07:00
Jamie Cameron
68d6d831a1 Merge branch 'master' of github.com:webmin/webmin 2023-05-31 16:09:40 -07:00
Jamie Cameron
23bd2fbe3f Handle case where a URL has an @ towards the end 2023-05-31 16:09:34 -07:00
iliajie
e56298f55b Fix to remove stray } 2023-06-01 00:39:21 +03:00
iliajie
f19acd68b2 Fix file name as can be URL with a tracker, e.g. http://...img.png?1234 2023-05-31 23:28:19 +03:00
Jamie Cameron
57df3868b5 Merge pull request #1915 from webmin/dev/improve-view-mail
Add support for properly displaying HTML emails
2023-05-31 11:24:43 -07:00
iliajie
ff140aab1b Merge remote-tracking branch 'origin/master' 2023-05-31 20:43:45 +03:00
iliajie
754f1efc66 Revert "Fix missing HTML escapes for select option"
This reverts commit 04d75bc526.
2023-05-31 20:42:25 +03:00
Jamie Cameron
2d9ddefe50 More work on fixing the debian repo 2023-05-31 07:52:11 -07:00
Jamie Cameron
aa01bc8231 Merge branch 'master' of github.com:webmin/webmin 2023-05-31 07:51:27 -07:00
Jamie Cameron
add8a4eff6 Fix repo path 2023-05-31 07:51:20 -07:00
iliajie
11e3fcc3a6 Fix iframe height calculations 2023-05-31 16:13:08 +03:00
iliajie
87c087dda9 Fix to literalize @ 2023-05-31 15:35:42 +03:00
iliajie
605a32f87d Fix to add a proper check with negative lookahead before escaping & 2023-05-31 13:44:50 +03:00
Jamie Cameron
7988abf900 Merge branch 'master' of github.com:webmin/webmin 2023-05-30 21:54:46 -07:00
Jamie Cameron
08141fae66 Which APT to use the new repo with the new key 2023-05-30 21:53:37 -07:00
Jamie Cameron
2be85afce9 Merge pull request #1916 from webmin/dev/no-quotemeta-for-row-id
Fix to make sure that `id`s will always match
2023-05-30 16:10:06 -07:00
iliajie
e77b97bc5f Fix to make sure that ids will always match 2023-05-30 22:32:36 +03:00
iliajie
adbd30bacc Fix to switch default view mode to HTML/plaintext 2023-05-30 22:02:51 +03:00
iliajie
e7a769ccf8 Fix not to replace on UTF-8 string to avoid encoding issues (e.g. �) 2023-05-30 16:55:51 +03:00
iliajie
349a1f5873 Fix to fully strip <style> and <script> tags content (not text data) 2023-05-30 16:48:35 +03:00
iliajie
f7a13c9f9e Fix to Recommend: lynx as it still produces the best results 2023-05-30 16:28:33 +03:00
iliajie
62d3c08fbd Add to use Perl HTML formatter if available 2023-05-30 16:26:56 +03:00
iliajie
9296b12a71 Fix to correctly convert UTF-8 emails 2023-05-30 15:56:42 +03:00
iliajie
2e06ab94b6 Fix to use formal params in html_to_text sub 2023-05-30 14:28:05 +03:00
iliajie
8938680044 Fix code readability 2023-05-30 13:57:23 +03:00
iliajie
ece9d2af52 Fix to make spinner name more precise 2023-05-30 13:54:27 +03:00
iliajie
185d2b546e Fix not to use inline styling 2023-05-30 13:53:21 +03:00
iliajie
d6e21f43ce Fix missing semicolon 2023-05-30 13:52:05 +03:00
iliajie
3f470a4bcd Fix to use more common here-doc to print multiline 2023-05-30 13:48:39 +03:00
iliajie
9e714d7f57 Fix to use a function call for onload event in mail iframe 2023-05-30 13:16:18 +03:00
iliajie
8cd0b8ab49 Fix to allow allow-same-origin and allow-popups-to-escape-sandbox 2023-05-30 12:46:17 +03:00
iliajie
1f339f2085 Fix to always sandbox email content 2023-05-30 11:48:14 +03:00
Jamie Cameron
385d006c08 Build in old and new repo directories 2023-05-29 22:35:12 -07:00
Jamie Cameron
5db29277e4 Import the new key 2023-05-29 19:44:21 -07:00
Jamie Cameron
21f4a9b368 Fix the Webmin repo if the old URL is being used 2023-05-29 18:33:29 -07:00
iliajie
121cbc4a95 Add a button to display images on demand (not allow by default) 2023-05-30 00:37:20 +03:00
iliajie
93cc86315d Add better indications for hidden images 2023-05-30 00:36:36 +03:00
iliajie
76bf9ffd62 Add to use a new iframe_body API 2023-05-29 23:59:05 +03:00
iliajie
8319033bfa Add API to put HTML email body to iframe element 2023-05-29 23:30:02 +03:00
iliajie
cb6e110f40 Fix not to remove images completely, as we can border them nicely 2023-05-29 23:29:18 +03:00
Jamie Cameron
48abceeebd Merge branch 'master' of github.com:webmin/webmin 2023-05-28 15:32:56 -07:00
Jamie Cameron
dc530e2faa Switch the default YUM repository to the new repo with a new key 2023-05-28 15:32:44 -07:00
iliajie
3191805a88 Fix to use alert instead of text message 2023-05-28 19:57:27 +03:00
Jamie Cameron
d19809b79b Merge branch 'master' of github.com:webmin/webmin 2023-05-26 16:41:53 -07:00
Jamie Cameron
ed1b7e862c Build with the new key as well 2023-05-26 16:41:45 -07:00
iliajie
d33b1e2681 Fix to always set oldhost upon user creation #1909 2023-05-26 22:38:06 +03:00
iliajie
d62f474d12 Fix double escaping for HTML entities in error messages 2023-05-26 21:59:11 +03:00
iliajie
8df605cb15 Fix warning "my" variable $err masks earlier declaration in same scope 2023-05-26 15:34:20 +03:00
iliajie
10a56c13b5 Merge remote-tracking branch 'origin/master' 2023-05-26 15:22:52 +03:00
iliajie
820e128c14 Fix not to add extra line 2023-05-26 14:00:39 +03:00
Jamie Cameron
39ef3f8c65 Also load new key 2023-05-25 17:08:56 -07:00
Jamie Cameron
ada885ef41 Update session DB with actual remote IP https://github.com/webmin/authentic-theme/issues/1653 2023-05-25 16:50:15 -07:00
Jamie Cameron
6f7e322349 Fix perl error 2023-05-24 21:51:47 -07:00
Jamie Cameron
1f46918693 Also check host field 2023-05-24 21:46:12 -07:00
Jamie Cameron
e29bb0eb53 Merge pull request #1913 from johnheenan/master
Fix for failure to re-start DNS BIND on slave servers
2023-05-24 21:44:20 -07:00
John Heenan
102da88262 Fix for failure to re-start DNS BIND on slave servers
See https://github.com/virtualmin/virtualmin-gpl/issues/565
2023-05-25 14:27:31 +10:00
Jamie Cameron
1f28b054fe Merge branch 'master' of github.com:webmin/webmin 2023-05-24 14:56:32 -07:00
Jamie Cameron
79426c6aec pg_shadow_table returns two values 2023-05-24 14:56:25 -07:00
iliajie
d08d4a22d1 Fix to use a nicer alert box 2023-05-24 20:24:32 +03:00
iliajie
c66c078bde Fix to correctly set user password on MySQL user creation https://github.com/webmin/webmin/issues/1909 2023-05-24 18:48:33 +03:00
Jamie Cameron
ec1501b329 Also import the new key 2023-05-23 11:51:57 -07:00
Jamie Cameron
4bf101d988 Also import the new key 2023-05-23 11:48:10 -07:00
Jamie Cameron
58a7faa684 New 4096 bit signing key 2023-05-23 11:42:43 -07:00
Jamie Cameron
4ac9d06f3a Merge branch 'master' of github.com:webmin/webmin 2023-05-23 11:15:19 -07:00
Jamie Cameron
2c93a3c694 Detect all the installed Apache modules 2023-05-23 11:15:13 -07:00
iliajie
51595a6a92 Fix as there are two params actually 2023-05-23 19:10:34 +03:00
iliajie
9d382df56d Fix to drop not really used --product-type for now 2023-05-23 19:05:04 +03:00
iliajie
79be97bbe4 Update usage 2023-05-23 18:53:18 +03:00
iliajie
cbc3078125 Fix to eval HTML::Entities as not always required 2023-05-23 16:20:08 +03:00
iliajie
12822f97e5 Update usage ; add product type for Debian 2023-05-23 16:03:30 +03:00
iliajie
fab2a1c871 Fix to slurp file using local $/ instead 3de93296a9 (r114530097) 2023-05-23 14:12:28 +03:00
iliajie
c4fdb9524f Fix to revert accidentally stomped changes in PR #1910 2023-05-23 13:58:48 +03:00
Jamie Cameron
8ffaf20d58 Merge pull request #1910 from webmin/dev/safely-read-potentially-dangerous-files
Add ability to read potentially dangerous files safely or force download
2023-05-22 19:50:16 -07:00
iliajie
9b15a63781 Add Wants and After for the service file 2023-05-22 21:06:16 +03:00
iliajie
fc0efe9ed5 Revert "master-branch accidental merge"
This reverts commit 3996ff205f.
2023-05-22 12:31:12 +03:00
iliajie
c4866735ba Fix to always download altered file (no banner) 2023-05-22 12:07:37 +03:00
iliajie
ee1c42960a Merge branch 'dev/safely-read-potentially-dangerous-files' of github.com:webmin/webmin into dev/safely-read-potentially-dangerous-files 2023-05-22 12:04:33 +03:00
iliajie
fb947920ef Fix to drop Conflicts: ; fix specs file name for typed version 2023-05-21 23:23:28 +03:00
iliajie
b9c154911a Fix to finally use Conflicts: 2023-05-21 23:09:42 +03:00
iliajie
95f31ab26b Fix to actually provide required name, i.e. always webmin 2023-05-21 22:45:59 +03:00
iliajie
e504bd7e8e Fix not to use Conflicts: ; Provide %{name}-%{version} only 2023-05-21 22:36:06 +03:00
iliajie
9ecfb06187 Add provided extra type if given 2023-05-21 22:22:41 +03:00
iliajie
27d8eea869 Fix to try Conflicts: as well 2023-05-21 22:11:38 +03:00
iliajie
69d359c4fe Fix Obsoletes: to include %{version}-%{release} number 2023-05-21 21:59:39 +03:00
iliajie
1df55f32eb Add x-source-rpm image 2023-05-21 21:47:01 +03:00
iliajie
e92a82142a Fix to use correct variable name 2023-05-21 21:33:27 +03:00
iliajie
6eb3e42e17 Add accidentally removed $rpmspec_obsoletes variable 2023-05-21 21:20:02 +03:00
iliajie
146e4d0899 Add support to replace packages (using Obsoletes:) 2023-05-21 21:09:39 +03:00
iliajie
8a7abe98f2 Add support for product types 2023-05-21 20:15:43 +03:00
iliajie
338df27457 Fix to make param name exact 2023-05-21 18:10:47 +03:00
iliajie
76c7ca743a Add support to exclude passed modules (for new essential nightly builds) 2023-05-21 16:34:39 +03:00
iliajie
3aa58e4523 Add support to clean build directory by removing extra language files
e.g.:
./language-manager --mode=clean
2023-05-21 15:00:38 +03:00
Jamie Cameron
74373af3de Merge branch 'master' of github.com:webmin/webmin 2023-05-20 17:00:51 -07:00
Jamie Cameron
3996ff205f Handle case where the root user for testing PAM has no password https://github.com/webmin/webmin/issues/1911 2023-05-20 16:26:54 -07:00
iliajie
794ca0f651 Add ability to read potentially dangerous files safely or force download 2023-05-20 12:05:03 +03:00
iliajie
e288f1b955 Revert recent changes to add on the PR instead https://github.com/webmin/webmin/issues/1907#issuecomment-1555642036 2023-05-20 12:01:57 +03:00
Jamie Cameron
f22bada12c Merge pull request #1908 from webmin/dev/add-url-redirect-tester
Add API to check if given URL redirects somewhere
2023-05-19 16:16:58 -07:00
iliajie
6af198b2f1 Fix to never double escape certain HTML entities (can be already escaped) 2023-05-19 13:53:10 +03:00
iliajie
3de93296a9 Fix to improve un-safe downloads https://github.com/webmin/webmin/issues/1907#issuecomment-1553946236 2023-05-19 13:23:43 +03:00
iliajie
29bb158ef4 Fix to drop obsolete code 2023-05-18 22:10:28 +03:00
iliajie
7b37cedaf6 Fix to filter possible JavaScript in PDF files https://github.com/webmin/webmin/issues/1907#issuecomment-1552117601 2023-05-18 21:38:22 +03:00
iliajie
18392aab61 Add more sense to variables names 2023-05-18 20:13:24 +03:00
iliajie
702fc7d584 Fix to return error straight away 2023-05-18 19:53:24 +03:00
iliajie
cc15a65c47 Fir variables declarations 2023-05-18 19:50:57 +03:00
iliajie
377c64ef47 Add comments 2023-05-18 19:18:56 +03:00
iliajie
43edaacada Fix to provide full details on each hop and improve data structures 2023-05-18 16:43:58 +03:00
iliajie
b1f0c46059 Add support for multi hops in redirects 2023-05-18 12:14:49 +03:00
iliajie
6a693e3dc7 Fix path key name 2023-05-18 12:14:17 +03:00
iliajie
2436c25a46 Fix to reduce timeout 2023-05-18 12:13:45 +03:00
iliajie
352e3855db Fix to only use Webmin code 2023-05-17 23:51:38 +03:00
iliajie
46e8076793 Fix indent 2023-05-17 22:23:14 +03:00
iliajie
d308aa8ae8 Fix not to check for SSL certificate 2023-05-17 22:04:43 +03:00
iliajie
96132e28d6 Fix to test if redirected URL can be resolved 2023-05-17 21:38:36 +03:00
iliajie
b0731f6e35 Add to use LWP::UserAgent if available 2023-05-17 17:31:42 +03:00
iliajie
a4f7cb1f8c Add API to check if given URL redirects somewhere 2023-05-17 16:59:00 +03:00
iliajie
953c4ed020 Fix to consider all variations of HTML types 2023-05-17 11:53:06 +03:00
iliajie
d5a3eebe85 Fix to read full size of dangerous type 2023-05-17 11:13:22 +03:00
iliajie
c92395176f Fix to consider XML too #1907 2023-05-16 14:41:09 +03:00
Jamie Cameron
ab44aa8023 When showing HTML, filter out any JS 2023-05-15 20:48:52 -07:00
Jamie Cameron
152414d631 Revert "Fix to always force text/plain for all kind for text #1907"
This reverts commit 5e9f137adf.
2023-05-15 20:45:10 -07:00
iliajie
5e9f137adf Fix to always force text/plain for all kind for text #1907 2023-05-16 00:50:41 +03:00
iliajie
f29d01a7be Add HTML escape for the names of users being deleted 2023-05-15 21:34:40 +03:00
iliajie
87aa2576c2 Add HTML escape for the names of groups being deleted 2023-05-15 21:32:18 +03:00
Jamie Cameron
728ae07eed Merge branch 'master' of github.com:webmin/webmin 2023-05-15 11:16:38 -07:00
Jamie Cameron
cfd66281eb Add some more sensible username checks 2023-05-15 11:16:30 -07:00
iliajie
e8526e00b4 Add more escapes 2023-05-15 20:44:11 +03:00
iliajie
b5b6c44d5f Fix to HTML escape passed package name 2023-05-15 20:37:33 +03:00
iliajie
8f1a5a6376 Fix error formatting 2023-05-15 20:36:15 +03:00
iliajie
9f58118635 Fix to HTML escape description too 2023-05-15 20:26:06 +03:00
iliajie
d34994b5c0 Fix HTML escapes for custom log files 2023-05-15 20:22:57 +03:00
iliajie
07f8f1df4e Fix HTML and quote escapes for user and group choosers 2023-05-15 20:03:53 +03:00
iliajie
04d75bc526 Fix missing HTML escapes for select option 2023-05-15 18:47:33 +03:00
iliajie
cf9e00060b Fix missing lang line 2023-05-15 17:05:12 +03:00
iliajie
a21ad361d9 We do need to clean on Debian https://github.com/webmin/webmin.com/issues/4#issuecomment-1546456885 2023-05-13 20:26:24 +03:00
Jamie Cameron
873c324d0d Merge pull request #1906 from webmin/dev/add-ui_paginations-api
Add a new `ui_paginations` API
2023-05-13 09:43:54 -07:00
Jamie Cameron
3504c3f389 Merge pull request #1904 from webmin/dev/useradmin-pagination
Add support for paginated tables in Users and Groups module
2023-05-13 09:39:59 -07:00
Ilia
5f17149189 Merge branch 'master' into dev/add-ui_paginations-api 2023-05-13 19:31:08 +03:00
iliajie
baf8a643bb Fix to always use get method with paginations to avoid bugs 2023-05-13 16:46:55 +03:00
iliajie
1236027445 Fix to use get by default as it's better for returns 2023-05-13 16:21:11 +03:00
iliajie
2160a3d47a Fix to put pagination data to the main form 2023-05-13 16:06:44 +03:00
iliajie
9077922c57 Fix to use proper get_referer_relative to return to referred page 2023-05-13 16:03:52 +03:00
iliajie
a27ae8b7be Add support to pass elements to the parent form 2023-05-13 16:02:45 +03:00
iliajie
d572edb7ed Fix form targets submission ; fix elements duplication bug 2023-05-13 15:33:28 +03:00
iliajie
d4dcf6314c Add sanity check for minimum items per page 2023-05-13 13:38:15 +03:00
iliajie
c7367e0f46 Fix pagination with jail blocks to use new data structures 2023-05-13 13:31:39 +03:00
iliajie
8ae1c01b5e Fix to run hotkeys initializer script 2023-05-13 13:20:34 +03:00
iliajie
996227d197 Fix to refactor input and output data structures 2023-05-13 13:16:38 +03:00
iliajie
2081cf7002 Fix offsets and use a better structure for holding data 2023-05-13 12:45:04 +03:00
iliajie
3ec090f222 Fix default offsets 2023-05-13 12:24:59 +03:00
iliajie
7e417a84e8 Update description 2023-05-13 12:17:04 +03:00
iliajie
5d955fe3c8 Fix to undo dropped key 2023-05-13 11:57:10 +03:00
Jamie Cameron
117c97fcb9 No need to clean repos https://github.com/webmin/webmin.com/issues/4 2023-05-12 17:14:49 -07:00
Jamie Cameron
a8748f3e97 Merge pull request #1905 from webmin/dev/pass-client-height
Add ability to pass browser's client height to the server
2023-05-12 15:40:47 -07:00
iliajie
8f46fbf836 Fix right arrow to be consistent with left 2023-05-12 22:28:33 +03:00
iliajie
1e97b55c9d Add ability for listing paginated pages using "Alt + left/right" hotkeys 2023-05-12 15:13:28 +03:00
Ilia
26935dcda6 Merge branch 'master' into dev/pass-client-height 2023-05-12 13:47:36 +03:00
iliajie
7188b3581a Add new ui_paginations API 2023-05-12 13:44:19 +03:00
iliajie
e63defe0d3 Fix to take away a new ui_paginations sub to discuss on the PR instead 2023-05-12 13:42:13 +03:00
iliajie
9eb2624deb Add ability to pass browser's client height to the server 2023-05-12 12:02:58 +03:00
iliajie
bd2339aae4 Revert partially "Fix to generally set client height for all modules" 2023-05-12 11:59:09 +03:00
iliajie
cfa2e38162 Fix to drop no longer need code to inject client height into forms 2023-05-12 11:47:06 +03:00
iliajie
3fa50f7222 Revert "Fix to drop no longer need code .. " for ui-lib.pl only 2023-05-12 11:45:40 +03:00
iliajie
696199033c Fix to drop an option to enable paginating and let it just work 2023-05-12 11:27:02 +03:00
iliajie
05a34b099f Revert "Update config to include new option"
This reverts commit 52450a7b3b.
2023-05-12 10:51:40 +03:00
iliajie
b9b2546060 Fix to drop no longer need code to inject client height 2023-05-12 10:49:48 +03:00
Ilia
fa265c094b Merge branch 'master' into dev/useradmin-pagination 2023-05-11 21:40:58 +03:00
iliajie
d915a3aacd Fix to use right header name 2023-05-11 21:39:52 +03:00
iliajie
c145c117af Fix to drop passing client height in requests 2023-05-11 16:11:07 +03:00
iliajie
f42bb4ef1b Fix menu animation not to be annoying 2023-05-11 15:16:48 +03:00
iliajie
550c21bca7 Fix logos size 2023-05-11 15:15:52 +03:00
iliajie
cc24384fea Fix clear search button to look inbuilt into search field 2023-05-11 13:20:06 +03:00
iliajie
17d4090c45 Fix to generally set client height for all modules 6310521982 (r112805733) 2023-05-11 12:32:57 +03:00
Jamie Cameron
2bbf06af99 Merge pull request #1902 from MSSEsq/master
Update Apache HTTP Server Support to V. 2.4 from Expired V. 2.2 on FreeBSD and Solaris Unix
2023-05-10 17:05:45 -07:00
iliajie
699c9b9696 Fix to make sure that client height is set on initial load 2023-05-10 20:24:46 +03:00
iliajie
52450a7b3b Update config to include new option 2023-05-10 17:09:06 +03:00
iliajie
2be0169902 Add support for paginated tables in Users and Groups module 2023-05-10 16:49:15 +03:00
iliajie
295d3275bb Fix not to change default line height 2023-05-10 16:41:43 +03:00
iliajie
7e8788cec3 Fix to support multiple instances of ui_paginations on a single page 2023-05-10 16:41:10 +03:00
iliajie
5f46f05ba4 Add support for searching paginated with hashes too 2023-05-10 11:46:52 +03:00
iliajie
c68ffa8eb7 Fix pagination items counts 2023-05-10 10:50:57 +03:00
iliajie
9b42e6d92a Fix to use caller's pagination number if any 2023-05-10 10:50:03 +03:00
Michael S. Scaramella, Esq
a698576f59 Update config-solaris-11-ALL
The apparent need to edit this file to support the Apache HTTP Server 2.4 on Solaris was noticed when performing Spotlight searches on download code. We do not run Solaris, so cannot test these edits, yet they seem quite likely to be correct. Any needed corrections made by anyone running Solaris are welcome.
2023-05-09 19:59:27 -04:00
Michael S. Scaramella, Esq
9d081e49d9 Update ports-lib.pl
The edits update the Apache package names to versions 2.4. Versions 2.2 expired on 2017-07-01.
2023-05-09 19:47:07 -04:00
Michael S. Scaramella, Esq
9a1da695cd Update pkg-lib.pl
The edits update the Apache package names to versions 2.4. Versions 2.2 expired on 2017-07-01.
2023-05-09 19:39:28 -04:00
Michael S. Scaramella, Esq
913e326a71 Create config-freebsd-11.0-ALL
This new configuration file adds support for Apache HTTP Server 2.4 on FreeBSD 11.0 and later.
2023-05-09 19:04:39 -04:00
Michael S. Scaramella, Esq
1b3db94b73 Rename config-freebsd-8.0-ALL to config-freebsd-8.0-10.4
This configuration file must be renamed to include a FreeBSD version range to accommodate a new configuration file named “config-freebsd-11.0-ALL” that supports Apache HTTP Server V. 2.4 on FreeBSD versions 11.0 and later.
2023-05-09 19:00:57 -04:00
iliajie
0dc11e7385 Fix client height calculation for Framed Theme 2023-05-09 23:18:15 +03:00
iliajie
c03fefd36d Fix to update client height on form change dynamically (before submit) 2023-05-09 22:56:54 +03:00
iliajie
15c81e8ace Fix wrong sting transfer 2023-05-09 22:41:29 +03:00
iliajie
3683c0e06c Add support for multiple paginations in a single page 2023-05-09 19:53:15 +03:00
iliajie
8c15fc9fdb Fix escapes ; add support to display items on page
e.g.: Showing 43 to 64 of 83 items on page  ⏴ 3 of 4 pages ▸
2023-05-09 13:15:33 +03:00
Jamie Cameron
25e5b2f4fc Use new used field 2023-05-08 20:56:33 -07:00
Jamie Cameron
41a7d61df4 Collect used disk space separately 2023-05-08 20:55:05 -07:00
Jamie Cameron
ad93a7cc53 Merge branch 'master' of github.com:webmin/webmin 2023-05-08 17:39:46 -07:00
Jamie Cameron
7edccbe38b Newer DBD::mysql versions need to set mysql_ssl_optional to not fail if mandatory SSL isn't supported https://forum.virtualmin.com/t/remote-mysql-server-ssl-connection-issue/120683 2023-05-08 17:39:31 -07:00
iliajie
6310521982 Add support for listing jail blocks with pagination 2/2 2023-05-08 23:56:04 +03:00
iliajie
ae544ec580 Add support for listing jail blocks 1/2
https://forum.virtualmin.com/t/firewalld-module/116515/12
2023-05-07 21:24:30 +03:00
Jamie Cameron
c2bbb27de4 Using the back button to return doesn't refresh the page 2023-05-06 21:43:46 -07:00
Jamie Cameron
797c38b9e6 Merge branch 'master' of github.com:webmin/webmin 2023-05-06 14:51:21 -07:00
Jamie Cameron
2a1c5ce79c Reuse the existing let's encrypt key by default http://github.com/virtualmin/virtualmin-gpl/issues/414 2023-05-06 14:49:44 -07:00
iliajie
e260a96d93 Add API to use theme dependent code for page refresh 2023-05-06 12:54:13 +03:00
iliajie
4e96552b03 Fix to factor out read_help_file sub to be accessible by theme 2023-05-06 12:01:06 +03:00
iliajie
9a29c6f98e Fix search use absolute path for file
e.g. search for `Days before expiry` doesn't search for Virtualmin help in Authentic Theme
2023-05-05 13:24:29 +03:00
iliajie
fae07aed8a Fix if defined 2023-05-04 14:31:22 +03:00
iliajie
62a3c9f237 Merge remote-tracking branch 'origin/master' 2023-05-04 13:09:37 +03:00
iliajie
cdf715ad2e Fix to test expired password correctly 2023-05-04 13:09:16 +03:00
Jamie Cameron
33a8c5c8af Fix check for values field 2023-05-03 17:01:40 -07:00
iliajie
06ae7b8582 Fix undefined error fa42a98acb (commitcomment-111597917) 2023-05-03 16:27:00 +03:00
Jamie Cameron
9cf714d014 Use the correct shadow table name https://github.com/webmin/webmin/issues/1898 2023-05-01 20:02:10 -07:00
Jamie Cameron
d1fe5d1bae Merge branch 'master' of github.com:webmin/webmin 2023-04-30 21:44:38 -07:00
Jamie Cameron
f9c4cacd6c SCRIPT_NAME isn't a safe variable to use, because sometimes Virtualmin sets it 2023-04-30 21:43:33 -07:00
Jamie Cameron
ce7e966c1a Merge pull request #1897 from webmin/dev/firewalld-edit-configs-manually
Add support to edit FirewallD config files manually
2023-04-30 14:43:48 -07:00
Jamie Cameron
625f4ac93c Fix check for missing value! 2023-04-30 10:54:58 -07:00
iliajie
fa311d5288 Add support to edit FirewallD config files manually 2023-04-30 18:43:36 +03:00
Jamie Cameron
fa42a98acb Use values array if value isn't set https://forum.virtualmin.com/t/dns-not-appearing-on-slaves/120477 2023-04-28 20:08:09 -07:00
Jamie Cameron
81a8607628 Use lc to lower case 2023-04-28 13:59:19 -07:00
Jamie Cameron
2626d01005 Merge branch 'master' of github.com:webmin/webmin 2023-04-28 12:00:35 -07:00
Jamie Cameron
1e5032c7a3 Don't reference non-existent values 2023-04-28 12:00:04 -07:00
iliajie
5dc2281e66 Fix password change screen pop up on every login 20d07a17a8 2023-04-28 11:02:19 +03:00
iliajie
70fce1f97e Fix not to display no password option 2023-04-27 23:11:55 +03:00
iliajie
da1ee58a7c Fix to use offset rather than zone name https://github.com/virtualmin/virtualmin-gpl/issues/552 2023-04-26 11:30:53 +03:00
iliajie
4b3ef986bf Merge branch 'master' of github.com:webmin/webmin 2023-04-26 09:32:22 +03:00
iliajie
14a07d4959 Fix to test if home directory is writable https://github.com/webmin/webmin/issues/1892#issuecomment-1522680504
Introduced with: https://github.com/webmin/webmin/commit/f46cc45
2023-04-26 09:30:24 +03:00
Jamie Cameron
e3d4d2427c Merge branch 'master' of github.com:webmin/webmin 2023-04-25 20:47:48 -07:00
Jamie Cameron
9bcee57c7c Try lower case username if upper case doesn't exist https://github.com/virtualmin/virtualmin-gpl/issues/553 2023-04-25 20:47:07 -07:00
Jamie Cameron
896fedf590 Merge pull request #1895 from martelrotschy/dev/fix-pdbedit-bug
Fixes webmin/webmin#1894
2023-04-25 19:52:37 -07:00
Martel
12e6b19586 Fixed issue with pdbedit in samba-lib.pl
Invalid option for pdbedit that broke due to a recent update of samba-common
2023-04-25 17:42:14 -07:00
BRESTAN Rainer
fad1201240 Allow multiple LDAP server for userdb 2019-11-18 18:44:55 +01:00
1431 changed files with 20923 additions and 2370 deletions

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

@@ -0,0 +1,221 @@
#!/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 Executable file
View File

@@ -0,0 +1,163 @@
#!/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 Normal file
View File

@@ -0,0 +1,29 @@
#!/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 Executable file
View File

@@ -0,0 +1,243 @@
#!/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 Executable file
View File

@@ -0,0 +1,27 @@
#!/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

@@ -0,0 +1,30 @@
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 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

View File

@@ -1,5 +1,36 @@
## Changelog
#### 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

File diff suppressed because one or more lines are too long

View File

@@ -207,7 +207,7 @@ if ($access{'lang'}) {
if ($access{'locale'}) {
# Current locale
eval "use DateTime; use DateTime::Locale; use DateTime::TimeZone;";
if (!$@) {
if (!$@ && $] > 5.011) {
my $locales = &list_locales();
my %localesrev = reverse %{$locales};
my $locale_auto = &parse_accepted_language();

View File

@@ -38,7 +38,9 @@ if ($module_name ne 'htaccess') {
# Need to build list of supported modules
local ($ver, $mods, $fullver) = &httpd_info($httpd);
if ($ver) {
local @mods = map { "$_/$ver" } &configurable_modules();
my @allmods = &available_modules();
local @mods = map { "$_/$ver" }
&configurable_modules(\@allmods);
foreach my $m (@mods) {
if ($m =~ /(\S+)\/(\S+)/) {
$httpd_modules{$1} = $2;
@@ -47,10 +49,14 @@ if ($module_name ne 'htaccess') {
# Call again now that known modules have been set, as
# sometimes there are dependencies due to LoadModule
# statements in an IfModule block
@mods = map { "$_/$ver" } &configurable_modules();
undef(@get_config_cache);
@allmods = &available_modules();
@mods = map { "$_/$ver" }
&configurable_modules(\@allmods);
local %site = ( 'size' => $st[7],
'path' => $httpd,
'modules' => join(' ', @mods),
'allmodules' => join(' ', @allmods),
'version' => $ver,
'fullversion' => $fullver,
'webmin' => &get_webmin_version() );
@@ -72,6 +78,9 @@ if (&read_file($site_file, \%site)) {
$httpd_modules{$1} = $2;
}
}
foreach $m (split(/\s+/, $site{'allmodules'})) {
$all_httpd_modules{$m} = $site{'version'};
}
foreach $m (keys %httpd_modules) {
if (!-r "$module_root_directory/$m.pl") {
delete($httpd_modules{$m});
@@ -1825,46 +1834,46 @@ for(my $i=0; $i<$secs; $i++) {
return 0;
}
# configurable_modules()
# configurable_modules([&all-mods])
# Returns a list of Apaches that are compiled in or dynamically loaded, and
# supported by Webmin.
sub configurable_modules
{
local ($ver, $mods) = &httpd_info(&find_httpd());
local @rv;
local $m;
my ($allmods) = @_;
$allmods ||= [ &available_modules() ];
return grep { -r "$module_root_directory/$_.pl" } @$allmods;
}
# available_modules()
# Returns a list of Apaches that are compiled in or dynamically loaded
sub available_modules
{
my ($ver, $mods) = &httpd_info(&find_httpd());
my @rv;
# Add compiled-in modules
foreach $m (@$mods) {
if (-r "$module_root_directory/$m.pl") {
push(@rv, $m);
}
}
push(@rv, @$mods);
# Add dynamically loaded modules
local $conf = &get_config();
foreach $l (&find_directive_struct("LoadModule", $conf)) {
if ($l->{'words'}->[1] =~ /(mod_\S+)\.(so|dll)/ &&
-r "$module_root_directory/$1.pl") {
my $conf = &get_config();
foreach my $l (&find_directive_struct("LoadModule", $conf)) {
if ($l->{'words'}->[1] =~ /(mod_\S+)\.(so|dll)/) {
push(@rv, $1);
}
elsif ($l->{'words'}->[1] =~ /libssl\.so/ &&
-r "$module_root_directory/mod_apachessl.pl") {
elsif ($l->{'words'}->[1] =~ /libssl\.so/) {
push(@rv, "mod_apachessl");
}
elsif ($l->{'words'}->[1] =~ /lib([^\/\s]+)\.(so|dll)/ &&
-r "$module_root_directory/mod_$1.pl") {
elsif ($l->{'words'}->[1] =~ /lib([^\/\s]+)\.(so|dll)/) {
push(@rv, "mod_$1");
}
}
undef(@get_config_cache); # Cache is no longer valid
# Add dynamically loaded modules
if ($config{'apachectl_path'}) {
&open_execute_command(APACHE,
"$config{'apachectl_path'} -M 2>/dev/null", 1);
while(<APACHE>) {
if (/(\S+)_module/ && -r "$module_root_directory/mod_${1}.pl") {
if (/(\S+)_module/) {
push(@rv, "mod_${1}");
}
}

View File

@@ -0,0 +1,19 @@
show_list=0
httpd_dir=/usr/local
httpd_path=/usr/local/sbin/httpd
apachectl_path=/usr/local/sbin/apachectl
httpd_conf=/usr/local/etc/apache24/httpd.conf
mime_types=/usr/local/etc/apache24/mime.types
srm_conf=/usr/local/etc/apache24/srm.conf
access_conf=/usr/local/etc/apache24/access.conf
show_order=0
max_servers=100
test_config=1
test_manual=0
test_always=0
test_apachectl=1
auto_mods=1
pid_file=/var/run/httpd.pid
show_names=0
allow_virtualmin=0
format_config=1

View File

@@ -5,7 +5,7 @@ mime_types=/etc/apache2/mime.types
httpd_path=/usr/sbin/httpd
start_cmd=systemctl start apache2
stop_cmd=systemctl stop apache2
apply_cmd=systemctl restart apache2
apply_cmd=systemctl reload apache2
show_order=0
max_servers=100
test_config=1

View File

@@ -1,11 +1,11 @@
show_list=0
httpd_dir=/usr/apache2/2.2
httpd_conf=/etc/apache2/2.2/httpd.conf
httpd_path=/usr/apache2/2.2/bin/httpd
apachectl_path=/usr/apache2/2.2/bin/apachectl
pid_file=/var/run/apache2/2.2/httpd.pid
start_cmd=svcadm enable svc:/network/http:apache22
stop_cmd=svcadm disable svc:/network/http:apache22
httpd_dir=/usr/apache2/2.4
httpd_conf=/etc/apache2/2.4/httpd.conf
httpd_path=/usr/apache2/2.4/bin/httpd
apachectl_path=/usr/apache2/2.4/bin/apachectl
pid_file=/var/run/apache2/2.4/httpd.pid
start_cmd=svcadm enable svc:/network/http:apache24
stop_cmd=svcadm disable svc:/network/http:apache24
mime_types=
srm_conf=
access_conf=

View File

@@ -779,11 +779,23 @@ local(@po, $po, @rv);
if ($in{'Options_def'}) { return ( [ ] ); }
@po = ("ExecCGI", "FollowSymLinks", "Includes", "IncludesNOEXEC",
"Indexes", "MultiViews", "SymLinksIfOwnerMatch");
my $abscount = 0;
my $pluscount = 0;
foreach $po (@po) {
if ($in{$po} == 1) { push(@rv, $po); }
elsif ($in{$po} == 2) { push(@rv, "+$po"); }
elsif ($in{$po} == 3) { push(@rv, "-$po"); }
if ($in{$po} == 1) {
push(@rv, $po);
$abscount++;
}
elsif ($in{$po} == 2) {
push(@rv, "+$po");
$pluscount++;
}
elsif ($in{$po} == 3) {
push(@rv, "-$po");
$pluscount++;
}
}
$abscount && $pluscount && &error($text{'core_eoptionsboth'});
return @rv ? ( [ join(' ', @rv) ] ) : ( [ "None" ] );
}
@@ -1041,7 +1053,7 @@ sub edit_LimitRequestBody
{
return (1, $text{'core_maxbody'},
&opt_input($_[0]->{'value'}, "LimitRequestBody", $text{'core_default'}, 8)
.$text{'bytes'});
.&ui_space(2).$text{'bytes'});
}
sub save_LimitRequestBody
{
@@ -1052,7 +1064,7 @@ sub edit_LimitXMLRequestBody
{
return (1, $text{'core_maxxml'},
&opt_input($_[0]->{'value'}, "LimitXMLRequestBody",
$text{'core_default'}, 8).$text{'bytes'});
$text{'core_default'}, 8).&ui_space(2).$text{'bytes'});
}
sub save_LimitXMLRequestBody
{

View File

@@ -501,6 +501,7 @@ core_actmod=Active modules
core_option=Option
core_setdir=Set for directory
core_merge=Merge with parent
core_eoptionsboth=Directory options : Active options must be all either Set For Directory or Merged With Parent, but not both
core_users=Only these users
core_groups=Only these groups
core_allusers=All valid users

View File

@@ -577,10 +577,10 @@ mod_proxy_netbit=Sottorete (Network/bits)
mod_proxy_maxfw=Numero massimo di proxy nella catena di richiesta
mod_proxy_emaxfs=Il Numero massimo di proxy nella catena di richiesta deve essere un intero
mod_proxy_preserve=Preserva originale l'header Host:
mod_proxy_timeout=Timeout delle richieste proxy in secondi
mod_proxy_etimeout=Il timeout delle richieste proxy deve essere un numero di secondi
mod_proxy_via=Setta header Via:
mod_log_agent_default=Default
mod_log_agent_file=File..
mod_log_agent_program=Programma..

View File

@@ -566,10 +566,10 @@ mod_proxy_netbit=Мережа/біт
mod_proxy_maxfw=Максимальна кількість проксі в ланцюжку запитів
mod_proxy_emaxfs=Максимальна кількість проксі в ланцюжку запитів належний бути цілої числом
mod_proxy_preserve=Зарезервувати оригінальний вузол: заголовок
mod_proxy_timeout=Час чекання виконання запиту проксі в секундах
mod_proxy_etimeout=Час чекання виконання запиту проксі повинне бути числом секунд
mod_proxy_via=Установити через: заголовки
mod_log_agent_default=За замовчуванням
mod_log_agent_file=Файл..
mod_log_agent_program=Програма..

View File

@@ -573,10 +573,10 @@ mod_proxy_netbit=网络/位
mod_proxy_maxfw=请求链中最大的代理数
mod_proxy_emaxfs=请求链中最大的代理数必须是整数
mod_proxy_preserve=保持原来的主机:文件头
mod_proxy_timeout=代理请求超时秒数
mod_proxy_etimeout=代理请求超时必须是一个有效的秒数
mod_proxy_via=设置通过:头
mod_log_agent_default=默认
mod_log_agent_file=文件…
mod_log_agent_program=程序…

View File

@@ -583,10 +583,10 @@ mod_proxy_netbit=網路/位元
mod_proxy_maxfw=請求鏈中最大的代理數
mod_proxy_emaxfs=請求鏈中最大的代理數必須是整數
mod_proxy_preserve=保留原始主機: 檔頭
mod_proxy_timeout=Proxy回應逾時秒數
mod_proxy_etimeout=Proxy回應逾時秒數必須是個秒數數字
mod_proxy_via=設定經由: 檔頭
mod_log_agent_default=預設
mod_log_agent_file=檔案..
mod_log_agent_program=程式..

View File

@@ -25,6 +25,7 @@ $rv = [ [ 'ProxyRequests', 0, 13, 'virtual', undef, 11 ],
[ 'ProxyMaxForwards', 0, 13, 'virtual', 2.0 ],
[ 'ProxyPreserveHost', 0, 13, 'virtual', 2.031 ],
[ 'ProxyTimeout', 0, 13, 'virtual', 2.031 ],
[ 'ProxyPreserveHost', 0, 13, 'virtual', 2.3 ],
[ 'ProxyVia', 0, 13, 'virtual', 2.0 ] ];
return &make_directives($rv, $_[0], "mod_proxy");
}
@@ -291,7 +292,16 @@ sub save_ProxyVia
return &parse_choice("ProxyVia", "");
}
sub edit_ProxyPreserveHost
{
return (1, $text{'mod_proxy_preserve'},
&choice_input($_[0]->{'value'}, "ProxyPreserveHost", "",
"$text{'yes'},on", "$text{'no'},off", "$text{'default'},"));
}
sub save_ProxyPreserveHost
{
return &parse_choice("ProxyPreserveHost", "");
}
1;

View File

@@ -13,6 +13,7 @@ sub edit_SuexecUserGroup
local $rv;
$rv .= sprintf "<input type=radio name=SuexecUserGroup_def value=1 %s> %s\n",
$_[0] ? "" : "checked", $text{'suexec_none'};
$rv .= &ui_newline();
$rv .= sprintf "<input type=radio name=SuexecUserGroup_def value=0 %s>\n",
$_[0] ? "checked" : "";
$rv .= sprintf "%s <input name=SuexecUserGroup_u size=8 value='%s'> %s\n",

View File

@@ -2,7 +2,7 @@
# Returns a list of files and directories under some directory
$trust_unknown_referers = 1;
BEGIN { require './bacula-backup-lib.pl'; }
require './bacula-backup-lib.pl';
&ReadParse();
# Input sanitization

View File

@@ -11,7 +11,7 @@ use File::Basename;
use File::Find;
use JSON::PP;
use HTTP::Tiny;
use HTML::Entities;
eval "use HTML::Entities";
use List::MoreUtils qw(any uniq);
use Cwd qw(cwd);
use Encode qw/encode decode/;
@@ -61,7 +61,8 @@ sub main
'allow-symlinks|as!' => \$opt{'allow-symlinks'},
'git-commit|gc!' => \$opt{'git-commit'},
'log|l:s' => \$opt{'log'},
'verbose|v:i' => \$opt{'verbose'});
'verbose|v:i' => \$opt{'verbose'},
'yes|y:i' => \$opt{'assumeyes'});
# Print help and exit
pod2usage(0) if ($opt{'help'});
@@ -70,6 +71,11 @@ sub main
if (!defined($opt{'verbose'})) {
$opt{'verbose'} = 1;
}
# Enforce yes for all questions
if (defined($opt{'assumeyes'})) {
$opt{'assumeyes'} = 1;
}
# Get current path
my $path = cwd;
@@ -232,7 +238,7 @@ sub main
# Just run tests, and exit, without writing anything
if (@{ $opt{'keys-test'} }) {
say CYAN, "Translation testing for selected keys is about to start ..", RESET;
if (prompt('next')) {
if (prompt('next', \%opt)) {
go(\%opt, \%data);
}
} else {
@@ -245,11 +251,20 @@ sub main
talk('affected', \%opt, \%data);
# Run in overwrite mode
if ($opt{'mode'} eq 'full') {
if ($opt{'mode'} eq 'clean') {
# # Execute clean
talk('clean-pre', \%opt, \%data);
if (prompt('next', \%opt)) {
go(\%opt, \%data);
}
}
# Run in overwrite mode
elsif ($opt{'mode'} eq 'full') {
# Execute force transcode/translate
talk('overwrite-pre', \%opt, \%data);
if (prompt('next')) {
if (prompt('next', \%opt)) {
go(\%opt, \%data);
}
}
@@ -274,7 +289,7 @@ sub main
talk('sync-pre', \%opt, \%data);
}
if (prompt('next')) {
if (prompt('next', \%opt)) {
go(\%opt, \%data);
}
}
@@ -537,7 +552,7 @@ sub language_transcode
eval {$string = decode($encoding, $string)};
if ($@) {
say "Error found: $@";
if (!prompt('next')) {
if (!prompt('next', $opt)) {
exit;
}
}
@@ -949,6 +964,7 @@ sub go
my $verbose = $opt->{'verbose'} || @{$keys_test};
my $mode_sync = $opt->{'mode'} ne 'full';
my $mode_transcode = $opt->{'mode'} eq 'transcode';
my $mode_clean = $opt->{'mode'} eq 'clean';
my $allow_symlinks = $opt->{'allow-symlinks'};
my $verbose_silent_mode = $mode_sync && $verbose != 2;
@@ -965,6 +981,12 @@ sub go
# Check if there has been something to process, if not print a message
my $output;
# If cleaning called in this mode, throw an error
if ($mode_clean) {
say RED, "Error: Cleaning can only be performed when the target type is unset!", RESET;
exit;
}
# Build targets first
talk_log(("Transcoding/translating " . CYAN BOLD, $module, RESET . " module's help .."), $data, 1);
@@ -1200,6 +1222,7 @@ sub go
# Set message type
my $message_type_s1 = 'Transcoding/translating';
$message_type_s1 = 'Searching/replacing in' if (@{$values_fix});
$message_type_s1 = 'Cleaning in' if ($mode_clean);
talk_log(("$message_type_s1 " . BLUE BOLD, $module, RESET . " module .."), $data, 1);
foreach $language (@{ $data->{'languages_source_list'} }) {
@@ -1223,6 +1246,51 @@ sub go
my %language;
my %language_auto;
# If in clean mode delete the file and go next
if ($mode_clean) {
# Language files
my $cfile = "$mpath/$code";
my $cfileauto = "$cfile.auto";
unlink($cfile);
unlink($cfileauto);
# Module files
foreach ('module', 'config', 'uconfig') {
my %mdata = %{$data};
$mdata{'type'} = $_;
my (undef, undef, $ffile) = source_data($module, \%mdata, $opt);
$ffile =~ s/\/$_\//\//;
my $cxfile = "$ffile.$code";
my $cxfileauto = "$cxfile.auto";
unlink($cxfile);
unlink($cxfileauto);
}
# Help files
my %hdata = %{$data};
$hdata{'type'} = 'help';
my (undef, $hpath) = source_data($module, \%hdata, $opt);
my @hdelete_targets;
if (-d $hpath) {
find(
{
wanted => sub {
my $found = $File::Find::name;
if ($found =~ /\.$code\./) {
push(@hdelete_targets, $found);
}
},
},
$hpath);
unlink(@hdelete_targets);
}
# Go next, don't translate
$output++;
next;
}
my $message_type_s2 = "Processing";
$message_type_s2 = "Testing translations for selected keys with" if (@{$keys_test});
@@ -1630,8 +1698,10 @@ sub get_google_translate_token
sub prompt
{
my ($q) = @_;
my ($q, $opt) = @_;
if ($opt->{'assumeyes'}) {
return 1;
}
if ($q eq 'next') {
return prompt("Do you want to proceed?");
}
@@ -1732,6 +1802,10 @@ sub talk
say GREEN, "Affected languages" . RESET, DARK . " [$languages_count]" . RESET . ": ", YELLOW BOLD,
"" . $languages . "", RESET;
}
if ($what eq 'clean-pre') {
say RED, "Danger! ", RESET, WHITE,
"The following operation will delete all files related to the affected lang-\nuage, including machine-translated files in all the mentioned modules listed above.",
}
if ($what eq 'overwrite-pre') {
say RED, "Warning! ", RESET, WHITE,
"The following operation will force-translate and overwrite mentioned\nlanguages in all mentioned modules listed above, using ",
@@ -1829,9 +1903,13 @@ Test translations for "index_stopmsg,trusted_warning" keys, in Russian and Germa
- webmin language-manager -m=bind8 -t=ru,de -kt=index_stopmsg,trusted_warning
Clean build directory by removing all kind of language files except English.
- webmin language-manager --mode=clean
=item --mode, -x <sync|full|transcode>
Mode can be either <sync> or <full> or <transcode>. Default is set to "sync" and will only keep the keys found on template language file, while missing keys in target languages (translations), will be deleted, and newly added keys to template language file, will be translated. Mode "full" is meant to perform full translation, keeping human translated strings and overwriting all machine translations done in the past (not recommended to run). Mode "transcode" is useful to fix human translated language files, which stored in "utf-8" encoding already, while still having "&#195;&#173;" or "&#195;&#169;" HTML entities.
Mode can be either <sync> or <full> or <transcode> or <clean>. Default is set to "sync" and will only keep the keys found on template language file, while missing keys in target languages (translations), will be deleted, and newly added keys to template language file, will be translated. Mode "full" is meant to perform full translation, keeping human translated strings and overwriting all machine translations done in the past (not recommended to run). Mode "transcode" is useful to fix human translated language files, which stored in "utf-8" encoding already, while still having "&#195;&#173;" or "&#195;&#169;" HTML entities. Mode "clean" is useful to clean build package by removing all kind of language files except source language.
=item --type, -w <lang|ulang|help|config|uconfig|module>
@@ -1917,4 +1995,4 @@ Verbosely print processed files and provide detailed output. By detault, verbose
=head1 LICENSE AND COPYRIGHT
Copyright 2022 Ilia Rostovtsev <ilia@virtualmin.com>
Copyright 2020 Ilia Rostovtsev <ilia@virtualmin.com>

View File

@@ -65,10 +65,10 @@ our @dnssec_dlv_key = ( 257, 3, 5, '"BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWE
my $rand_flag;
if ($gconfig{'os_type'} =~ /-linux$/ &&
$config{'force_random'} eq '0' &&
-r "/dev/urandom" &&
!$config{'force_random'} &&
$bind_version &&
&compare_version_numbers($bind_version, '9.14') < 0) {
$bind_version =~ /^9\./ &&
&compare_version_numbers($bind_version, '<', '9.14.2')) {
# Version: 9.14.2 deprecated the use of -r option
# in favor of using /dev/random [bugs:#5370]
$rand_flag = "-r /dev/urandom";
@@ -376,9 +376,22 @@ return @rv ? wantarray ? @rv : $rv[0]
sub find_value
{
my @v = &find($_[0], $_[1]);
if (!@v) { return undef; }
elsif (wantarray) { return map { $_->{'value'} } @v; }
else { return $v[0]->{'value'}; }
if (!@v) {
return undef;
}
elsif (wantarray) {
return map { &extract_value($_) } @v;
}
else {
return &extract_value($v[0]);
}
}
sub extract_value
{
my ($dir) = @_;
return defined($dir->{'value'}) ? $dir->{'value'} :
defined($dir->{'values'}) && @{$dir->{'values'}} ? $dir->{'values'}->[0] : undef;
}
# base_directory([&config], [no-cache])
@@ -500,9 +513,8 @@ for(my $i=0; $i<@oldv || $i<@newv; $i++) {
sub recursive_set_value
{
my ($dir) = @_;
if ($dir->{'values'}) {
my @v = @{$dir->{'values'}};
$dir->{'value'} = @v ? $v[0] : undef;
if (!defined($dir->{'value'})) {
$dir->{'value'} = &extract_value($dir);
}
if ($dir->{'type'} && $dir->{'type'} == 1 && $dir->{'members'}) {
foreach my $m (@{$dir->{'members'}}) {
@@ -3010,7 +3022,7 @@ my %on = map { $_, 1 } @{$_[0]};
&remote_error_setup(\&slave_error_handler);
my @slaveerrs;
foreach my $slave (&list_slave_servers()) {
next if (%on && !$on{$slave->{'host'}});
next if (%on && !$on{$slave->{'nsname'}} && !$on{$slave->{'host'}});
# Find the PID file
$slave_error = undef;
@@ -3579,7 +3591,7 @@ for(my $i=$#recs; $i>=0; $i--) {
if ($recs[$i]->{'type'} eq 'NSEC' ||
$recs[$i]->{'type'} eq 'NSEC3' ||
$recs[$i]->{'type'} eq 'RRSIG' ||
$recs[$i]->{'type'} eq 'NSEC3PARAM' && $tools ||
$recs[$i]->{'type'} eq 'NSEC3PARAM' ||
$recs[$i]->{'type'} eq 'DNSKEY') {
&delete_record($fn, $recs[$i]);
}

View File

@@ -17,6 +17,14 @@ my $dom = $zone->{'name'};
&ui_print_header(&zone_subhead($zone), $text{'master_title'}, "",
undef, undef, undef, undef, &restart_links($zone));
my $d = &get_virtualmin_domains($dom);
if ($d && $d->{'alias'}) {
print &ui_alert_box($text{'master_vminalias'}, 'danger');
}
elsif ($d) {
print &ui_alert_box($text{'master_vmin'}, 'warn');
}
# Find the record types
my (@rcodes, @recs);
if (!$config{'largezones'}) {

View File

@@ -147,6 +147,8 @@ master_defttl=Standaard lewendige tyd vir rekords
master_edefttl='$1' is nie 'n geldige standaardtyd vir lewering van rekords nie
master_esoagone=Geen SOA-rekord gevind nie!
master_einclude=Bykomende sjabloonlêer bestaan nie
master_vmin=Hierdie sone word deur Virtualmin bestuur. Rekords moet geredigeer word met behulp van die Virtualmin UI, om te verseker dat dit ooreenstem met ander virtuele bediener instellings.
master_vminalias=Hierdie sone is 'n alias van 'n Virtualmin-domein, wat gesinchroniseer word met sy teiken. Rekords moet nooit hier geredigeer word nie, aangesien enige veranderinge oorgeskryf sal word!
delete_title=Vee sone uit
delete_mesg=Is u seker dat u die sone $1 wil verwyder? Alle rekords en die sone-lêer sal uitgevee word.

View File

@@ -147,6 +147,8 @@ master_defttl=الوقت الافتراضي للعيش للسجلات
master_edefttl='$1' is not a valid default time-to-live for records
master_esoagone=لم يتم العثور على سجل الخدمية!
master_einclude=ملف القالب الإضافي غير موجود
master_vmin=تتم إدارة هذه المنطقة بواسطة Virtualmin. يجب تحرير السجلات باستخدام Virtualmin UI ، للتأكد من أنها متوافقة مع إعدادات الخادم الظاهري الأخرى.
master_vminalias=هذه المنطقة هي اسم مستعار لنطاق Virtualmin ، والذي يتم الاحتفاظ به متزامنًا مع هدفه. يجب عدم تحرير السجلات هنا مطلقًا ، حيث سيتم الكتابة فوق أي تغييرات!
delete_title=حذف المنطقة
delete_mesg=Are you sure you want to delete the zone $1 ? All records and the zone file will be deleted.

View File

@@ -147,6 +147,8 @@ master_defttl=Час жыць да запісаў па змаўчанні
master_edefttl="$1" не з'яўляецца дапушчальным да запісу часу для запісу па змаўчанні
master_esoagone=Запіс SOA не знойдзены!
master_einclude=Дадатковы файл шаблону не існуе
master_vmin=Гэта зона кіруецца Virtualmin. Запісы трэба рэдагаваць з дапамогай інтэрфейсу Virtualmin, каб пераканацца, што яны адпавядаюць наладам іншых віртуальных сервераў.
master_vminalias=Гэтая зона з'яўляецца псеўданімам дамена Virtualmin, які падтрымліваецца ў сінхранізацыі з мэтай. Запісы ніколі не павінны рэдагавацца тут, бо любыя змены будуць перазапісаны!
delete_title=Выдаліць зону
delete_mesg=Вы ўпэўнены, што хочаце выдаліць зону $1? Усе запісы і файл зоны будуць выдаленыя.

View File

@@ -1,4 +1,6 @@
master_inview=$1 с оглед $2
master_vmin=Тази зона се управлява от Virtualmin. Записите трябва да се редактират с помощта на потребителския интерфейс на Virtualmin, за да се гарантира, че са съвместими с други настройки на виртуален сървър.
master_vminalias=Тази зона е псевдоним на домейн Virtualmin, който се поддържа в синхрон със своята цел. Записите никога не трябва да се редактират тук, тъй като всички промени ще бъдат презаписани!
delete_vwarn=Тази зона е свързана с домейна Virtualmin $1 и затова не трябва да се изтрива тук!

View File

@@ -1,4 +1,6 @@
master_inview=$1 a la vista $2
master_vmin=Aquesta zona està gestionada per Virtualmin. Els registres s'han d'editar mitjançant la interfície d'usuari de Virtualmin, per assegurar-se que són coherents amb altres configuracions del servidor virtual.
master_vminalias=Aquesta zona és un àlies d'un domini Virtualmin, que es manté sincronitzat amb el seu objectiu. Els registres no s'han d'editar mai aquí, ja que qualsevol canvi es sobreescriurà!
delete_onslave=També voleu suprimir-lo dels servidors esclaus?
delete_errslave=La zona mestra ha suprimit bé, però s'han produït els errors següents en esclaus : $1

View File

@@ -24,6 +24,8 @@ master_movedesc=Přesune tuto zónu do jiného zobrazení a přitom zachová vš
master_applymsg2=Klepnutím na toto tlačítko použijete změny pouze pro tuto zónu. Toto bude fungovat, pouze pokud byly změny provedeny pro celý server alespoň jednou od vytvoření zóny.
master_esoagone=Nebyl nalezen žádný záznam SOA!
master_einclude=Další soubor šablony neexistuje
master_vmin=Tuto zónu spravuje Virtualmin. Záznamy by měly být upravovány pomocí uživatelského rozhraní Virtualmin, aby bylo zajištěno, že budou konzistentní s ostatními nastaveními virtuálního serveru.
master_vminalias=Tato zóna je alias domény Virtualmin, která je synchronizována s jejím cílem. Záznamy by zde nikdy neměly být upravovány, protože jakékoli změny budou přepsány!
delete_mesg3=Opravdu chcete odstranit zónu $1?
delete_vwarn=Tato zóna je přidružena k doméně Virtualmin $1, a proto by zde neměla být odstraněna!

View File

@@ -147,6 +147,8 @@ master_defttl=Standard tid til live for poster
master_edefttl='$1' er ikke en gyldig standard-tid-til-live for poster
master_esoagone=Ingen SOA-registrering fundet!
master_einclude=Yderligere skabelonfil findes ikke
master_vmin=Denne zone administreres af Virtualmin. Records bør redigeres ved hjælp af Virtualmin UI for at sikre, at de stemmer overens med andre virtuelle serverindstillinger.
master_vminalias=Denne zone er et alias for et Virtualmin-domæne, som holdes synkroniseret med dets mål. Optegnelser bør aldrig redigeres her, da eventuelle ændringer vil blive overskrevet!
delete_title=Slet zone
delete_mesg=Er du sikker på, at du vil slette zonen $1? Alle poster og zonefilen vil blive slettet.

View File

@@ -1,4 +1,6 @@
master_inview=$1 im Blick $2
master_vmin=Diese Zone wird von Virtualmin verwaltet. Datensätze sollten über die Virtualmin-Benutzeroberfläche bearbeitet werden, um sicherzustellen, dass sie mit anderen Einstellungen des virtuellen Servers konsistent sind.
master_vminalias=Diese Zone ist ein Alias einer Virtualmin-Domäne, die mit ihrem Ziel synchron gehalten wird. Datensätze sollten hier niemals bearbeitet werden, da alle Änderungen überschrieben werden!
delete_vwarn=Diese Zone ist der Virtualmin-Domäne $1 zugeordnet und sollte daher hier nicht gelöscht werden!

View File

@@ -147,6 +147,8 @@ master_defttl=Προεπιλεγμένος χρόνος ζωής για αρχε
master_edefttl=Το '$1' δεν είναι έγκυρη προεπιλεγμένη ώρα για ζωντανή εγγραφή
master_esoagone=Δεν βρέθηκε αρχείο SOA!
master_einclude=Δεν υπάρχει πρόσθετο αρχείο προτύπου
master_vmin=Αυτή η ζώνη διαχειρίζεται το Virtualmin. Οι εγγραφές θα πρέπει να επεξεργάζονται χρησιμοποιώντας το Virtualmin UI, για να διασφαλιστεί ότι είναι συνεπείς με άλλες ρυθμίσεις εικονικού διακομιστή.
master_vminalias=Αυτή η ζώνη είναι ένα ψευδώνυμο ενός τομέα Virtualmin, ο οποίος διατηρείται σε συγχρονισμό με τον στόχο του. Οι εγγραφές δεν πρέπει ποτέ να επεξεργάζονται εδώ, καθώς τυχόν αλλαγές θα αντικατασταθούν!
delete_title=Διαγραφή Ζώνης
delete_mesg=Είστε βέβαιοι ότι θέλετε να διαγράψετε τη ζώνη $1; Όλες οι εγγραφές και το αρχείο ζώνης θα διαγραφούν.

View File

@@ -147,6 +147,8 @@ master_defttl=Default time-to-live for records
master_edefttl='$1' is not a valid default time-to-live for records
master_esoagone=No SOA record found!
master_einclude=Additional template file does not exist
master_vmin=This zone is managed by Virtualmin. Records should be edited using the Virtualmin UI, to ensure they are consistent with other virtual server settings.
master_vminalias=This zone is an alias of a Virtualmin domain, which is kept in sync with it's target. Records should never be edited here, as any changes will be overwritten!
delete_title=Delete Zone
delete_mesg=Are you sure you want to delete the zone $1 ? All records and the zone file will be deleted.

View File

@@ -37,6 +37,8 @@ master_defttl=Tiempo de vida predeterminado para registros
master_edefttl='$1' no es un tiempo de vida predeterminado válido para los registros
master_esoagone=¡No se ha encontrado el registro SOA!
master_einclude=El archivo de plantilla adicional no existe
master_vmin=Esta zona es administrada por Virtualmin. Los registros deben editarse mediante la interfaz de usuario de Virtualmin para garantizar que sean coherentes con otras configuraciones del servidor virtual.
master_vminalias=Esta zona es un alias de un dominio de Virtualmin, que se mantiene sincronizado con su objetivo. Los registros nunca deben editarse aquí, ya que cualquier cambio se sobrescribirá
delete_mesg3=¿Está seguro de que desea eliminar la zona $1?
delete_vwarn=Esta zona está asociada con el dominio Virtualmin $1, por lo que no debe eliminarse aquí.

View File

@@ -147,6 +147,8 @@ master_defttl=Erregistroen bizitzeko denbora lehenetsia
master_edefttl='$1' ez da erregistroen denbora bizitzeko balio lehenetsia
master_esoagone=Ez da SOA erregistrorik aurkitu!
master_einclude=Ez da txantiloi fitxategi gehigarririk existitzen
master_vmin=Zona hau Virtualmin-ek kudeatzen du. Erregistroak Virtualmin UI erabiliz editatu behar dira, zerbitzari birtualeko beste ezarpen batzuekin bat datozela ziurtatzeko.
master_vminalias=Zona hau Virtualmin domeinu baten alias bat da, zeina helbururekin sinkronizatuta mantentzen dena. Erregistroak ez dira inoiz hemen editatu behar, edozein aldaketa gainidatzi egingo baita!
delete_title=Ezabatu zona
delete_mesg=Ziur $1 zona ezabatu nahi duzula? Erregistro guztiak eta zona fitxategia ezabatuko dira.

View File

@@ -30,6 +30,8 @@ master_movedesc=این منطقه را به یک نمای دیگر منتقل م
master_applymsg2=برای اعمال تغییرات فقط در این منطقه ، روی این دکمه کلیک کنید. این کار فقط در صورتی انجام می شود که حداقل یک بار از زمان ایجاد منطقه ، برای کل سرور اعمال شود.
master_esoagone=هیچ سابقه SOA یافت نشد!
master_einclude=پرونده الگوی اضافی وجود ندارد
master_vmin=این منطقه توسط Virtualmin مدیریت می شود. رکوردها باید با استفاده از Virtualmin UI ویرایش شوند تا اطمینان حاصل شود که با سایر تنظیمات سرور مجازی سازگار هستند.
master_vminalias=این منطقه نام مستعار یک دامنه Virtualmin است که با هدف خود هماهنگ می شود. سوابق هرگز نباید در اینجا ویرایش شوند، زیرا هر تغییری بازنویسی می شود!
delete_mesg3=Are you sure you want to delete the zone $1 ?
delete_vwarn=این منطقه با دامنه Virtualmin $1 همراه است و بنابراین نباید در اینجا حذف شود!

View File

@@ -147,6 +147,8 @@ master_defttl=Tietueiden oletusaika-aika
master_edefttl='$1' ei ole kelvollinen oletusarvoinen elinaika tietueille
master_esoagone=SOA-tietuetta ei löytynyt!
master_einclude=Muuta mallitiedostoa ei ole
master_vmin=Tätä vyöhykettä hallinnoi Virtualmin. Tietueita tulee muokata Virtualmin-käyttöliittymällä, jotta ne ovat yhdenmukaisia muiden virtuaalipalvelinasetusten kanssa.
master_vminalias=Tämä vyöhyke on Virtualmin-verkkotunnuksen alias, joka pidetään synkronoituna kohteensa kanssa. Tietueita ei saa koskaan muokata täällä, sillä kaikki muutokset korvataan!
delete_title=Poista vyöhyke
delete_mesg=Haluatko varmasti poistaa vyöhykkeen $1? Kaikki tietueet ja vyöhyketiedosto poistetaan.

View File

@@ -1,3 +1,6 @@
master_vmin=Cette zone est gérée par Virtualmin. Les enregistrements doivent être modifiés à l'aide de l'interface utilisateur Virtualmin, pour s'assurer qu'ils sont cohérents avec les autres paramètres du serveur virtuel.
master_vminalias=Cette zone est un alias d'un domaine Virtualmin, qui est synchronisé avec sa cible. Les enregistrements ne doivent jamais être modifiés ici, car toute modification sera écrasée !
slave_format=Format de fichier de zone
slave_raw=Binaire brut
slave_text=Texte brut

View File

@@ -147,6 +147,8 @@ master_defttl=זמן ברירת המחדל לחיים עבור רשומות
master_edefttl='$1' אינו זמן ברירת מחדל תקף לחיות עבור רשומות
master_esoagone=לא נמצאה רשומת SOA!
master_einclude=קובץ תבנית נוסף אינו קיים
master_vmin=אזור זה מנוהל על ידי Virtualmin. יש לערוך את הרשומות באמצעות ממשק המשתמש של Virtualmin, כדי להבטיח שהן עולות בקנה אחד עם הגדרות שרת וירטואלי אחרות.
master_vminalias=אזור זה הוא כינוי של דומיין Virtualmin, אשר נשמר מסונכרן עם היעד שלו. לעולם אין לערוך רשומות כאן, מכיוון שכל השינויים יוחלפו!
delete_title=מחק אזור
delete_mesg=האם אתה בטוח שברצונך למחוק את האזור $1 ? כל הרשומות וקובץ האזור יימחקו.

View File

@@ -147,6 +147,8 @@ master_defttl=Zadano vrijeme za snimanje uživo
master_edefttl="$1" nije valjano zadano vrijeme za izradu zapisa
master_esoagone=Nije pronađen SOA zapis!
master_einclude=Dodatna datoteka predloška ne postoji
master_vmin=Ovom zonom upravlja Virtualmin. Zapise treba uređivati pomoću korisničkog sučelja Virtualmin kako bi se osiguralo da su u skladu s drugim postavkama virtualnog poslužitelja.
master_vminalias=Ova zona je pseudonim Virtualmin domene, koja je sinkronizirana sa svojim ciljem. Zapisi se nikada ne smiju uređivati ovdje, jer će sve promjene biti prebrisane!
delete_title=Izbriši zonu
delete_mesg=Jeste li sigurni da želite izbrisati zonu $1? Svi zapisi i zonska datoteka bit će izbrisani.

View File

@@ -10,6 +10,8 @@ master_inview=$1 a $2 nézetben
master_egone=A $1 zóna egyetlen nézetben sem létezik
master_egone2=A $1 zóna nem létezik!
master_egone3=A $1 zóna a $2 nézetben nem létezik!
master_vmin=Ezt a zónát a Virtualmin kezeli. A rekordokat a Virtualmin UI használatával kell szerkeszteni, hogy konzisztensek legyenek a többi virtuális szerver beállításával.
master_vminalias=Ez a zóna egy Virtualmin tartomány álneve, amely szinkronban van a céljával. A rekordokat soha nem szabad itt szerkeszteni, mert az esetleges változtatások felülíródnak!
delete_vwarn=Ez a zóna a $1 Virtualmin domainhez van társítva, ezért itt nem szabad törölni!

View File

@@ -47,6 +47,8 @@ master_defttl=Tempo di vita predefinito per i record
master_edefttl='$1' non è un time-to-live predefinito valido per i record
master_esoagone=Nessun record SOA trovato!
master_einclude=Non esiste un file modello aggiuntivo
master_vmin=Questa zona è gestita da Virtualmin. I record devono essere modificati utilizzando l'interfaccia utente di Virtualmin, per garantire che siano coerenti con le altre impostazioni del server virtuale.
master_vminalias=Questa zona è un alias di un dominio Virtualmin, che viene mantenuto sincronizzato con la sua destinazione. I record non dovrebbero mai essere modificati qui, poiché qualsiasi modifica verrà sovrascritta!
delete_mesg3=Sei sicuro di voler eliminare la zona $1?
delete_onslave=Eliminare anche dai server slave?

View File

@@ -13,6 +13,8 @@ master_inview=ビュー $2の $1
master_egone=ゾーン$1はどのビューにも存在しません
master_egone2=ゾーン$1は存在しません
master_egone3=ビュー$2のゾーン$1は存在しません
master_vmin=このゾーンは Virtualmin によって管理されます。レコードは、他の仮想サーバー設定との一貫性を確保するために、Virtualmin UI を使用して編集する必要があります。
master_vminalias=このゾーンは Virtualmin ドメインのエイリアスであり、ターゲットとの同期が保たれます。変更が上書きされるため、ここでレコードを編集しないでください。
delete_vwarn=このゾーンはVirtualminドメイン $1に関連付けられているため、ここで削除しないでください
delete_vwarn2=このゾーンはVirtualminドメイン $1および $2に関連付けられているため、ここで削除しないでください

View File

@@ -71,6 +71,8 @@ master_defttl=레코드의 기본 수명
master_edefttl='$1'은 (는) 유효한 기본 유효 기간이 아닙니다.
master_esoagone=SOA 레코드가 없습니다!
master_einclude=추가 템플릿 파일이 없습니다
master_vmin=이 영역은 Virtualmin에서 관리합니다. 다른 가상 서버 설정과 일관성을 유지하려면 Virtualmin UI를 사용하여 레코드를 편집해야 합니다.
master_vminalias=이 영역은 대상과 동기화된 상태로 유지되는 Virtualmin 도메인의 별칭입니다. 모든 변경 사항을 덮어쓰게 되므로 여기에서 레코드를 편집하면 안 됩니다!
delete_mesg2=루트 영역을 삭제 하시겠습니까? DNS 서버가 더 이상 인터넷에서 주소를 조회하지 못할 수 있습니다.
delete_mesg3=영역 $1을 삭제 하시겠습니까?

View File

@@ -147,6 +147,8 @@ master_defttl=Numatytasis įrašų gyvavimo laikas
master_edefttl=„$1“ nėra tinkamas numatytasis įrašų gyvavimo laikas
master_esoagone=Nerastas SOA įrašas.
master_einclude=Papildomo šablono failo nėra
master_vmin=Šią zoną valdo „Virtualmin“. Įrašai turi būti redaguojami naudojant „Virtualmin“ vartotojo sąsają, siekiant užtikrinti, kad jie atitiktų kitus virtualaus serverio nustatymus.
master_vminalias=Ši zona yra „Virtualmin“ domeno slapyvardis, kuris yra sinchronizuojamas su savo taikiniu. Įrašai čia niekada neturėtų būti redaguojami, nes bet kokie pakeitimai bus perrašyti!
delete_title=Ištrinti zoną
delete_mesg=Ar tikrai norite ištrinti $1 zoną? Visi įrašai ir zonos failai bus ištrinti.

View File

@@ -147,6 +147,8 @@ master_defttl=Noklusētais ierakstu dzīves laiks
master_edefttl='$1' nav derīgs ierakstu noklusējuma dzīves laiks
master_esoagone=Nav atrasts neviens SOA ieraksts.
master_einclude=Papildu veidnes fails neeksistē
master_vmin=Šo zonu pārvalda Virtualmin. Ieraksti ir jārediģē, izmantojot Virtualmin UI, lai nodrošinātu to atbilstību citiem virtuālā servera iestatījumiem.
master_vminalias=Šī zona ir Virtualmin domēna aizstājvārds, kas tiek sinhronizēts ar tā mērķi. Ierakstus nekad nevajadzētu rediģēt šeit, jo visas izmaiņas tiks pārrakstītas!
delete_title=Dzēst zonu
delete_mesg=Vai tiešām vēlaties izdzēst zonu $1? Visi ieraksti un zonas fails tiks izdzēsti.

View File

@@ -147,6 +147,8 @@ master_defttl=Waktu untuk hidup untuk rekod lalai
master_edefttl='$1' bukan masa lalai yang sah untuk rekod
master_esoagone=Tiada rekod SOA ditemui!
master_einclude=Fail templat tambahan tidak wujud
master_vmin=Zon ini diuruskan oleh Virtualmin. Rekod hendaklah diedit menggunakan UI Virtualmin, untuk memastikan ia konsisten dengan tetapan pelayan maya yang lain.
master_vminalias=Zon ini ialah alias domain Virtualmin, yang disimpan selari dengan sasarannya. Rekod tidak boleh diedit di sini, kerana sebarang perubahan akan ditimpa!
delete_title=Padamkan Zon
delete_mesg=Adakah anda pasti mahu memadamkan zon $1? Semua rekod dan fail zon akan dihapuskan.

View File

@@ -147,6 +147,8 @@ master_defttl=Żmien tal-għajxien awtomatiku għar-rekords
master_edefttl="$1" m'huwiex il-ħin ta 'l-għajxien validu għar-rekords
master_esoagone=Ma nstab l-ebda rekord SOA!
master_einclude=Fajl mudell addizzjonali ma jeżistix
master_vmin=Din iż-żona hija mmexxija minn Virtualmin. Ir-rekords għandhom jiġu editjati bl-użu ta' Virtualmin UI, biex jiġi żgurat li jkunu konsistenti ma' settings oħra ta' server virtwali.
master_vminalias=Din iż-żona hija alias ta' dominju Virtualmin, li jinżamm sinkronizzat mal-mira tiegħu. Ir-rekords m'għandhom qatt jiġu editjati hawn, peress li kwalunkwe tibdil se jinkiteb fuqhom!
delete_title=Ħassar Żona
delete_mesg=Int żgur li trid tħassar iż-żona $1? Ir-rekords kollha u l-fajl taż-żona se jitħassru.

View File

@@ -9,6 +9,8 @@ master_inview=$1 in zicht $2
master_egone=Zone $1 bestaat in geen enkele weergave
master_egone2=Zone $1 bestaat niet!
master_egone3=Zone $1 in zicht $2 bestaat niet!
master_vmin=Deze zone wordt beheerd door Virtualmin. Records moeten worden bewerkt met behulp van de gebruikersinterface van Virtualmin, om ervoor te zorgen dat ze consistent zijn met andere virtuele serverinstellingen.
master_vminalias=Deze zone is een alias van een Virtualmin-domein, dat synchroon wordt gehouden met zijn doel. Records mogen hier nooit worden bewerkt, omdat eventuele wijzigingen worden overschreven!
delete_vwarn=Deze zone is gekoppeld aan het Virtualmin-domein $1 en mag hier dus niet worden verwijderd!

View File

@@ -1,3 +1,6 @@
master_vmin=Denne sonen administreres av Virtualmin. Oppføringer bør redigeres ved hjelp av Virtualmin-grensesnittet for å sikre at de stemmer overens med andre virtuelle serverinnstillinger.
master_vminalias=Denne sonen er et alias for et Virtualmin-domene, som holdes synkronisert med målet. Poster bør aldri redigeres her, da eventuelle endringer vil bli overskrevet!
slave_format=Sone filformat
slave_raw=Rå binær
slave_text=Ren tekst

View File

@@ -3,6 +3,8 @@ index_eexpired_conf=Automatyczne podpisywanie powinno zostać ponownie włączon
index_eexpired_mod=Użyj modułu $1, aby wyłączyć DNSSEC dla tych domen lub sprawdzić, dlaczego podpisywanie kończy się niepowodzeniem.
master_inview=$1 w widoku $2
master_vmin=Tą strefą zarządza Virtualmin. Rekordy należy edytować za pomocą interfejsu użytkownika Virtualmin, aby zapewnić ich spójność z innymi ustawieniami serwera wirtualnego.
master_vminalias=Ta strefa jest aliasem domeny Virtualmin, która jest synchronizowana z celem. Rekordów nigdy nie należy tutaj edytować, ponieważ wszelkie zmiany zostaną nadpisane!
delete_vwarn=Ta strefa jest powiązana z domeną Virtualmin $1, dlatego nie należy jej tutaj usuwać!

View File

@@ -88,6 +88,8 @@ master_defttl=Tempo de vida padrão para registros
master_edefttl='$1' não é um tempo de vida padrão válido para registros
master_esoagone=Nenhum registro SOA encontrado!
master_einclude=Arquivo de modelo adicional não existe
master_vmin=Esta zona é gerenciada pelo Virtualmin. Os registros devem ser editados usando a IU do Virtualmin, para garantir que sejam consistentes com outras configurações do servidor virtual.
master_vminalias=Esta zona é um alias de um domínio Virtualmin, que é mantido em sincronia com seu alvo. Os registros nunca devem ser editados aqui, pois quaisquer alterações serão substituídas!
delete_title=Excluir zona
delete_mesg=Tem certeza de que deseja excluir a zona $1? Todos os registros e o arquivo de zona serão excluídos.

View File

@@ -11,6 +11,8 @@ master_inview=$1 na visualização $2
master_egone=A zona $1 não existe em nenhuma visualização
master_egone2=A zona $1 não existe!
master_egone3=A zona $1 na exibição $2 não existe!
master_vmin=Esta zona é gerenciada pelo Virtualmin. Os registros devem ser editados usando a IU do Virtualmin, para garantir que sejam consistentes com outras configurações do servidor virtual.
master_vminalias=Esta zona é um alias de um domínio Virtualmin, que é mantido em sincronia com seu destino. Os registros nunca devem ser editados aqui, pois quaisquer alterações serão substituídas!
delete_vwarn=Esta zona está associada ao domínio Virtualmin $1 e, portanto, não deve ser excluída aqui!

View File

@@ -147,6 +147,8 @@ master_defttl=Timp de viață implicit pentru înregistrări
master_edefttl=„$1” nu este o durată de viață implicită valabilă pentru înregistrări
master_esoagone=Nu a fost găsită nicio înregistrare SOA!
master_einclude=Fișierul șablon suplimentar nu există
master_vmin=Această zonă este gestionată de Virtualmin. Înregistrările trebuie editate utilizând interfața de utilizare Virtualmin, pentru a se asigura că sunt în concordanță cu alte setări ale serverului virtual.
master_vminalias=Această zonă este un alias al unui domeniu Virtualmin, care este menținut în sincronizare cu ținta sa. Înregistrările nu trebuie niciodată editate aici, deoarece orice modificări vor fi suprascrise!
delete_title=Ștergeți Zona
delete_mesg=Sigur doriți să ștergeți zona $1? Toate înregistrările și fișierul de zonă vor fi șterse.

View File

@@ -48,6 +48,8 @@ master_defttl=Время жизни по умолчанию для записе
master_edefttl=«$1» не является допустимым временем жизни по умолчанию для записей
master_esoagone=Запись SOA не найдена!
master_einclude=Дополнительный файл шаблона не существует
master_vmin=Эта зона управляется Virtualmin. Записи следует редактировать с помощью пользовательского интерфейса Virtualmin, чтобы обеспечить их соответствие другим настройкам виртуального сервера.
master_vminalias=Эта зона является псевдонимом домена Virtualmin, который синхронизируется со своей целью. Записи никогда не должны редактироваться здесь, так как любые изменения будут перезаписаны!
delete_mesg3=Вы уверены, что хотите удалить зону $1?
delete_onslave=Также удалить с подчиненных серверов?

View File

@@ -147,6 +147,8 @@ master_defttl=Predvolený čas dožívania záznamov
master_edefttl='$1' nie je platný predvolený čas do života záznamov
master_esoagone=Nenašli sa žiadne záznamy SOA!
master_einclude=Dodatočný súbor šablóny neexistuje
master_vmin=Túto zónu spravuje Virtualmin. Záznamy by sa mali upravovať pomocou používateľského rozhrania Virtualmin, aby sa zabezpečilo, že budú konzistentné s ostatnými nastaveniami virtuálneho servera.
master_vminalias=Táto zóna je alias domény Virtualmin, ktorá je synchronizovaná s jej cieľom. Záznamy by sa tu nikdy nemali upravovať, pretože akékoľvek zmeny budú prepísané!
delete_title=Odstrániť zónu
delete_mesg=Naozaj chcete odstrániť zónu $1? Všetky záznamy a súbor zóny budú vymazané.

View File

@@ -147,6 +147,8 @@ master_defttl=Privzeti čas za življenje za zapise
master_edefttl='$1' ni veljaven privzeti čas za življenje za zapise
master_esoagone=Ni SOA zapisa!
master_einclude=Dodatna datoteka predloge ne obstaja
master_vmin=To območje upravlja Virtualmin. Zapise je treba urejati z uporabniškim vmesnikom Virtualmin, da se zagotovi skladnost z drugimi nastavitvami virtualnega strežnika.
master_vminalias=To območje je vzdevek domene Virtualmin, ki je sinhronizirana s svojim ciljem. Zapisov nikoli ne urejajte tukaj, saj bodo vse spremembe prepisane!
delete_title=Zbriši cono
delete_mesg=Ali ste prepričani, da želite izbrisati cono $1? Vsi zapisi in zonska datoteka bodo izbrisani.

View File

@@ -27,6 +27,8 @@ master_movedesc=Flyttar denna zon till en annan vy, samtidigt som alla poster oc
master_applymsg2=Klicka på den här knappen för att endast tillämpa ändringar för denna zon. Detta fungerar bara om ändringar har tillämpats för hela servern minst en gång sedan zonen skapades.
master_esoagone=Ingen SOA-post hittades!
master_einclude=Ytterligare mallfil finns inte
master_vmin=Denna zon hanteras av Virtualmin. Poster bör redigeras med Virtualmin-gränssnittet för att säkerställa att de överensstämmer med andra virtuella serverinställningar.
master_vminalias=Denna zon är ett alias för en Virtualmin-domän, som hålls synkroniserad med dess mål. Poster bör aldrig redigeras här, eftersom alla ändringar kommer att skrivas över!
delete_mesg3=Är du säker på att du vill ta bort zonen $1?
delete_vwarn=Denna zon är associerad med Virtualmin-domänen $1, och bör därför inte tas bort här!

View File

@@ -147,6 +147,8 @@ master_defttl=ค่าเริ่มต้นเวลาอยู่เพื
master_edefttl='$1' ไม่ใช่เวลาเริ่มต้นที่ถูกต้องสำหรับบันทึก
master_esoagone=ไม่พบบันทึก SOA!
master_einclude=ไม่มีไฟล์เทมเพลตเพิ่มเติม
master_vmin=โซนนี้จัดการโดย Virtualmin ควรแก้ไขบันทึกโดยใช้ Virtualmin UI เพื่อให้แน่ใจว่าสอดคล้องกับการตั้งค่าเซิร์ฟเวอร์เสมือนอื่นๆ
master_vminalias=โซนนี้เป็นนามแฝงของโดเมน Virtualmin ซึ่งซิงค์กับเป้าหมาย ไม่ควรแก้ไขบันทึกที่นี่ เนื่องจากการเปลี่ยนแปลงใดๆ จะถูกเขียนทับ!
delete_title=ลบโซน
delete_mesg=คุณแน่ใจหรือว่าต้องการลบโซน $1 ระเบียนทั้งหมดและไฟล์โซนจะถูกลบ

View File

@@ -29,6 +29,8 @@ master_movedesc=Tüm kayıtları ve diğer seçenekleri korurken bu bölgeyi ba
master_applymsg2=Yalnızca bu bölge için değişiklik uygulamak üzere bu düğmeyi tıklayın. Bu, yalnızca bölge oluşturulduğundan bu yana en az bir kez tüm sunucu için değişiklikler uygulandığında çalışır.
master_esoagone=SOA kaydı bulunamadı!
master_einclude=Ek şablon dosyası yok
master_vmin=Bu bölge Virtualmin tarafından yönetilmektedir. Diğer sanal sunucu ayarlarıyla tutarlı olduklarından emin olmak için kayıtlar Virtualmin UI kullanılarak düzenlenmelidir.
master_vminalias=Bu bölge, hedefiyle senkronize tutulan bir Virtualmin etki alanının takma adıdır. Herhangi bir değişikliğin üzerine yazılacağı için kayıtlar burada asla düzenlenmemelidir!
delete_mesg3=$1 bölgesini silmek istediğinizden emin misiniz?
delete_vwarn=Bu bölge $1 Virtualmin etki alanı ile ilişkilidir ve buradan silinmemelidir!

View File

@@ -48,6 +48,8 @@ master_defttl=Час життя для записів за замовчуван
master_edefttl='$1' не є дійсним за замовчуванням для прослуховування записів за замовчуванням
master_esoagone=Запис SOA не знайдено!
master_einclude=Додатковий файл шаблону не існує
master_vmin=Цією зоною керує Virtualmin. Записи слід редагувати за допомогою інтерфейсу користувача Virtualmin, щоб переконатися, що вони відповідають іншим налаштуванням віртуального сервера.
master_vminalias=Ця зона є псевдонімом домену Virtualmin, який синхронізується з цільовим доменом. Тут ніколи не можна редагувати записи, оскільки будь-які зміни будуть перезаписані!
delete_mesg3=Ви впевнені, що хочете видалити зону $1?
delete_onslave=Видалити також з підлеглого серверів?

View File

@@ -147,6 +147,8 @@ master_defttl=پہلے سے طے شدہ ریکارڈوں کے لئے وقت رہ
master_edefttl='$1' is not a valid default time-to-live for records
master_esoagone=ایس او اے کا کوئی ریکارڈ نہیں ملا!
master_einclude=اضافی ٹیمپلیٹ فائل موجود نہیں ہے
master_vmin=یہ زون Virtualmin کے زیر انتظام ہے۔ Virtualmin UI کا استعمال کرتے ہوئے ریکارڈز میں ترمیم کی جانی چاہیے، تاکہ یہ یقینی بنایا جا سکے کہ وہ دیگر ورچوئل سرور کی ترتیبات کے ساتھ مطابقت رکھتے ہیں۔
master_vminalias=یہ زون ورچوئل مین ڈومین کا ایک عرف ہے، جسے اس کے ہدف کے ساتھ ہم آہنگ رکھا جاتا ہے۔ یہاں ریکارڈز میں کبھی بھی ترمیم نہیں کی جانی چاہیے، کیونکہ کوئی بھی تبدیلی اوور رائٹ ہو جائے گی!
delete_title=زون کو حذف کریں
delete_mesg=Are you sure you want to delete the zone $1 ? All records and the zone file will be deleted.

View File

@@ -147,6 +147,8 @@ master_defttl=Thời gian tồn tại mặc định cho hồ sơ
master_edefttl='$1' không phải là thời gian tồn tại mặc định hợp lệ cho các bản ghi
master_esoagone=Không tìm thấy bản ghi SOA!
master_einclude=Tệp mẫu bổ sung không tồn tại
master_vmin=Vùng này được quản lý bởi Virtualmin. Các bản ghi phải được chỉnh sửa bằng giao diện người dùng Virtualmin để đảm bảo chúng nhất quán với các cài đặt máy chủ ảo khác.
master_vminalias=Vùng này là bí danh của miền Virtualmin, được giữ đồng bộ với mục tiêu của nó. Các bản ghi không bao giờ được chỉnh sửa ở đây, vì mọi thay đổi sẽ bị ghi đè!
delete_title=Xóa vùng
delete_mesg=Bạn có chắc chắn muốn xóa vùng $1? Tất cả các hồ sơ và các tập tin khu vực sẽ bị xóa.

View File

@@ -48,6 +48,8 @@ master_defttl=记录的默认生存时间
master_edefttl='$1'不是记录的有效默认生存时间
master_esoagone=找不到SOA记录
master_einclude=附加模板文件不存在
master_vmin=该区域由 Virtualmin 管理。应使用 Virtualmin UI 编辑记录,以确保它们与其他虚拟服务器设置一致。
master_vminalias=该区域是 Virtualmin 域的别名,与其目标保持同步。切勿在此处编辑记录,因为任何更改都将被覆盖!
delete_mesg3=您确定要删除区域$1吗
delete_onslave=还要从从服务器删除吗?

View File

@@ -77,6 +77,8 @@ master_defttl=記錄的默認生存時間
master_edefttl='$1'不是記錄的有效默認生存時間
master_esoagone=找不到SOA記錄
master_einclude=附加模板文件不存在
master_vmin=該區域由 Virtualmin 管理。應使用 Virtualmin UI 編輯記錄,以確保它們與其他虛擬服務器設置一致。
master_vminalias=該區域是 Virtualmin 域的別名,與其目標保持同步。切勿在此處編輯記錄,因為任何更改都將被覆蓋!
delete_mesg2=您確定要刪除根區域嗎您的DNS服務器可能不再能夠在Internet上查找地址。
delete_mesg3=您確定要刪除區域$1嗎

View File

@@ -495,11 +495,10 @@ return $name.
# Increase the serial number in some SOA record by 1
sub bump_soa_record
{
my($r, $v, $vals);
for(my $i=0; $i<@{$_[1]}; $i++) {
$r = $_[1]->[$i];
my ($file, $recs) = @_;
foreach my $r (@$recs) {
if ($r->{'type'} eq "SOA") {
$v = $r->{'values'};
my $v = $r->{'values'};
# already set serial if no acl allow it to update or update
# is disabled
my $serial = $v->[2];
@@ -507,8 +506,8 @@ for(my $i=0; $i<@{$_[1]}; $i++) {
# automatically handle serial numbers ?
$serial = &compute_serial($v->[2]);
}
$vals = "$v->[0] $v->[1] (\n\t\t\t$serial\n\t\t\t$v->[3]\n".
"\t\t\t$v->[4]\n\t\t\t$v->[5]\n\t\t\t$v->[6] )";
my $vals = "$v->[0] $v->[1] (\n\t\t\t$serial\n\t\t\t$v->[3]\n".
"\t\t\t$v->[4]\n\t\t\t$v->[5]\n\t\t\t$v->[6] )";
&modify_record($r->{'file'}, $r, $r->{'realname'}, $r->{'ttl'},
$r->{'class'}, $r->{'type'}, $vals);
}

View File

@@ -59,9 +59,9 @@ if ($access{'lang'}) {
# Old datetime format or a new locale
if ($access{'locale'}) {
eval "use DateTime; use DateTime::Locale; use DateTime::TimeZone;";
&foreign_require('webmin');
if (!$@) {
eval "use DateTime; use DateTime::Locale; use DateTime::TimeZone;";
if (!$@ && $] > 5.011) {
my $locales = &list_locales();
my %localesrev = reverse %{$locales};
my $locale = $locale_auto || $gconfig{'locale'} || &get_default_system_locale();

View File

@@ -233,25 +233,32 @@ print "<p><b>$text{'do_done'}</b><p>\n";
# Show details of installed packages, where we have them
for($i=0; $i<@names; $i++) {
next if (!$pinfo[$i]);
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'do_details'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
print &ui_table_start($text{'do_details'}, "width=100%", 4);
if ($pinfo[$i]->[2]) {
print "<tr> <td valign=top width=20%><b>$text{'do_desc'}</b></td>\n";
print "<td colspan=3><pre>$pinfo[$i]->[2]</pre></td> </tr>\n";
print &ui_table_row($text{'do_desc'},
"<pre>".&html_escape($pinfo[$i]->[2])."</pre>", 3);
}
print "<tr> <td width=20%><b>$text{'do_pack'}</b></td> <td>$pinfo[$i]->[0]</td>\n";
print "<td width=20%><b>$text{'do_class'}</b></td> <td>",
$pinfo[$i]->[1] ? $pinfo[$i]->[1] : $text{'do_none'},"</td> </tr>\n";
print &ui_table_row($text{'do_pack'},
$pinfo[$i]->[0]);
print "<tr> <td width=20%><b>$text{'do_ver'}</b></td> <td>$pinfo[$i]->[4]</td>\n";
print "<td width=20%><b>$text{'do_vend'}</b></td> <td>$pinfo[$i]->[5]</td> </tr>\n";
print &ui_table_row($text{'do_class'},
$pinfo[$i]->[1] || $text{'do_none'});
print "<tr> <td width=20%><b>$text{'do_arch'}</b></td> <td>$pinfo[$i]->[3]</td>\n";
print "<td width=20%><b>$text{'do_inst'}</b></td> <td>$pinfo[$i]->[6]</td> </tr>\n";
print "</table></td></tr></table><p>\n";
print &ui_table_row($text{'do_ver'},
$pinfo[$i]->[4]);
print &ui_table_row($text{'do_vend'},
$pinfo[$i]->[5]);
print &ui_table_row($text{'do_arch'},
$pinfo[$i]->[3]);
print &ui_table_row($text{'do_inst'},
$pinfo[$i]->[6]);
print &ui_table_end();
}
&remote_finished();

View File

@@ -22,10 +22,12 @@ else {
if ($in{source} == 0) {
# installing from local file (or maybe directory)
if (!$in{'local'})
{ &install_error($text{'install_elocal'}); }
if (!-r $in{'local'})
{ &install_error(&text('install_elocal2', $in{'local'})); }
if (!$in{'local'}) {
&install_error($text{'install_elocal'});
}
if (!-r $in{'local'}) {
&install_error(&text('install_elocal2', &html_escape($in{'local'})));
}
$source = $in{'local'};
$pfile = $in{'local'};
$filename = $in{'local'};
@@ -177,7 +179,7 @@ print &ui_form_end([ [ undef, $text{'install_ok'} ] ]);
sub install_error
{
print "<b>$main::whatfailed : $_[0]</b> <p>\n";
print "<b>$main::whatfailed : @{[&html_escape($_[0])]}</b> <p>\n";
&ui_print_footer("", $text{'index_return'});
exit;
}

View File

@@ -29,7 +29,7 @@ if (@match == 1) {
&ui_print_header(undef, $text{'search_title'}, "", "search");
if (@match) {
@match = sort { lc($a->{'name'}) cmp lc($b->{'name'}) } @match;
print "<b>",&text('search_match', "<tt>$s</tt>"),"</b><br>\n";
print "<b>",&text('search_match', "<tt>".&html_escape($s)."</tt>"),"</b><br>\n";
print &ui_form_start("delete_packs.cgi", "post");
print &ui_hidden("search", $in{'search'}),"\n";
@@ -43,8 +43,8 @@ if (@match) {
$text{'search_desc'} ], 100, 0, \@tds);
foreach $i (@match) {
local @cols;
push(@cols, "<a href=\"edit_pack.cgi?search=$s&package=".
&urlize($i->{'name'})."\">$i->{'name'}</a>");
push(@cols, "<a href=\"edit_pack.cgi?search=".&urlize($s).
"&package=".&urlize($i->{'name'})."\">$i->{'name'}</a>");
$c = $i->{'class'};
push(@cols, $i->{'class'} || $text{'search_none'});
push(@cols, $i->{'desc'});
@@ -62,7 +62,7 @@ if (@match) {
print &ui_form_end();
}
else {
print "<b>",&text('search_nomatch', "<tt>$s</tt>"),"</b>\n";
print "<b>",&text('search_nomatch', "<tt>".&html_escape($s)."</tt>"),"</b>\n";
}
&ui_print_footer("", $text{'index_return'});

View File

@@ -16,10 +16,12 @@ else {
if ($in{source} == 0) {
# installing from local file (or maybe directory)
if (!$in{'local'})
{ &download_error($text{'install_elocal'}); }
if (!-r $in{'local'})
{ &download_error(&text('install_elocal2', $in{'local'})); }
if (!$in{'local'}) {
&download_error($text{'install_elocal'});
}
if (!-r $in{'local'}) {
&download_error(&text('install_elocal2', &html_escape($in{'local'})));
}
$source = $in{'local'};
$pfile = $in{'local'};
$need_unlink = 0;
@@ -55,7 +57,9 @@ elsif ($in{source} == 2) {
&ftp_download($host, $file, $pfile, \$error,
\&progress_callback);
}
else { &download_error(&text('install_eurl', $in{'url'})); }
else {
&download_error(&text('install_eurl', &html_escape($in{'url'})));
}
&download_error($error) if ($error);
$source = $in{'url'};
$need_unlink = 1;

View File

@@ -16,10 +16,12 @@ else {
if ($in{source} == 0) {
# installing from local file (or maybe directory)
if (!$in{'local'})
{ &download_error($text{'install_elocal'}); }
if (!-r $in{'local'})
{ &download_error(&text('install_elocal2', $in{'local'})); }
if (!$in{'local'}) {
&download_error($text{'install_elocal'});
}
if (!-r $in{'local'}) {
&download_error(&text('install_elocal2', &html_escape($in{'local'})));
}
$source = $in{'local'};
$pfile = $in{'local'};
$need_unlink = 0;
@@ -55,7 +57,9 @@ elsif ($in{source} == 2) {
&ftp_download($host, $file, $pfile, \$error,
\&progress_callback);
}
else { &download_error(&text('install_eurl', $in{'url'})); }
else {
&download_error(&text('install_eurl', &html_escape($in{'url'})));
}
&download_error($error) if ($error);
$source = $in{'url'};
$need_unlink = 1;

View File

@@ -389,7 +389,7 @@ print &ui_form_end([ [ undef, $text{'download_cont'} ],
sub install_error
{
print "<br><b>$main::whatfailed : $_[0]</b> <p>\n";
print "<br><b>$main::whatfailed : @{[&html_escape($_[0])]}</b> <p>\n";
&ui_print_footer($in{'return'},
$in{'returndesc'} || $text{'index_return'});
exit;

View File

@@ -925,7 +925,7 @@ $table .= &ui_columns_row(\@cols, [ "valign=top", "valign=top", "valign=top",
"valign=top", "valign=top" ]);
$table .= &ui_columns_end();
$table .= $text{'edit_ctrl'};
$rv .= &ui_table_row(undef, $table, $width);
$rv .= &ui_table_row(undef, $table, $width, undef, ['data-schedule-tr']);
return $rv;
}
@@ -1228,34 +1228,53 @@ Returns a human-readable text string describing when a cron job is run.
=cut
sub when_text
{
local $pfx = $_[1] ? "uc" : "";
if ($_[0]->{'interval'}) {
return &text($pfx.'when_interval', $_[0]->{'interval'});
my ($job, $ucfirst) = @_;
my $pfx = $ucfirst ? "uc" : "";
if ($job->{'interval'}) {
return &text($pfx.'when_interval', $job->{'interval'});
}
elsif ($_[0]->{'special'}) {
elsif ($job->{'special'}) {
$pfx = $_[1] ? "" : "lc";
return $text{$pfx.'edit_special_'.$_[0]->{'special'}};
return $text{$pfx.'edit_special_'.$job->{'special'}};
}
elsif ($_[0]->{'boot'}) {
elsif ($job->{'boot'}) {
return &text($pfx.'when_boot');
}
elsif ($_[0]->{'mins'} eq '*' && $_[0]->{'hours'} eq '*' && $_[0]->{'days'} eq '*' && $_[0]->{'months'} eq '*' && $_[0]->{'weekdays'} eq '*') {
elsif ($job->{'mins'} eq '*' && $job->{'hours'} eq '*' &&
$job->{'days'} eq '*' && $job->{'months'} eq '*' &&
$job->{'weekdays'} eq '*') {
return $text{$pfx.'when_min'};
}
elsif ($_[0]->{'mins'} =~ /^\d+$/ && $_[0]->{'hours'} eq '*' && $_[0]->{'days'} eq '*' && $_[0]->{'months'} eq '*' && $_[0]->{'weekdays'} eq '*') {
return &text($pfx.'when_hour', $_[0]->{'mins'});
elsif ($job->{'mins'} =~ /^\d+$/ && $job->{'hours'} eq '*' &&
$job->{'days'} eq '*' && $job->{'months'} eq '*' &&
$job->{'weekdays'} eq '*') {
return &text($pfx.'when_hour', $job->{'mins'});
}
elsif ($_[0]->{'mins'} =~ /^\d+$/ && $_[0]->{'hours'} =~ /^\d+$/ && $_[0]->{'days'} eq '*' && $_[0]->{'months'} eq '*' && $_[0]->{'weekdays'} eq '*') {
return &text($pfx.'when_day', sprintf("%2.2d", $_[0]->{'mins'}), $_[0]->{'hours'});
elsif ($job->{'mins'} =~ /^\d+$/ && $job->{'hours'} =~ /^\d+$/ &&
$job->{'days'} eq '*' && $job->{'months'} eq '*' &&
$job->{'weekdays'} eq '*') {
return &text($pfx.'when_day',
sprintf("%2.2d", $job->{'mins'}),
sprintf("%2.2d", $job->{'hours'}));
}
elsif ($_[0]->{'mins'} =~ /^\d+$/ && $_[0]->{'hours'} =~ /^\d+$/ && $_[0]->{'days'} =~ /^\d+$/ && $_[0]->{'months'} eq '*' && $_[0]->{'weekdays'} eq '*') {
return &text($pfx.'when_month', sprintf("%2.2d", $_[0]->{'mins'}), $_[0]->{'hours'}, $_[0]->{'days'});
elsif ($job->{'mins'} =~ /^\d+$/ && $job->{'hours'} =~ /^\d+$/ &&
$job->{'days'} =~ /^\d+$/ && $job->{'months'} eq '*' &&
$job->{'weekdays'} eq '*') {
return &text($pfx.'when_month',
sprintf("%2.2d", $job->{'mins'}),
sprintf("%2.2d", $job->{'hours'}),
$job->{'days'});
}
elsif ($_[0]->{'mins'} =~ /^\d+$/ && $_[0]->{'hours'} =~ /^\d+$/ && $_[0]->{'days'} eq '*' && $_[0]->{'months'} eq '*' && $_[0]->{'weekdays'} =~ /^\d+$/) {
return &text($pfx.'when_weekday', sprintf("%2.2d", $_[0]->{'mins'}), $_[0]->{'hours'}, $text{"day_".$_[0]->{'weekdays'}});
elsif ($job->{'mins'} =~ /^\d+$/ && $job->{'hours'} =~ /^\d+$/ &&
$job->{'days'} eq '*' && $job->{'months'} eq '*' &&
$job->{'weekdays'} =~ /^\d+$/) {
return &text($pfx.'when_weekday',
sprintf("%2.2d", $job->{'mins'}),
sprintf("%2.2d", $job->{'hours'}),
$text{"day_".$job->{'weekdays'}});
}
else {
return &text($pfx.'when_cron', join(" ", $_[0]->{'mins'}, $_[0]->{'hours'}, $_[0]->{'days'}, $_[0]->{'months'}, $_[0]->{'weekdays'}));
return &text($pfx.'when_cron', join(" ", $job->{'mins'}, $job->{'hours'}, $job->{'days'}, $job->{'months'}, $job->{'weekdays'}));
}
}
@@ -1584,6 +1603,7 @@ if ($config{'system_crontab'}) {
}
if ($config{'cronfiles_dir'}) {
push(@files, glob(&translate_filename($config{'cronfiles_dir'})."/*"));
@files = grep { -f $_ } @files;
}
return &unique(@files);
}

View File

@@ -108,7 +108,7 @@ foreach $u (@ulist) {
$cmdidx = scalar(@cols);
push(@cols, &ui_link("edit_env.cgi?idx=".$idx,
"<i>$text{'index_env'}</i> ".
"<tt>$job->{'name'} = $job->{'value'}</tt>") );
"<tt>@{[&html_escape($job->{'name'})]} = @{[&html_escape($job->{'value'})]}</tt>") );
$donelink = 1;
}
elsif (@exp && $access{'command'}) {
@@ -156,7 +156,7 @@ foreach $u (@ulist) {
# Show comment
if ($config{'show_comment'} || $userconfig{'show_comment'}) {
push(@cols, $job->{'comment'});
push(@cols, &html_escape($job->{'comment'}));
}
# Show next run time

View File

@@ -1,146 +0,0 @@
index_when=Запустить время от времени
index_comment=Описание
index_none2=Нет заданий cron, к которым у вас есть доступ.
index_none3=У вас пока нет работы cron.
index_ecreate=Создайте новую переменную среды.
index_manual=Ручное редактирование заданий cron.
index_env=Переменная среды
index_move=Переехать
index_next=Следующий прогон
index_nunknown=неизвестный
index_run=Бег?
index_ecmd=Команда $1 для управления пользовательскими настройками Cron не найдена. Может быть, Cron не установлен в этой системе?
index_esingle=Файл $1, в котором перечислены задания Cron, не существует. Может быть, Cron не установлен в этой системе?
index_ecrondir=Каталог заданий Cron $1 не существует. Может быть, конфигурация модуля неверна, или Cron не установлен?
index_ecrondir_create=Попробуйте создать каталог заданий $1 ?
index_delete=Удалить выбранные вакансии
index_disable=Отключить выбранные вакансии
index_enable=Включить выбранные вакансии
index_esearch=По вашему запросу $1 не найдено ни одной вакансии.
index_toomany2=Есть слишком много рабочих мест, чтобы показать. Используйте форму поиска выше, чтобы ограничить список.
index_search=Найти подходящие вакансии Cron
index_ok=Поиск
index_searchres=Задания Cron, соответствующие $1 ..
index_reset=Сбросить поиск.
index_econfigcheck=Заданиями Cron нельзя управлять в вашей системе, так как недопустимая конфигурация модуля : $1
index_stop=Остановить демона Крон
index_stopdesc=Остановите фоновый серверный процесс <tt>crond</tt>, выполняющий запланированные задания cron. Это предотвратит выполнение команд в указанное время.
index_start=Запустить крон-демон
index_startdesc=Запустите фоновый серверный процесс <tt>crond</tt>, который запускает запланированные задания cron. <font color=red><b>Это необходимо для выполнения команд в указанное время.</font></font>
index_boot=Запустить загрузку Cron Daemon?
index_bootdesc=Измените этот параметр, чтобы включить или отключить запуск демона запланированных заданий cron во время загрузки системы.
edit_next=Время следующего запуска
edit_comment=Описание
edit_range=Диапазон дат для выполнения
edit_saverun=Сохранить и запустить сейчас
edit_clone=Клон Работа
edit_special1=Простой график ..
edit_special0=Время и даты выбраны ниже ..
edit_special_hourly=почасовой
edit_special_daily=Ежедневно (в полночь)
edit_special_weekly=Еженедельно (в воскресенье)
edit_special_monthly=Ежемесячно (1-го числа)
edit_special_yearly=Ежегодно (1 января)
edit_special_reboot=Когда система загружается
lcedit_special_hourly=почасовой
lcedit_special_daily=ежедневно (в полночь)
lcedit_special_weekly=еженедельно (в воскресенье)
lcedit_special_monthly=ежемесячно (1-го числа)
lcedit_special_yearly=ежегодно (1 января)
lcedit_special_reboot=когда система загружается
save_ecannot2=Вам не разрешено создавать рабочие места cron
save_eidx=Задание Cron было успешно сохранено, но не может быть запущено, поскольку оно не было найдено!
env_title1=Изменить переменную среды
env_title2=Создать переменную среды
env_user=Для пользователя
env_active=Активный?
env_details=Детали переменных среды
env_err=Не удалось сохранить переменную среды
env_order=Примечание. Этот параметр переменной среды будет применяться только к заданиям Cron после него в списке заданий на главной странице модуля.
env_where=Добавить переменную среды
env_where2=Переместить переменную среды
env_top=Перед всеми заданиями Cron для пользователя
env_bot=После всех работ Cron
env_leave=Текущая позиция
exec_cmdbg=Выполнение команды $1 в качестве фонового процесса.
acl_command=Можно просматривать и редактировать команды Cron?
acl_create=Можно ли создавать рабочие места в Cron?
acl_delete=Можно ли удалить задания Cron?
acl_move=Может перенести работу Cron?
acl_kill=Может прекратить работу Cron?
acl_hourly=Ограничить количество рабочих мест максимум до почасовой?
acl_hourlydef=Как установлено в модуле Config
acl_stop=Может ли остановить и запустить демон Cron?
log_kill=Прекращено задание Cron для $1
log_kill_l=Прекращено задание Cron "$2" для $1
log_env_create=Создана переменная среды для $1
log_env_modify=Измененная переменная среды для $1
log_env_delete=Удаленная переменная среды для $1
log_move=Задание Cron перемещено для $1
log_crons_delete=Удалено $1 заданий Cron
log_crons_disable=Отключено $1 заданий Cron
log_crons_enable=Включено $1 заданий Cron
log_stop=Остановленный демон cron
log_start=Запущен демон cron
log_bootup=Включен демон cron при загрузке
log_bootdown=Отключенный демон cron при загрузке
ecopy=Обнаружена ошибка в новой конфигурации Cron: $1 $2
when_min=каждую минуту
when_hour=каждый час в $1 за час
when_day=каждый день на $2:$1
when_month=в день $3 каждый месяц в $2:$1
when_weekday=каждый $3 на $2:$1
when_cron=в момент времени $1
when_interval=каждые $1 секунды
when_boot=во время запуска
ucwhen_min=Каждую минуту
ucwhen_hour=Каждый час в $1 за час
ucwhen_day=Каждый день в $2:$1
ucwhen_month=В день $3 каждый месяц в $2:$1
ucwhen_weekday=Каждый $3 на $2:$1
ucwhen_cron=Время cron $1
ucwhen_interval=Каждые $1 секунды
ucwhen_boot=Во время запуска
move_err=Не удалось переместить работу Cron
move_etype=Эта работа не может быть перемещена
kill_err=Не удалось завершить работу Cron
kill_ecannot=Вы не можете прекратить эту работу
kill_egone=Больше не работает
kill_ekill=Убить не удалось : $1
kill_title=Завершить работу Cron
kill_rusure=Вы уверены, что хотите завершить процесс $1 с PID $2 ?
kill_rusure2=Вы уверены, что хотите завершить процесс $1 с PID $2 и всеми его подпроцессами?
kill_ok=Да, прекратить это
range_all=Беги на любую дату
range_start=Запускать только с $1
range_end=в $1
range_estart=Отсутствует или неверная дата начала в диапазоне для запуска
range_eend=Отсутствует или недействительная дата окончания в диапазоне для запуска
delete_err=Не удалось удалить задания Cron
delete_enone=Не выбрано, ничего не выбрано
manual_title=Редактировать Cron Jobs вручную
manual_edit=Cron файл для редактирования:
manual_ok=редактировать
manual_editing=Используйте текстовое поле ниже для редактирования заданий Cron в $1. Будьте осторожны, так как Webmin не будет выполнять проверку!
manual_efile=Выбранный файл недействителен!
manual_ecannot=Вы не можете вручную редактировать задания cron
stop_err=Не удалось остановить демон
start_err=Не удалось запустить демон
stop_ecannot=Вам не разрешено останавливать демона
start_ecannot=Вам не разрешено запускать демон
bootup_ecannot=Вам не разрешено включать демон при загрузке

View File

@@ -74,12 +74,12 @@ open(FILE, "<".$_[0]);
while($line = <FILE>) {
# strip comments
$line =~ s/\r|\n//g;
$line =~ s/([^\\])\\"/$1\\042/g; # convert escaped quotes to \042
$line =~ s/^([^"#]*)#.*$/$1/g;
$line =~ s/^([^"]*)\/\/.*$/$1/g;
$line =~ s/^([^"]*)\s+#.*$/$1/g; # remove stuff after #, unless
$line =~ s/^(.*".*".*)\s+#.*$/$1/g; # it is inside quotes
$line =~ s/\\\\/\\134/g; # convert \\ into \134
$line =~ s/([^\\])\\"/$1\\042/g; # convert escaped quotes to \042
while(1) {
if (!$cmode && $line =~ /\/\*/ && $line !~ /\".*\/\*.*\"/) {
# start of a C-style comment

View File

@@ -566,4 +566,15 @@ if ($?) {
}
}
# Unblock all IPs in given jail
sub unblock_jail
{
my ($jail) = @_;
my $cmd = "$config{'client_cmd'} reload --unban ".quotemeta($jail)." 2>&1 </dev/null";
my $out = &backquote_logged($cmd);
if ($?) {
&error(&text('status_err_unbanjail', &html_escape($jail)) . " : $out");
}
}
1;

72
fail2ban/jail_blocks.cgi Executable file
View File

@@ -0,0 +1,72 @@
#!/usr/local/bin/perl
# Show a status of all active jails
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './fail2ban-lib.pl';
our (%in, %text, %config);
&ReadParse();
my $jail = $in{'jail'};
my $out = &backquote_logged("$config{'client_cmd'} status 2>&1 </dev/null");
my ($jail_list) = $out =~ /jail\s+list:\s*(.*)/im;
my @jails = split(/,\s*/, $jail_list);
&indexof($jail, @jails) > -1 || error($text{'status_err_unknownjail'});
&ui_print_header("$jail", $text{'status_title3'}, "");
my $fh = 'jailinfo';
my @jail_blocks;
&open_execute_command($fh, "$config{'client_cmd'} get @{[quotemeta($jail)]} banip --with-time 2>&1 </dev/null", 1);
while(<$fh>) {
if (/^(?<ip>.*?)\s+(?<start>.*?\s+.*?)\s+.*?\s+.*?\s+=\s+(?<end>.*)$/) {
my $ip = $+{ip};
my $start = $+{start};
my $end = $+{end};
if ($ip && $start && $end) {
push(@jail_blocks, [$ip, $start, $end]);
}
}
}
close($fh);
if (@jail_blocks) {
my $popts = \%in;
$popts->{'paginations'}->{'form'} = { 'jail' => $jail };
my $pagination = &ui_paginations(\@jail_blocks, $popts);
my @links = ( &select_all_link("ip"),
&select_invert_link("ip"));
print $pagination->{'search'}->{'form-data'};
print &ui_form_start("unblock_jailed_ip.cgi", "post");
print &ui_links_row(\@links);
print &ui_columns_start([ "",
$text{'status_head_blocks_ip'},
$text{'status_head_blocks_stime'},
$text{'status_head_blocks_etime'} ]);
if (@jail_blocks) {
foreach my $r (@jail_blocks) {
print &ui_checked_columns_row($r, [ 'width=5' ], "ip", $r->[0]);
}
}
else {
print $pagination->{'search'}->{'no-results'};
}
print &ui_columns_end();
print $pagination->{'paginator'}->{'form-data'};
print $pagination->{'paginator'}->{'form-scripts'};
print &ui_hidden("jail", $jail);
print &ui_hidden("return", 1);
print $pagination->{'form'};
print &ui_links_row(\@links);
print &ui_form_end([ [ undef, $text{'status_jail_unblock_ips'} ] ]);
print $pagination->{'search'}->{'form'};
print $pagination->{'paginator'}->{'form'};
}
else {
print &text('status_jail_noactiveips', $jail);
}
&ui_print_footer("list_status.cgi", $text{'status_return'},
"", $text{'index_return'});

View File

@@ -171,21 +171,30 @@ manual_err=Konfiglêer kon nie gewysig word nie
manual_edata=Geen config-lêerinhoud ingevoer nie
status_title=Tronkstatus en aksies
status_title2=Tronkstatus
status_head_jail_name=Tronk naam
status_title3=Tronkblokke
status_return=tronke status
status_head_jail_blocks=Tronk blokke
status_head_currently_failed=Tans misluk
status_head_total_failed=Totaal het misluk
status_head_file_list=Lêer lys
status_head_currently_banned=Tans verban
status_head_total_banned=Totaal verban
status_head_banned_ip_list=Verbode IP-lys
status_head_blocks_ip=IP
status_head_blocks_stime=Begin Tyd
status_head_blocks_etime=Eind tyd
status_rules_plus_more=+ $1 meer
status_jail_unblock_ip=Verwyder $1 van verbode lys
status_jail_unblock=Deblokkeer alle IP's vir geselekteerde tronke
status_jail_unblock_ips=Deblokkeer geselekteerde IP
status_jail_noactive=Daar is nog geen aktiewe tronke geaktiveer nie.
status_jail_noactiveips=Daar is geen geblokkeerde inskrywings in die tronk <tt>$1</tt> gevind nie.
status_err_set=Kon nie stel handeling nie
status_err_unblock=Kon nie handeling deblokkeer nie
status_err_nojail=Geen tronke is gekies nie
status_err_noips=Geen IP is gekies nie
status_err_unban=Kan nie $1 IP-adres ontban nie
status_err_unbanjail=Kan nie $1 tronk de-ban nie
status_err_unknownjail=Onbekende tronk
syslog_logtarget=Fail2Ban aksie log

View File

@@ -171,21 +171,30 @@ manual_err=فشل في تحرير ملف التكوين
manual_edata=لم يتم إدخال محتويات ملف التكوين
status_title=حالة السجون والإجراءات
status_title2=حالة السجون
status_head_jail_name=اسم السجن
status_title3=كتل السجن
status_return=حالة السجون
status_head_jail_blocks=كتل السجن
status_head_currently_failed=فشل حاليا
status_head_total_failed=مجموع فشل
status_head_file_list=قائمة الملفات
status_head_currently_banned=محظور حاليا
status_head_total_banned=مجموع المحظورة
status_head_banned_ip_list=قائمة IP المحظورة
status_head_blocks_ip=IP
status_head_blocks_stime=وقت البدء
status_head_blocks_etime=وقت النهاية
status_rules_plus_more=+$1 آخرين
status_jail_unblock_ip=قم بإزالة$1 من القائمة المحظورة
status_jail_unblock=قم بإلغاء حظر جميع عناوين IP للسجون المختارة
status_jail_unblock_ips=إلغاء حظر IP المحدد
status_jail_noactive=لا توجد سجون نشطة ممكّنة حتى الآن.
status_jail_noactiveips=لا توجد إدخالات محظورة في السجن تم العثور على <tt>$1</tt>.
status_err_set=فشل تعيين الإجراء
status_err_unblock=فشل في إلغاء حظر الإجراء
status_err_nojail=لم يتم اختيار أي سجون
status_err_noips=لم يتم تحديد IP
status_err_unban=لا يمكن إلغاء حظر عنوان IP لـ$1
status_err_unbanjail=لا يمكن إلغاء حظر سجن$1
status_err_unknownjail=سجن مجهول
syslog_logtarget=سجل العمل Fail2Ban

View File

@@ -171,21 +171,30 @@ manual_err=Не атрымалася рэдагаваць канфігурацы
manual_edata=Не ўводзіцца змесціва канфігурацыйнага файла
status_title=Статус і дзеянні турмы
status_title2=Статус турмы
status_head_jail_name=Назва турмы
status_title3=Турэмныя блокі
status_return=статус турмы
status_head_jail_blocks=Турэмныя блокі
status_head_currently_failed=У цяперашні час не атрымалася
status_head_total_failed=Усяго не атрымалася
status_head_file_list=Спіс файлаў
status_head_currently_banned=У цяперашні час забаронены
status_head_total_banned=Поўная забарона
status_head_banned_ip_list=Спіс забароненых IP
status_head_blocks_ip=IP
status_head_blocks_stime=Час пачатку
status_head_blocks_etime=Час заканчэння
status_rules_plus_more=+ яшчэ $1
status_jail_unblock_ip=Выдаліць $1 са спісу забароненых
status_jail_unblock=Разблакіраваць усе IP-адрасы для выбраных турмаў
status_jail_unblock_ips=Разблакіраваць выбраны IP
status_jail_noactive=Пакуль няма актыўных турмаў.
status_jail_noactiveips=Заблакіраваных запісаў у турме <tt>$1</tt> не знойдзена.
status_err_set=Не атрымалася ўсталяваць дзеянне
status_err_unblock=Не ўдалося разблакіраваць дзеянне
status_err_nojail=СІЗА не выбрана
status_err_noips=IP не выбраны
status_err_unban=Немагчыма разбаніць $1 IP-адрас
status_err_unbanjail=Немагчыма зняць бан з турмы $1
status_err_unknownjail=Невядомая турма
syslog_logtarget=Журнал дзеянняў Fail2Ban

View File

@@ -171,21 +171,30 @@ manual_err=Конфигурационният файл не можа да се
manual_edata=Не е въведено съдържание на конфигурационен файл
status_title=Състояние и действия на затворите
status_title2=Статус на затворите
status_head_jail_name=Име на затвора
status_title3=Затворнически блокове
status_return=състояние на затворите
status_head_jail_blocks=Затворнически блокове
status_head_currently_failed=В момента неуспешно
status_head_total_failed=Общо неуспешно
status_head_file_list=Списък с файлове
status_head_currently_banned=В момента е забранено
status_head_total_banned=Тотално забранено
status_head_banned_ip_list=Списък с забранени IP адреси
status_head_blocks_ip=IP
status_head_blocks_stime=Начален час
status_head_blocks_etime=Крайно време
status_rules_plus_more=+ още $1
status_jail_unblock_ip=Премахнете $1 от списъка с забранени
status_jail_unblock=Деблокирайте всички IP адреси за избрани затвори
status_jail_unblock_ips=Деблокиране на избрания IP
status_jail_noactive=Все още няма активирани активни затвори.
status_jail_noactiveips=Няма намерени блокирани записи в затвора <tt>$1</tt>.
status_err_set=Неуспешно зададено действие
status_err_unblock=Деблокирането на действието не бе успешно
status_err_nojail=Не са избрани затвори
status_err_noips=Не е избрано IP
status_err_unban=Не може да се отмени забрана на $1 IP адрес
status_err_unbanjail=Не може да се отмени забраната на $1 затвор
status_err_unknownjail=Неизвестен затвор
syslog_logtarget=Fail2Ban дневник на действията

View File

@@ -3,20 +3,28 @@ log_update_action=Acció modificada $1
log_update_jail=Presó modificada $1
status_title=Estat i accions de les presons
status_title2=Estat de les presons
status_head_jail_name=Nom de la presó
status_title3=Blocs de la presó
status_return=estat de presons
status_head_jail_blocks=Blocs de presó
status_head_currently_failed=Actualment fallat
status_head_total_failed=Total fallit
status_head_file_list=Llista de fitxers
status_head_currently_banned=Prohibit actualment
status_head_total_banned=Total prohibit
status_head_banned_ip_list=Llista d'IP prohibides
status_head_blocks_ip=IP
status_head_blocks_stime=L'hora d'inici
status_head_blocks_etime=Fi del temps
status_rules_plus_more=+ $1 més
status_jail_unblock_ip=Elimina $1 de la llista prohibida
status_jail_unblock=Desbloquegeu totes les IP de les presons seleccionades
status_jail_unblock_ips=Desbloqueja la IP seleccionada
status_jail_noactive=Encara no hi ha presons actives activades.
status_jail_noactiveips=No s'ha trobat cap entrada bloquejada a la presó <tt>$1</tt>.
status_err_set=No s'ha pogut establir l'acció
status_err_unblock=No s'ha pogut desbloquejar l'acció
status_err_nojail=No s'ha seleccionat cap presó
status_err_noips=No s'ha seleccionat cap IP
status_err_unban=No es pot desbloquejar l'adreça IP de $1
status_err_unbanjail=No es pot desactivar la presó $1
status_err_unknownjail=Presó desconeguda

View File

@@ -171,21 +171,30 @@ manual_err=Nepodařilo se upravit konfigurační soubor
manual_edata=Nebyl zadán žádný obsah konfiguračního souboru
status_title=Stav vězení a akce
status_title2=Stav vězení
status_head_jail_name=Jméno vězení
status_title3=Vězeňské bloky
status_return=stav věznic
status_head_jail_blocks=Vězeňské bloky
status_head_currently_failed=Aktuálně neúspěšné
status_head_total_failed=Celkem se nezdařilo
status_head_file_list=Seznam souborů
status_head_currently_banned=Aktuálně zakázáno
status_head_total_banned=Úplně zakázáno
status_head_banned_ip_list=Seznam zakázaných IP adres
status_head_blocks_ip=IP
status_head_blocks_stime=Doba spuštění
status_head_blocks_etime=Čas ukončení
status_rules_plus_more=+ $1 dalšího
status_jail_unblock_ip=Odebrat $1 ze seznamu zakázaných
status_jail_unblock=Odblokujte všechny IP adresy pro vybraná vězení
status_jail_unblock_ips=Odblokovat vybranou IP
status_jail_noactive=Zatím nejsou povoleny žádné aktivní vězení.
status_jail_noactiveips=Ve vězení <tt>$1</tt> nebyly nalezeny žádné blokované záznamy.
status_err_set=Akce nastavení se nezdařila
status_err_unblock=Akci se nepodařilo odblokovat
status_err_nojail=Nebyla vybrána žádná vězení
status_err_noips=Nebyla vybrána žádná IP
status_err_unban=Nelze zrušit zákaz $1 IP adresy
status_err_unbanjail=Nelze zrušit zákaz $1 vězení
status_err_unknownjail=Neznámé vězení
syslog_logtarget=Protokol akcí Fail2Ban

View File

@@ -171,21 +171,30 @@ manual_err=Kunne ikke redigere konfigurationsfilen
manual_edata=Intet indtastet indhold af konfigurationsfil
status_title=Fængselsstatus og handlinger
status_title2=Fængselsstatus
status_head_jail_name=Navn på fængsel
status_title3=Fængselsblokke
status_return=fængselsstatus
status_head_jail_blocks=Fængselsblokeringer
status_head_currently_failed=I øjeblikket mislykkedes
status_head_total_failed=Total mislykkedes
status_head_file_list=Filliste
status_head_currently_banned=I øjeblikket forbudt
status_head_total_banned=Totalt forbudt
status_head_banned_ip_list=Liste over forbudte IP-adresser
status_head_blocks_ip=IP
status_head_blocks_stime=Starttidspunkt
status_head_blocks_etime=Sluttidspunkt
status_rules_plus_more=+ $1 mere
status_jail_unblock_ip=Fjern $1 fra forbudt liste
status_jail_unblock=Fjern blokering af alle IP'er for udvalgte fængsler
status_jail_unblock_ips=Fjern blokering af valgt IP
status_jail_noactive=Der er endnu ingen aktive jails aktiveret.
status_jail_noactiveips=Der er ingen blokerede poster i fængslet <tt>$1</tt> fundet.
status_err_set=Handlingen kunne ikke indstilles
status_err_unblock=Kunne ikke fjerne blokeringen af handlingen
status_err_nojail=Ingen fængsler er blevet valgt
status_err_noips=Der er ikke valgt nogen IP
status_err_unban=Kan ikke ophæve udelukkelse af $1 IP-adresse
status_err_unbanjail=Kan ikke ophæve ban $1 fængsel
status_err_unknownjail=Ukendt fængsel
syslog_logtarget=Fail2Ban handling log

View File

@@ -1,18 +1,26 @@
status_title=Jails-Status und Aktionen
status_title2=Gefängnisstatus
status_head_jail_name=Name des Gefängnisses
status_title3=Gefängnisblöcke
status_return=Gefängnisstatus
status_head_jail_blocks=Gefängnisblöcke
status_head_currently_failed=Aktuell fehlgeschlagen
status_head_total_failed=Total gescheitert
status_head_file_list=Dateiliste
status_head_currently_banned=Derzeit verboten
status_head_total_banned=Total gesperrt
status_head_banned_ip_list=Verbotene IP-Liste
status_head_blocks_ip=IP
status_head_blocks_stime=Startzeit
status_head_blocks_etime=Endzeit
status_rules_plus_more=+ $1 mehr
status_jail_unblock_ip=Entfernen Sie $1 von der Sperrliste
status_jail_unblock=Entsperren Sie alle IPs für ausgewählte Jails
status_jail_unblock_ips=Entsperren Sie die ausgewählte IP
status_jail_noactive=Es sind noch keine aktiven Jails aktiviert.
status_jail_noactiveips=Es wurden keine blockierten Einträge im Gefängnis <tt>$1</tt> gefunden.
status_err_set=Festgelegte Aktion fehlgeschlagen
status_err_unblock=Die Aktion konnte nicht entsperrt werden
status_err_nojail=Es wurden keine Gefängnisse ausgewählt
status_err_noips=Es wurde keine IP ausgewählt
status_err_unban=Sperrung von $1 IP-Adresse kann nicht aufgehoben werden
status_err_unbanjail=Der Bann für $1 Gefängnis kann nicht aufgehoben werden
status_err_unknownjail=Unbekanntes Gefängnis

View File

@@ -171,21 +171,30 @@ manual_err=Αποτυχία επεξεργασίας του αρχείου ρύ
manual_edata=Δεν έχουν εισαχθεί περιεχόμενα αρχείου ρυθμίσεων
status_title=Κατάσταση και ενέργειες φυλακών
status_title2=Κατάσταση φυλακών
status_head_jail_name=Όνομα φυλακής
status_title3=Μπλοκ φυλακών
status_return=κατάσταση φυλακών
status_head_jail_blocks=Μπλοκ φυλακών
status_head_currently_failed=Αυτήν τη στιγμή απέτυχε
status_head_total_failed=Συνολικά απέτυχε
status_head_file_list=Λίστα αρχείων
status_head_currently_banned=Επί του παρόντος απαγορεύεται
status_head_total_banned=Πλήρης απαγόρευση
status_head_banned_ip_list=Απαγορευμένη λίστα IP
status_head_blocks_ip=IP
status_head_blocks_stime=Ωρα έναρξης
status_head_blocks_etime=Τέλος χρόνου
status_rules_plus_more=+ $1 ακόμη
status_jail_unblock_ip=Αφαιρέστε το $1 από την απαγορευμένη λίστα
status_jail_unblock=Ξεμπλοκάρετε όλες τις IP για επιλεγμένες φυλακές
status_jail_unblock_ips=Ξεμπλοκάρετε την επιλεγμένη IP
status_jail_noactive=Δεν υπάρχουν ακόμη ενεργοποιημένες ενεργές φυλακές.
status_jail_noactiveips=Δεν βρέθηκαν αποκλεισμένες καταχωρήσεις στη φυλακή <tt>$1</tt>.
status_err_set=Η ενέργεια ρύθμισης απέτυχε
status_err_unblock=Αποτυχία κατάργησης αποκλεισμού της ενέργειας
status_err_nojail=Δεν έχουν επιλεγεί φυλακές
status_err_noips=Δεν έχει επιλεγεί IP
status_err_unban=Δεν είναι δυνατή η απαγόρευση της διεύθυνσης IP $1
status_err_unbanjail=Δεν είναι δυνατή η απαγόρευση της φυλακής $1
status_err_unknownjail=Άγνωστη φυλακή
syslog_logtarget=Αρχείο καταγραφής ενέργειας Fail2Ban

View File

@@ -170,23 +170,32 @@ manual_efile=Selected file is not part of the Fail2Ban configuration!
manual_err=Failed to edit config file
manual_edata=No config file contents entered
status_title=Jails Status And Actions
status_title2=Jails Status
status_head_jail_name=Jail name
status_title=Jails Status
status_title3=Jail Blocks
status_return=jails status
status_head_jail_blocks=Jail blocks
status_head_currently_failed=Currently failed
status_head_total_failed=Total failed
status_head_file_list=File list
status_head_currently_banned=Currently banned
status_head_total_banned=Total banned
status_head_banned_ip_list=Banned IP list
status_head_blocks_ip=IP
status_head_blocks_stime=Start time
status_head_blocks_etime=End time
status_rules_plus_more=+ $1 more
status_jail_unblock_ip=Remove $1 from banned list
status_jail_unblock=Unblock All IPs for Selected Jails
status_jail_unblock=Unblock Selected Jails
status_jail_unblock_ips=Unblock Selected IP
status_jail_noactive=There are no active jails enabled yet.
status_jail_noactiveips=There are no blocked entries in jail <tt>$1</tt> found.
status_err_set=Failed set action
status_err_unblock=Failed to unblock action
status_err_nojail=No jails have been selected
status_err_noips=No IP has been selected
status_err_unban=Cannot un-ban $1 IP address
status_err_unbanjail=Cannot un-ban $1 jail
status_err_unknownjail=Unknown jail
syslog_logtarget=Fail2Ban action log

View File

@@ -171,21 +171,30 @@ manual_err=Error al editar el archivo de configuración
manual_edata=No se ingresó el contenido del archivo de configuración
status_title=Estado y acciones de las cárceles
status_title2=Estado de las cárceles
status_head_jail_name=nombre de la cárcel
status_title3=Bloques de la cárcel
status_return=estado de las carceles
status_head_jail_blocks=Bloques de cárcel
status_head_currently_failed=Actualmente fallado
status_head_total_failed=Total fallado
status_head_file_list=lista de archivos
status_head_currently_banned=Actualmente prohibido
status_head_total_banned=Prohibidos totales
status_head_banned_ip_list=Lista de IP prohibidas
status_head_blocks_ip=IP
status_head_blocks_stime=Hora de inicio
status_head_blocks_etime=Hora de finalización
status_rules_plus_more=+ $1 más
status_jail_unblock_ip=Eliminar $1 de la lista de prohibidos
status_jail_unblock=Desbloquear todas las direcciones IP de las cárceles seleccionadas
status_jail_unblock_ips=Desbloquear IP seleccionada
status_jail_noactive=No hay cárceles activas habilitadas todavía.
status_jail_noactiveips=No se encontraron entradas bloqueadas en la cárcel <tt>$1</tt>.
status_err_set=Acción de configuración fallida
status_err_unblock=No se pudo desbloquear la acción
status_err_nojail=No se han seleccionado cárceles
status_err_noips=No se ha seleccionado ninguna IP
status_err_unban=No se puede desbanear $1 dirección IP
status_err_unbanjail=No se puede desbanear $1 jail
status_err_unknownjail=cárcel desconocida
syslog_logtarget=Registro de acciones Fail2Ban

View File

@@ -171,21 +171,30 @@ manual_err=Ezin izan da konfigurazio fitxategia editatu
manual_edata=Ez da konfiguratutako fitxategiaren edukia sartu
status_title=Espetxeen Egoera Eta Ekintzak
status_title2=Espetxeen egoera
status_head_jail_name=Kartzelako izena
status_title3=Kartzela Blokeak
status_return=espetxe egoera
status_head_jail_blocks=Kartzela blokeak
status_head_currently_failed=Une honetan huts egin du
status_head_total_failed=Guztira huts egin du
status_head_file_list=Fitxategien zerrenda
status_head_currently_banned=Gaur egun debekatuta dago
status_head_total_banned=Guztiz debekatuta
status_head_banned_ip_list=Debekatutako IP zerrenda
status_head_blocks_ip=IP
status_head_blocks_stime=Hasiera ordua
status_head_blocks_etime=Amaiera ordua
status_rules_plus_more=+ $1 gehiago
status_jail_unblock_ip=Kendu $1 debekatuta dagoen zerrendatik
status_jail_unblock=Desblokeatu IP guztiak hautatutako espetxeetarako
status_jail_unblock_ips=Desblokeatu Hautatutako IP
status_jail_noactive=Oraindik ez dago kartzela aktiborik gaituta.
status_jail_noactiveips=Ez da blokeatutako sarrerarik aurkitu kartzelan <tt>$1</tt>.
status_err_set=Ezin izan da ezarri ekintza
status_err_unblock=Ezin izan da ekintza desblokeatu
status_err_nojail=Ez da kartzelarik hautatu
status_err_noips=Ez da IPrik hautatu
status_err_unban=Ezin da debekatu $1 IP helbidea
status_err_unbanjail=Ezin da debekatu $1 kartzela
status_err_unknownjail=Kartzela ezezaguna
syslog_logtarget=Fail2Ban ekintzaren erregistroa

View File

@@ -171,21 +171,30 @@ manual_err=ویرایش پرونده پیکربندی انجام نشد
manual_edata=هیچ محتوای پیکربندی وارد نشده است
status_title=وضعیت زندان و اقدامات
status_title2=وضعیت زندان
status_head_jail_name=نام زندان
status_title3=بلوک های زندان
status_return=وضعیت زندان
status_head_jail_blocks=بلوک های زندان
status_head_currently_failed=در حال حاضر شکست خورده است
status_head_total_failed=مجموع ناموفق بود
status_head_file_list=لیست فایل
status_head_currently_banned=در حال حاضر ممنوع است
status_head_total_banned=توتال ممنوع شد
status_head_banned_ip_list=لیست IP ممنوعه
status_head_blocks_ip=IP
status_head_blocks_stime=زمان شروع
status_head_blocks_etime=زمان پایان
status_rules_plus_more=+ $1 بیشتر
status_jail_unblock_ip=$1 را از لیست ممنوعه حذف کنید
status_jail_unblock=رفع انسداد همه IP ها برای زندان های منتخب
status_jail_unblock_ips=رفع انسداد IP انتخاب شده
status_jail_noactive=هنوز هیچ زندان فعالی فعال نشده است.
status_jail_noactiveips=هیچ ورودی مسدود شده ای در زندان <tt>$1</tt> یافت نشد.
status_err_set=عملکرد تنظیم ناموفق
status_err_unblock=عمل رفع انسداد انجام نشد
status_err_nojail=هیچ زندانی انتخاب نشده است
status_err_noips=هیچ IP انتخاب نشده است
status_err_unban=آدرس IP $1 را نمی توان لغو ممنوع کرد
status_err_unbanjail=زندان $1 را نمی توان لغو ممنوعیت کرد
status_err_unknownjail=زندان نامعلوم
syslog_logtarget=ورود به سیستم اقدام Fail2Ban

View File

@@ -171,21 +171,30 @@ manual_err=Konfiguraatiotiedoston muokkaaminen epäonnistui
manual_edata=Konfigurointitiedoston sisältöä ei ole annettu
status_title=Vankiloiden tila ja toimet
status_title2=Vankiloiden tila
status_head_jail_name=Vankilan nimi
status_title3=Vankilalohkot
status_return=vankiloiden tila
status_head_jail_blocks=Vankilalohkot
status_head_currently_failed=Tällä hetkellä epäonnistunut
status_head_total_failed=Yhteensä epäonnistui
status_head_file_list=Tiedostoluettelo
status_head_currently_banned=Tällä hetkellä kielletty
status_head_total_banned=Täysin kielletty
status_head_banned_ip_list=Kielletty IP-luettelo
status_head_blocks_ip=IP
status_head_blocks_stime=Aloitusaika
status_head_blocks_etime=Loppu aika
status_rules_plus_more=+ $1 lisää
status_jail_unblock_ip=Poista $1 kiellettyjen luettelosta
status_jail_unblock=Poista kaikkien IP-osoitteiden esto valituista vankiloista
status_jail_unblock_ips=Kumoa valitun IP-osoitteen esto
status_jail_noactive=Aktiivisia vankiloita ei ole vielä otettu käyttöön.
status_jail_noactiveips=Estettyjä merkintöjä vankilasta <tt>$1</tt> ei löytynyt.
status_err_set=Asetustoiminto epäonnistui
status_err_unblock=Toiminnon eston kumoaminen epäonnistui
status_err_nojail=Vankiloita ei ole valittu
status_err_noips=IP-osoitetta ei ole valittu
status_err_unban=$1 IP-osoitteen estoa ei voi poistaa
status_err_unbanjail=Ei voida poistaa $1 vankilakieltoa
status_err_unknownjail=Tuntematon vankila
syslog_logtarget=Fail2Ban-toimintaloki

View File

@@ -171,21 +171,30 @@ manual_err=Impossible de modifier le fichier de configuration
manual_edata=Aucun contenu de fichier de configuration entré
status_title=Statut et actions des prisons
status_title2=Statut des prisons
status_head_jail_name=Nom de la prison
status_title3=Blocs de prison
status_return=état des prisons
status_head_jail_blocks=Blocs de prison
status_head_currently_failed=Échec actuel
status_head_total_failed=Échec total
status_head_file_list=Liste de fichiers
status_head_currently_banned=Actuellement interdit
status_head_total_banned=Total interdit
status_head_banned_ip_list=Liste d'adresses IP interdites
status_head_blocks_ip=IP
status_head_blocks_stime=Heure de début
status_head_blocks_etime=Heure de fin
status_rules_plus_more=+ $1 de plus
status_jail_unblock_ip=Supprimer $1 de la liste des bannis
status_jail_unblock=Débloquer toutes les IP pour les prisons sélectionnées
status_jail_unblock_ips=Débloquer l'IP sélectionnée
status_jail_noactive=Il n'y a pas encore de prisons actives activées.
status_jail_noactiveips=Il n'y a aucune entrée bloquée dans la prison <tt>$1</tt> trouvée.
status_err_set=Échec de l'action définie
status_err_unblock=Impossible de débloquer l'action
status_err_nojail=Aucune prison n'a été sélectionnée
status_err_noips=Aucune IP n'a été sélectionnée
status_err_unban=Impossible de dé-bannir l'adresse IP $1
status_err_unbanjail=Impossible de débloquer la prison $1
status_err_unknownjail=Prison inconnue
syslog_logtarget=Journal des actions Fail2Ban

View File

@@ -171,21 +171,30 @@ manual_err=עריכת קובץ התצורה נכשלה
manual_edata=לא הוזן תוכן קובץ config
status_title=מצב הכלא ופעולות
status_title2=מצב כלא
status_head_jail_name=שם הכלא
status_title3=חסימות בכלא
status_return=מצב הכלא
status_head_jail_blocks=חסימות בכלא
status_head_currently_failed=כרגע נכשל
status_head_total_failed=סך הכל נכשל
status_head_file_list=רשימת קבצים
status_head_currently_banned=כרגע אסור
status_head_total_banned=נאסר לחלוטין
status_head_banned_ip_list=רשימת IP אסורה
status_head_blocks_ip=IP
status_head_blocks_stime=שעת התחלה
status_head_blocks_etime=שעת סיום
status_rules_plus_more=+ $1 נוספים
status_jail_unblock_ip=הסר את $1 מהרשימה החסומה
status_jail_unblock=בטל את חסימת כל כתובות ה-IP עבור בתי כלא נבחרים
status_jail_unblock_ips=בטל את חסימת ה-IP שנבחר
status_jail_noactive=עדיין אין בתי כלא פעילים מופעלים.
status_jail_noactiveips=לא נמצאו ערכים חסומים בכלא <tt>$1</tt>.
status_err_set=הגדרת הפעולה נכשלה
status_err_unblock=ביטול החסימה של הפעולה נכשל
status_err_nojail=לא נבחרו בתי כלא
status_err_noips=לא נבחר IP
status_err_unban=לא ניתן לבטל את החסימה של $1 כתובת IP
status_err_unbanjail=לא ניתן לבטל את החסימה של הכלא $1
status_err_unknownjail=כלא לא ידוע
syslog_logtarget=יומן הפעולות Fail2Ban

View File

@@ -171,21 +171,30 @@ manual_err=Nije uspjelo uređivanje konfiguracijske datoteke
manual_edata=Nije unesen sadržaj konfiguracijske datoteke
status_title=Status i radnje zatvora
status_title2=Status zatvora
status_head_jail_name=Ime zatvora
status_title3=Zatvorski blokovi
status_return=status zatvora
status_head_jail_blocks=Zatvorski blokovi
status_head_currently_failed=Trenutno nije uspjelo
status_head_total_failed=Ukupno nije uspjelo
status_head_file_list=Popis datoteka
status_head_currently_banned=Trenutno zabranjeno
status_head_total_banned=Totalno zabranjeno
status_head_banned_ip_list=Popis zabranjenih IP-a
status_head_blocks_ip=IP
status_head_blocks_stime=Vrijeme početka
status_head_blocks_etime=Vrijeme završetka
status_rules_plus_more=+ još $1
status_jail_unblock_ip=Ukloni $1 s popisa zabranjenih
status_jail_unblock=Deblokirajte sve IP adrese za odabrane zatvore
status_jail_unblock_ips=Deblokiraj odabrani IP
status_jail_noactive=Još nema omogućenih aktivnih zatvora.
status_jail_noactiveips=Nema blokiranih unosa u zatvoru <tt>$1</tt>.
status_err_set=Radnja postavljanja nije uspjela
status_err_unblock=Deblokiranje radnje nije uspjelo
status_err_nojail=Nisu odabrani zatvori
status_err_noips=Nije odabran nijedan IP
status_err_unban=Nije moguće poništiti zabranu IP adrese $1
status_err_unbanjail=Nije moguće poništiti zabranu $1 zatvora
status_err_unknownjail=Nepoznati zatvor
syslog_logtarget=Dnevnik akcija Fail2Ban

View File

@@ -171,21 +171,30 @@ manual_err=A konfigurációs fájl szerkesztése nem sikerült
manual_edata=Nincs megadva konfigurációs fájl tartalma
status_title=A börtönök állapota és a műveletek
status_title2=Börtönök állapota
status_head_jail_name=Börtön neve
status_title3=Börtönblokkok
status_return=börtönök állapota
status_head_jail_blocks=Börtönblokkok
status_head_currently_failed=Jelenleg nem sikerült
status_head_total_failed=Total sikertelen
status_head_file_list=Fájllista
status_head_currently_banned=Jelenleg betiltva
status_head_total_banned=Teljesen kitiltva
status_head_banned_ip_list=Tiltott IP lista
status_head_blocks_ip=IP
status_head_blocks_stime=Kezdési idő
status_head_blocks_etime=Idő vége
status_rules_plus_more=+ további $1
status_jail_unblock_ip=$1 eltávolítása a tiltott listáról
status_jail_unblock=Oldja fel az összes IP blokkolását a kiválasztott börtönökben
status_jail_unblock_ips=Feloldja a kiválasztott IP-cím blokkolását
status_jail_noactive=Még nincsenek engedélyezve aktív börtönök.
status_jail_noactiveips=A(z) <tt>$1</tt> börtönben nem találhatók blokkolt bejegyzések.
status_err_set=Sikertelen beállítási művelet
status_err_unblock=Nem sikerült feloldani a tiltást
status_err_nojail=Nem választottak ki börtönt
status_err_noips=Nincs kiválasztva IP
status_err_unban=$1 IP-cím kitiltása nem törölhető
status_err_unbanjail=$1 börtön tiltása nem törölhető
status_err_unknownjail=Ismeretlen börtön
syslog_logtarget=Fail2Ban cselekvési napló

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