Compare commits

...

579 Commits
1.760 ... 1.800

Author SHA1 Message Date
Jamie Cameron
a0bd54ab69 version bump 2016-05-25 15:17:37 -07:00
Jamie Cameron
6880e5a575 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-25 06:19:48 -07:00
Jamie Cameron
3efec7d052 Make cert type a param 2016-05-25 06:19:42 -07:00
Jamie Cameron
004c9194f3 Suppress errors from systemctl show https://sourceforge.net/p/webadmin/bugs/4756/ 2016-05-25 14:58:34 +02:00
Jamie Cameron
2f95715827 Fix use of undef variable https://sourceforge.net/p/webadmin/bugs/4755/ 2016-05-25 14:48:33 +02:00
Jamie Cameron
2b212ee3ef Make sure that when unlocking apache config files, it is done for the same ones that were originally locked https://www.virtualmin.com/node/40800 2016-05-25 02:06:53 -07:00
Jamie Cameron
cc4b757011 New dev version 2016-05-23 08:22:36 -07:00
Jamie Cameron
d766283296 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-22 07:17:08 -07:00
Jamie Cameron
2e6771e53a Fix warning message 2016-05-22 14:46:15 +01:00
Jamie Cameron
db5cb64c4a Merge branch 'master' of github.com:webmin/webmin 2016-05-22 14:45:32 +01:00
Jamie Cameron
aca8568382 Fix warning message 2016-05-22 14:45:08 +01:00
Jamie Cameron
aad92595a9 German translation updates from Raymond Vetter 2016-05-22 06:42:32 -07:00
Jamie Cameron
caf2f2ac37 Merge pull request #356 from mnoorenberghe/sni_make_http_connection
Use SNI for make_http_connection connections. Fixes #355
2016-05-22 11:28:26 +01:00
Matthew Noorenberghe
b7815aa85e Use SNI for make_http_connection connections. Fixes #355 2016-05-21 20:35:31 -07:00
Jamie Cameron
31bd465921 Path might be broken immediately after /etc 2016-05-21 10:53:42 -07:00
Jamie Cameron
44216dbab9 German translation updates from Raymond Vetter 2016-05-21 10:03:29 -07:00
Jamie Cameron
a43730fe49 German translation updates from Raymond Vetter 2016-05-21 10:03:28 -07:00
Jamie Cameron
6e005a1106 Assume names are in UTF-8 encoding, which is now the webmin default https://github.com/webmin/webmin/issues/353 2016-05-21 03:38:26 -07:00
Jamie Cameron
312cc48597 Prevent a group from having the same ID and a user https://sourceforge.net/p/webadmin/bugs/4675/ 2016-05-21 01:44:41 -07:00
Jamie Cameron
c0292a4df8 Strip off blank extra fields https://github.com/webmin/webmin/issues/354 2016-05-21 01:10:44 -07:00
Jamie Cameron
c1e3f77c09 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-18 01:17:18 -07:00
Jamie Cameron
772a604203 Show recent logins on system information page 2016-05-18 01:17:08 -07:00
Jamie Cameron
1426db5b17 Merge pull request #349 from qooob/patch-34
It's in the button - not dot needed
2016-05-17 22:44:52 +02:00
Ilia Rostovtsev
3d35792877 It's in the button - not dot needed 2016-05-17 23:11:11 +04:00
Jamie Cameron
a3fddd0f12 Show logged out users, and update columns in the UI 2016-05-17 08:23:27 -07:00
Jamie Cameron
f54cecaf0f Add column title 2016-05-17 05:14:15 -07:00
Jamie Cameron
df32d33da5 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-17 04:44:25 -07:00
Jamie Cameron
cf1b514976 Let's Encrypt cert path may be split across multiple lines, but will always be under /etc 2016-05-17 04:44:07 -07:00
Jamie Cameron
0d452693c5 Merge pull request #348 from qooob/patch-33
Fix incorrect col span value that breaks the table drawings
2016-05-17 09:42:00 +02:00
Jamie Cameron
a0fc500676 Fix use of wrong var 2016-05-16 14:26:33 -07:00
Ilia Rostovtsev
846f023392 Fix incorrect col span value that breaks the table drawings
Here is the way it looks without Authentic fixing it. (you can't see it broken in Authentic, see the source).

After applying correct values nothing is broken and looks great:
2016-05-16 15:21:48 +03:00
Jamie Cameron
6f6482005e Apache 2.2.15 does support TLS 1.1 and 1.2 2016-05-14 21:27:54 -07:00
Jamie Cameron
9012d421cf Make variable local 2016-05-14 21:14:51 -07:00
Jamie Cameron
8b015bff01 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-14 21:14:13 -07:00
Jamie Cameron
16c35e2d1e Fix comparison of versions like foo1 and foo2 2016-05-14 21:13:36 -07:00
Jamie Cameron
9860c6b6e4 Merge pull request #346 from qooob/patch-32
Respect module info
2016-05-11 23:08:53 -07:00
Jamie Cameron
7216982ded Merge pull request #343 from TTMelki/patch-5
Update fr
2016-05-11 22:12:26 -07:00
Jamie Cameron
126659a8d1 Merge pull request #341 from TTMelki/patch-3
Create fr.UTF-8
2016-05-11 22:05:17 -07:00
Jamie Cameron
0b27152141 Merge pull request #340 from qooob/patch-29
Folder is more Windows like, Directory is Linux.
2016-05-11 22:03:13 -07:00
Ilia Rostovtsev
f20d24a1be Respect module info 2016-05-11 14:00:44 +04:00
TTMelki
728b8125de Update fr 2016-05-11 09:52:27 +02:00
TTMelki
7a95702ca2 Create fr.UTF-8 2016-05-11 09:09:09 +02:00
Ilia Rostovtsev
83a1893c7b Folder is more Windows like, Directory is Linux.
Updated all strings from folder to directory
2016-05-11 11:01:41 +04:00
Jamie Cameron
bc23507717 Merge pull request #339 from TTMelki/patch-2
Create fr translation file
2016-05-10 23:56:01 -07:00
TTMelki
a054392f7a Create fr translation file 2016-05-11 08:54:32 +02:00
Jamie Cameron
d56fb1d1e9 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-10 22:42:15 -07:00
Jamie Cameron
7a270465d3 Add missing string https://www.virtualmin.com/node/40681 2016-05-10 22:30:23 -07:00
Jamie Cameron
99e62cd67a Merge pull request #334 from qooob/patch-25
In current state it will never properly print correct UTF8 lke value …
2016-05-09 21:41:49 -07:00
Ilia Rostovtsev
ba8b0e8972 In current state it will never properly print correct UTF8 lke value to check box
As the result copy/paste and other operations will fail for Russian and other UTF8 like encodings.
2016-05-10 00:33:55 +04:00
Jamie Cameron
1bc09c40b6 Merge pull request #333 from qooob/patch-24
To compliy with upcomming Authentic release 18.00
2016-05-08 10:27:25 -07:00
Jamie Cameron
f38f3c7bec Merge pull request #332 from qooob/patch-22
Respect language forms
2016-05-08 09:45:25 -07:00
Ilia Rostovtsev
9f293451b9 To compliy with upcomming Authentic release 18.00
Respecting language forms is nice.
2016-05-08 18:46:59 +04:00
Ilia Rostovtsev
3d6e58dcba Respect language forms 2016-05-08 18:44:54 +04:00
Jamie Cameron
1cfe6b90d7 Remove debug code 2016-05-06 19:14:45 -07:00
Jamie Cameron
23aef652a7 Version bump for devel release 2016-05-06 19:13:08 -07:00
Jamie Cameron
74ca08fd42 Revert to using File::Mimeinfo module 2016-05-06 19:12:29 -07:00
Jamie Cameron
1c0e069881 Fix ordering of params to symlink 86eeb96334 2016-05-06 17:33:22 -07:00
Jamie Cameron
80be0a3c4c Use built-in function for MIME types https://sourceforge.net/p/webadmin/bugs/4745/ 2016-05-05 21:01:41 -07:00
Jamie Cameron
074f7561d8 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-05 20:39:55 -07:00
Jamie Cameron
b5b81a95cf Merge pull request #323 from qooob/patch-13
For search page path could be printed twice in some cases
2016-05-05 20:39:45 -07:00
Jamie Cameron
86eeb96334 copy_source_dest support for symlinks https://github.com/webmin/webmin/issues/322 2016-05-05 20:37:29 -07:00
Ilia Rostovtsev
ae15622a57 For search page path could be printed twice in some cases
This fix will prevent double printing of the path for searched (found) folders.

It doesn't happen always but only if search results contain same value for directory and file.

Can be reproduced by going to `/boot/grub` and searching for `grub`. With the current code the folder `grub` (same as the current folder) printed on the results with doubled path on the link and thus doesn't open correctly. The best is to tweak `search.cgi` that filters search results and remove from results same folder as parent. It's more complicated. My fix does it safely, I think.
2016-05-05 23:12:24 +04:00
Jamie Cameron
094a187d54 Merge pull request #321 from qooob/patch-12
The rest of the code to support new extraction methods
2016-05-04 17:46:55 -07:00
Jamie Cameron
d44c46425f Merge pull request #320 from qooob/patch-10
Support for extracting: .7z, .bz2, .xz, .gz, .rar
2016-05-04 17:46:37 -07:00
Jamie Cameron
bd93dbe9f0 Merge pull request #319 from qooob/patch-9
Certificates must be editable
2016-05-04 17:31:14 -07:00
Ilia Rostovtsev
b5990ef9fb The rest of the code to support new extraction methods
Just committed to `extract.cgi`. Command is checked for existence and if found extract button will appear on the interface in all themes.
2016-05-04 18:01:51 +04:00
Ilia Rostovtsev
fe6965d1e2 Support for extracting: .7z, .bz2, .xz, .gz, .rar
Commands are checked before they run so no need for last else part which outputted an error message. The rest of the code I will add to -lib file.

P.S. Jamie, I tried removing `use File::MimeInfo;` in this file as on current branch and it returned an error!? Please double check.
2016-05-04 17:46:10 +04:00
Ilia Rostovtsev
c23445a223 Certificates must be editable 2016-05-04 14:28:16 +04:00
Jamie Cameron
9da5454082 Dev version bump 2016-05-02 20:35:48 -07:00
Jamie Cameron
a405b317e3 When backing up a database, only run the actual writing command as the user, rather than all of mysqldump 2016-05-01 11:21:51 -07:00
Jamie Cameron
0237dd2a0f Remove duplicate footer https://github.com/qooob/authentic-theme/issues/454 2016-05-01 11:03:02 -07:00
Jamie Cameron
6e38d8bc8c Merge branch 'master' of git@github.com:webmin/webmin 2016-05-01 10:45:26 -07:00
Jamie Cameron
e934994e8f Prevent page for hanging forver 5d0f6f0597 2016-05-01 10:40:52 -07:00
Jamie Cameron
232facbf39 Merge pull request #316 from qooob/patch-6
9000+ is way to little for `$pagelimit`
2016-05-01 10:24:03 -07:00
Ilia Rostovtsev
293d9e17ff Authentic dones't need init_datatables() 2016-05-01 12:52:02 +04:00
Jamie Cameron
c00971b390 Merge pull request #317 from qooob/patch-7
get_paths(); doesn't return proper results
2016-04-29 22:45:48 -07:00
Ilia Rostovtsev
3d5e013f59 get_paths(); doesn't return proper results
For wheel users (non-root but admins) `get_paths();` has a bug and doesn't work correctly.

It causes some other issues in user mode. Probably, if you on the `inthebox` login as `blog` user and go to File Manager, click copy - Perl Error happens. (under all themes)
2016-04-29 13:19:27 +04:00
Ilia Rostovtsev
fd3f6c729f 9000+ is way to little for $pagelimit 2016-04-29 12:56:01 +04:00
Jamie Cameron
5d0f6f0597 Handle new yum package list format https://github.com/webmin/webmin/issues/282 2016-04-27 22:31:09 -07:00
Jamie Cameron
0a2be8ecfd Support PHP 7 in mod_php 2016-04-25 21:30:05 -07:00
Jamie Cameron
a9a6d51030 dev version bump 2016-04-25 19:19:12 -07:00
Jamie Cameron
199f5edb9e Add support for Cloudrouter 2016-04-24 15:13:22 -07:00
Jamie Cameron
ce698f5bae acme_tiny can also work with Python 2.6 https://www.virtualmin.com/node/40076 2016-04-24 09:59:23 -07:00
Jamie Cameron
e27da435ff Use python27 command if installed https://www.virtualmin.com/node/40076 2016-04-23 15:07:43 -07:00
Jamie Cameron
5c31829dc7 Clean up leftover user attributes in /etc/webmin/config https://www.virtualmin.com/node/40477 2016-04-23 14:59:24 -07:00
Jamie Cameron
4ac4a2be0a Polish translation from Piotr Kozica 2016-04-22 20:32:54 -07:00
Jamie Cameron
00c632b001 Polish translation from Piotr Kozica 2016-04-22 20:07:27 -07:00
Jamie Cameron
3a590ddf6f Restore all modules by default https://www.virtualmin.com/node/40451 2016-04-22 19:53:16 -07:00
Jamie Cameron
667362c82a Include PHP versions from Virtualmin https://www.virtualmin.com/node/40450 2016-04-21 21:28:40 -07:00
Jamie Cameron
20862dca92 Don't treat dir as a regexp https://www.virtualmin.com/node/40452 2016-04-21 18:40:38 -07:00
Jamie Cameron
b5b45960a5 Include some more config files in backup https://www.virtualmin.com/node/40448 2016-04-20 21:43:22 -07:00
Jamie Cameron
601b234126 Also set authentication_string to empty if it exists https://sourceforge.net/p/webadmin/bugs/4735/ 2016-04-16 13:44:42 -07:00
Jamie Cameron
f2de59b1df Merge branch 'master' of git@github.com:webmin/webmin 2016-04-16 13:42:18 -07:00
Jamie Cameron
d61fb46c74 Fix host message in log if empty 2016-04-16 13:41:45 -07:00
Jamie Cameron
7fc27fdcdd Merge pull request #310 from qooob/patch-5
JSON must be editable
2016-04-16 08:28:04 -07:00
Ilia Rostovtsev
95d025a5b1 JSON must be editable 2016-04-16 11:44:14 +04:00
Jamie Cameron
83ee80c675 Merge pull request #308 from qooob/patch-3
Anything is an object, right?
2016-04-13 20:18:36 -07:00
Jamie Cameron
d4ef81f6b2 Merge pull request #309 from qooob/patch-4
Anything is an object, right? (MySQL clone)
2016-04-13 20:14:39 -07:00
Ilia Rostovtsev
2e76243908 Anything is an object, right? (MySQL clone) 2016-04-13 13:13:40 +04:00
Ilia Rostovtsev
97e1ad4c50 Anything is an object, right?
Jamie, it's nicer to be specific.

Please separate tables and rows from being objects in case my changes will cause problems.

Ajaxifiyng MySQL module, just wanted to be best.
2016-04-13 13:11:53 +04:00
Jamie Cameron
a4f67548f2 German translation updates from Raymond Vetter 2016-04-12 22:11:50 -07:00
Jamie Cameron
442c8a623b Merge pull request #307 from casparsmit/patch-2
Add common spanning tree tunables for bridges
2016-04-12 19:20:43 -07:00
casparsmit
4bb2ebb84e Add common spanning tree tunables for bridges 2016-04-12 14:35:36 +02:00
casparsmit
07772b29f6 Add common spanning tree tunables for bridges 2016-04-12 14:33:28 +02:00
casparsmit
1e95673391 Add common spanning tree tunables for bridges 2016-04-12 14:31:40 +02:00
casparsmit
f8982ddf4f Add common spanning tree tunables for bridges 2016-04-12 14:25:03 +02:00
casparsmit
3ce61adcc0 Add common spanning tree tunables for bridges 2016-04-12 14:19:30 +02:00
Jamie Cameron
98ff989bb9 Allow use of ${DOM} in template value 2016-04-11 20:31:59 -07:00
Jamie Cameron
204d7d30b6 Actually all operating systems should be supported 2016-04-11 20:19:07 -07:00
Jamie Cameron
7ef105ea01 Syncing of users was broken because 'olds' is actually an array https://sourceforge.net/p/webadmin/bugs/4732/ 2016-04-10 10:23:45 -07:00
Jamie Cameron
96e31eb5a2 Show this host nicer 2016-04-10 10:14:51 -07:00
Jamie Cameron
1668f6f77e Sort nicer 2016-04-10 10:07:12 -07:00
Jamie Cameron
0287e53229 changelog for network() soruce 2016-04-09 21:05:31 -07:00
Jamie Cameron
173efa83df Allow use of network() source type https://github.com/webmin/webmin/issues/303 2016-04-09 20:43:00 -07:00
Jamie Cameron
a4cb099b3f Show network source nicely 2016-04-09 17:08:05 -07:00
Jamie Cameron
e0731515d7 Use post for buttons row to prevent double-submit https://github.com/webmin/webmin/issues/302 2016-04-09 13:51:37 -07:00
Jamie Cameron
d3fc96827d German translation updates from Raymond Vetter 2016-04-08 16:57:27 -07:00
Jamie Cameron
452224a24d Make sure let's encrypt key, cert and chain aren't world readable 2016-04-08 16:55:45 -07:00
Jamie Cameron
69fd79e2b3 Remove useless module call 2016-04-08 13:50:32 -07:00
Jamie Cameron
fa8654714a Fix more references to old module name 2016-04-08 13:46:15 -07:00
Jamie Cameron
28888930e7 Declare forgotten variable 2016-04-08 13:39:21 -07:00
Jamie Cameron
7e2b4e6c5e dev version bump 2016-04-08 13:32:55 -07:00
Jamie Cameron
c613cdc8c9 don;'t completely crash if one module fails 2016-04-08 12:07:54 -07:00
Jamie Cameron
b05a2794d8 Merge branch 'master' of git@github.com:webmin/webmin 2016-04-06 22:26:48 -07:00
Jamie Cameron
997b33e5fb module_name cannot be used in library code https://sourceforge.net/p/webadmin/bugs/4730/ 2016-04-06 22:21:38 -07:00
Jamie Cameron
a1a86cfa42 Merge pull request #301 from bram96/master
Letsencrypt CA cert
2016-04-05 22:40:40 -07:00
Jamie Cameron
475870db79 Let's Encrypt chained cert has changed 2016-04-05 22:39:16 -07:00
Jamie Cameron
9189c1446a Support configure a primary teaming interface, thanks to Caspar Smit 2016-04-05 21:40:44 -07:00
bram96
ad9c2ec0f9 Merge pull request #1 from bram96/bram96-fix-letsencrypt
Fix letsencrypt CA
2016-04-05 19:22:52 +02:00
bram96
e395cf951e Fix letsencrypt CA 2016-04-05 19:22:28 +02:00
Jamie Cameron
1fcb3129f5 Merge pull request #298 from qooob/patch-2
File is not a folder
2016-04-04 19:50:59 -07:00
Jamie Cameron
c5fe632e4e Merge pull request #297 from qooob/patch-1
Folder is not a file
2016-04-04 19:50:36 -07:00
Ilia Rostovtsev
c176073339 File is not a folder 2016-04-04 14:05:23 +04:00
Ilia Rostovtsev
27c7872c94 Folder is not a file 2016-04-04 14:04:16 +04:00
Jamie Cameron
915b6ec224 PEM file path can be wrapped https://www.virtualmin.com/node/40240 2016-04-03 14:34:10 -07:00
Jamie Cameron
f3a393b2f8 Ignore signals that might fire if webmin is upgraded, or if an apache proxy is https://github.com/webmin/webmin/issues/296 2016-04-03 09:21:38 -07:00
Jamie Cameron
e529789543 Sane defaults for bonding interfaces, thanks to Caspar Smit 2016-04-01 21:50:46 -07:00
Jamie Cameron
5a20e411fc DNF uses the the word 'Upgrading' 4912384cd7 (commitcomment-16928342) 2016-04-01 21:34:31 -07:00
Jamie Cameron
7ef6ea921a Don't try a multiple package update if there isn't more than one 2016-03-31 22:07:19 -07:00
Jamie Cameron
63b6af8dd4 Document root may be quoted 2016-03-30 21:17:24 -07:00
Jamie Cameron
a103a0b10f Correct form number https://github.com/webmin/webmin/issues/294 2016-03-30 18:14:02 -07:00
Jamie Cameron
f2374b1fa2 ui-lib conversion 2016-03-28 17:12:09 -07:00
Jamie Cameron
40a90f7c71 Use pg_users instead of pg_shadow in latest PostgreSQL versions https://sourceforge.net/p/webadmin/bugs/4727/ 2016-03-27 16:26:19 -07:00
Jamie Cameron
46d7022cc9 Complete support for mysql include files https://sourceforge.net/p/webadmin/bugs/4726/ 2016-03-26 18:05:02 -07:00
Jamie Cameron
7efcd84bda Support mysql.conf innf include files https://sourceforge.net/p/webadmin/bugs/4726/ 2016-03-25 21:25:52 -07:00
Jamie Cameron
0e64774db3 Ubuntu 16 support 2016-03-24 22:08:45 -07:00
Jamie Cameron
e9a08bb3bb Variable has been renamed to key_buffer_size https://sourceforge.net/p/webadmin/bugs/4724/ 2016-03-24 20:36:00 -07:00
Jamie Cameron
e2df09438a Norwegian update from Stein-Aksel Basma 2016-03-23 22:12:09 -07:00
Jamie Cameron
63830dd456 If command set does't exist, don't use it 2016-03-22 22:08:34 -07:00
Jamie Cameron
d4b401e913 Handle case with no output 2016-03-22 22:01:32 -07:00
Jamie Cameron
a889ef3afc Show epoch-format leases nicely 2016-03-21 21:59:58 -07:00
Jamie Cameron
5f686de889 Handle epoch lease time format https://sourceforge.net/p/webadmin/bugs/4711/ 2016-03-21 21:55:45 -07:00
Jamie Cameron
9fcaa65ef4 German translation updates from Raymond Vetter 2016-03-21 20:55:10 -07:00
Jamie Cameron
8bd1b626dd Don't do automatic perl module provides, as this includes some copies of modules https://sourceforge.net/p/webadmin/bugs/4725/ 2016-03-21 20:31:48 -07:00
Jamie Cameron
cf771963c7 Add missing message for missing python module 2016-03-20 11:09:59 -07:00
Jamie Cameron
4912384cd7 Update multiple packages at the same time https://github.com/webmin/webmin/issues/286 2016-03-20 11:09:36 -07:00
Jamie Cameron
124d182bf6 Make units easier 2016-03-19 23:04:30 -07:00
Jamie Cameron
e972b65393 Put longer version numbers first, so that 10.11 doesn't match 10.1 https://www.virtualmin.com/node/39969 2016-03-19 21:58:56 -07:00
Jamie Cameron
9d0d796469 Check if the argparse python module is installed https://www.virtualmin.com/node/40053 2016-03-19 17:16:17 -07:00
Jamie Cameron
1456825ed4 Fix parsing in debug mode https://sourceforge.net/p/webadmin/bugs/4723/ 2016-03-18 22:38:07 -07:00
Jamie Cameron
9670fb69cc Break all the way out of the loop https://sourceforge.net/p/webadmin/bugs/4720/ 2016-03-17 22:21:43 -07:00
Jamie Cameron
0dd18f3f77 Rename Webmin to WebminUI, to avoid clashes with webmin on OSX https://www.virtualmin.com/node/39987 2016-03-17 20:27:18 -07:00
Jamie Cameron
21eb487ebb fix quote 2016-03-15 22:07:18 -07:00
Jamie Cameron
72cd4b3a4e Allow log paths that are variables https://www.virtualmin.com/node/38963 2016-03-15 21:07:06 -07:00
Jamie Cameron
8e2815dabe Don't spin forever on cancelled upload https://sourceforge.net/p/webadmin/bugs/4720/ 2016-03-15 20:36:11 -07:00
Jamie Cameron
581047a965 Compare fully qualified IPv6 addresses 2016-03-14 23:03:23 -07:00
Jamie Cameron
1db718fd95 fix docs 2016-03-12 20:59:00 -08:00
Jamie Cameron
04dd39842d Add missing footer 2016-03-12 20:58:44 -08:00
Jamie Cameron
72d103ea2e Add missing config files 2016-03-12 16:40:00 -08:00
Jamie Cameron
8163db111a Better handle map specs inside lists of directives 2016-03-12 16:35:35 -08:00
Jamie Cameron
55ea719197 Fix incorrect line variable 2016-03-12 15:30:06 -08:00
Jamie Cameron
116cd4162d Use hostinfo to get total RAM 2016-03-10 22:55:51 -08:00
Jamie Cameron
6791b6895f Remove obsolete feedback link 2016-03-09 21:51:58 -08:00
Jamie Cameron
2b082de03d Merge branch 'master' of git@github.com:webmin/webmin 2016-03-09 21:19:16 -08:00
Jamie Cameron
6ad0df49e1 Properly remove use of old API for writing files https://sourceforge.net/p/webadmin/bugs/4717/ 2016-03-09 21:12:36 -08:00
Jamie Cameron
a9e3582190 Merge pull request #289 from nielosz/master
Handle pipe commands
2016-03-09 20:27:32 -08:00
nielosz
5db95b1e27 Merge pull request #1 from nielosz/Handle-Pipe-commands
Handle pipe commands
2016-03-09 11:38:23 +01:00
nielosz
575f169b93 Update bacula-backup-lib.pl 2016-03-09 11:36:13 +01:00
Jamie Cameron
efb8150510 Version bump 2016-03-07 11:06:22 -08:00
Jamie Cameron
10f12a83c6 Rollback to HTTP 1.0, as switching to 1.1 seems to break some downloads 2016-03-07 10:28:39 -08:00
Jamie Cameron
3243948e59 Quotes are not valid around an email in an SOA https://www.virtualmin.com/node/39872 2016-03-06 15:39:41 -08:00
Jamie Cameron
1cf382deab Don't die if a path cannot be utf-8 decoded 2016-03-06 10:22:28 -08:00
Jamie Cameron
785cc54ddc Norwegian update from Stein-Aksel Basma 2016-03-05 11:55:16 -08:00
Jamie Cameron
d2e52c81d4 German translation updates from Raymond Vetter 2016-03-01 11:59:48 -08:00
Jamie Cameron
081036d8f6 German translation updates from Raymond Vetter 2016-03-01 11:59:48 -08:00
Jamie Cameron
64656b6f24 Norwegian update from Stein-Aksel Basma 2016-03-01 11:58:18 -08:00
Jamie Cameron
f5ccedfe5b Only save one file 2016-02-29 20:27:21 -08:00
Jamie Cameron
85a9056ee8 LSI 9750 is really 3ware https://www.virtualmin.com/node/39844 2016-02-29 16:31:58 -08:00
Jamie Cameron
0291ce2e66 Allow exclusion of files at module build time 2016-02-29 16:19:32 -08:00
Jamie Cameron
51a0631bde Allow forcing of a specific version 2016-02-29 15:39:13 -08:00
Jamie Cameron
7eec607f86 HTTP 1.0 is dead and buries 2016-02-29 15:34:48 -08:00
Jamie Cameron
4cbffaa875 Handle https properly 2016-02-29 15:25:08 -08:00
Jamie Cameron
1f5c860698 Fix table to regenerate 2016-02-28 13:03:44 -08:00
Jamie Cameron
480f0f0955 Only exclude clones 2016-02-28 13:01:00 -08:00
Jamie Cameron
80ecd012cf Make perl path consistent with the repo 2016-02-28 10:57:24 -08:00
Jamie Cameron
5e042e7f51 Version bump 2016-02-28 10:20:14 -08:00
Jamie Cameron
e780c2fa1c Fix duplicate string 2016-02-28 10:19:22 -08:00
Jamie Cameron
f94faaf303 Remove special case name change for Filemin 2016-02-28 10:07:59 -08:00
Jamie Cameron
9d2f479e6c Catalan update from Jaume Badiella 2016-02-28 09:50:53 -08:00
Jamie Cameron
e7b4985fc5 Catalan update from Jaume Badiella 2016-02-28 09:50:09 -08:00
Jamie Cameron
a2816947b1 Make all output matches case insensitive https://sourceforge.net/p/webadmin/bugs/4654/ 2016-02-27 16:51:58 -08:00
Jamie Cameron
004a888071 Clear all the caches https://github.com/webmin/webmin/issues/282 2016-02-27 15:02:00 -08:00
Jamie Cameron
6041a45e83 Skip relative paths 2016-02-26 22:09:38 -08:00
Jamie Cameron
695577a40e Handle non-syslog logs as well https://github.com/webmin/webmin/issues/283 2016-02-26 22:08:47 -08:00
Jamie Cameron
bcbd707307 Allow fast switching between logs https://github.com/webmin/webmin/issues/283 2016-02-24 21:29:12 -08:00
Jamie Cameron
c237e851f6 Use standard UI functions 2016-02-24 21:22:23 -08:00
Jamie Cameron
629f7e033b remove auto-added lines 2016-02-22 20:07:19 -08:00
Jamie Cameron
a59cd42151 Re-fork filemin from 1.783 release 2016-02-22 20:06:44 -08:00
Jamie Cameron
9ed6338db6 Undo filemin fork 2016-02-22 20:05:11 -08:00
Jamie Cameron
f98e8e3398 Bring filemin as of the last webmin release across to our own repo 2016-02-21 15:36:17 -08:00
Jamie Cameron
bcc4822e0e Use apt-cache show to get current package info if available 2016-02-18 23:16:06 -08:00
Jamie Cameron
c45980160a German translation updates from Raymond Vetter 2016-02-16 14:21:14 -08:00
Jamie Cameron
8a1446ab2c Enable server-side preferred ciphers by default 2016-02-14 18:48:21 -08:00
Jamie Cameron
c0500ee0a0 German translation updates from Raymond Vetter 2016-02-11 19:42:42 -08:00
Jamie Cameron
a8036120b9 Don't show negative RAM free 2016-02-10 23:10:53 -08:00
Jamie Cameron
6b3b7096ea Allow users who cannot drop a DB to still empty it https://www.virtualmin.com/node/28549 2016-02-10 22:49:41 -08:00
Jamie Cameron
747ea46c54 Norwegian update from Stein-Aksel Basma 2016-02-08 14:11:37 -08:00
Jamie Cameron
90d2da3588 Properly support multi-domain let's encrypt certs by generating a temporary config file with the altnames 2016-02-06 18:29:41 -08:00
Jamie Cameron
2fd5b42b60 German translation updates from Raymond Vetter 2016-02-06 17:29:58 -08:00
Jamie Cameron
3111fb4bd0 Extract alt names from the subject field. Turns out this doesn't actually work (let's encrypt doesn't sign for them), but it's worth a try 2016-02-06 16:23:50 -08:00
Jamie Cameron
2990aaaa99 Support multiple alt-names in SSL CSRs 2016-02-05 22:58:44 -08:00
Jamie Cameron
baef8aba0f If a systemd service suggests using journalctl to get more logs, do it 2016-02-05 17:36:22 -08:00
Jamie Cameron
46c2113f2f Support for editing Postfix sender restriction maps 2016-02-04 21:47:46 -08:00
Jamie Cameron
f11ef10942 Merge branch 'master' of git@github.com:webmin/webmin 2016-02-04 20:15:14 -08:00
Jamie Cameron
30597f6c38 SPF a tag cannot be an IP address https://sourceforge.net/p/webadmin/bugs/4706/ 2016-02-04 20:09:28 -08:00
Jamie Cameron
167239f8fc Merge pull request #280 from BangL/master
fixes for changes made in shorewall 4.5.3, 4.5.11 and 4.6.0
2016-02-01 20:00:35 -08:00
BangL
16fa5c5bec fixes for changes made in shorewall 4.5.3, 4.5.11 and 4.6.0
- rules: (?)SECTION and (?)COMMENT
- interfaces: (?)FORMAT {1|2}
2016-02-02 03:17:22 +01:00
Jamie Cameron
319a3b4d84 Email addresses cannot have spaces https://www.virtualmin.com/node/39564: 2016-02-01 17:44:12 -08:00
Jamie Cameron
a3fa53727d dom can be an array https://www.virtualmin.com/node/39530 2016-01-31 14:05:22 -08:00
Jamie Cameron
e9640d7622 Dev version bump 2016-01-30 16:39:43 -08:00
Jamie Cameron
7ba7a75df1 Support setting attributes for the td 2016-01-30 15:21:15 -08:00
Jamie Cameron
10b9916097 Add size for sorting as a number https://www.virtualmin.com/node/39494 2016-01-30 15:10:12 -08:00
Jamie Cameron
5bbfbc4a36 Fix select all / invert https://www.virtualmin.com/node/39529 2016-01-29 20:46:53 -08:00
Jamie Cameron
f4a7048fd9 Norwegian update from Stein-Aksel Basma 2016-01-28 19:42:52 -08:00
Jamie Cameron
9c63d0c352 Add missing footer to root password form https://github.com/webmin/webmin/issues/278 2016-01-27 19:08:33 -08:00
Jamie Cameron
ff08544347 Fail early if given config file doens't exist 2016-01-26 21:00:17 -08:00
Jamie Cameron
4265e07b4e Document new flag 2016-01-24 10:04:22 -08:00
Jamie Cameron
f06270fca1 Add some formal params 2016-01-24 10:03:43 -08:00
Jamie Cameron
350bd60cc5 German translation updates from Raymond Vetter 2016-01-24 09:38:47 -08:00
Jamie Cameron
b001855672 Support multiple file uploads 2016-01-23 21:48:42 -08:00
Jamie Cameron
bb98a1af45 Support multiple files per attachment field 2016-01-23 17:58:54 -08:00
Jamie Cameron
9040c26581 Fix group matched for content type 2016-01-23 17:49:49 -08:00
Jamie Cameron
5d0411b789 Add option to store multiple values for the same input in an array 2016-01-23 15:09:36 -08:00
Jamie Cameron
fb842fbeda Allow multiple uploads 2016-01-23 14:40:20 -08:00
Jamie Cameron
2d18903ac6 Fix typo 2016-01-23 13:56:59 -08:00
Jamie Cameron
d19f95c65d Warn if a user being edited belongs to Virtualmin, for PostgreSQL too https://www.virtualmin.com/node/39428 2016-01-23 13:56:30 -08:00
Jamie Cameron
35c65587ba Warn if a user being edited belongs to Virtualmin https://www.virtualmin.com/node/39428 2016-01-23 13:53:55 -08:00
Jamie Cameron
cd34c5450e German translation updates from Raymond Vetter 2016-01-22 23:42:01 -08:00
Jamie Cameron
4fe4d935a1 Don't allow deletion of anonymous users https://www.virtualmin.com/node/39426 2016-01-22 22:27:57 -08:00
Jamie Cameron
0229cc5c8e Wait at most 5 seconds to check new webmin version 2016-01-22 22:18:58 -08:00
Jamie Cameron
fd719dbf47 Exclude pyc files from packages, as they get re-compiled 2016-01-21 23:00:47 -08:00
Jamie Cameron
e5b05b4e2b Add missing string for special sync button 2016-01-21 22:40:29 -08:00
Jamie Cameron
a948c6d938 Exclude files when building a module from a locally checked out repo 2016-01-21 22:40:09 -08:00
Jamie Cameron
d032b22ac3 Completed support for cert request with acme_tiny 2016-01-21 22:34:50 -08:00
Jamie Cameron
a23867f019 Re-factor CSR function 2016-01-21 21:55:48 -08:00
Jamie Cameron
e564acbbf9 Fix comments 2016-01-19 22:29:06 -08:00
Jamie Cameron
b4617d7c1c Improve detection of invalid renewal period 2016-01-18 17:20:16 -08:00
Jamie Cameron
cc217d3044 completed renewal support 2016-01-18 14:36:19 -08:00
Jamie Cameron
8a86381d6e Start of work on renewal support for let's encrypt 2016-01-17 21:35:39 -08:00
Jamie Cameron
1cf689e931 Support interval-based webmincron time specs 2016-01-17 21:04:45 -08:00
Jamie Cameron
5000eddb37 Preserve unix file attributes on copy http://sourceforge.net/p/webadmin/bugs/4701/ 2016-01-14 22:29:07 -08:00
Jamie Cameron
be4cf27e12 Remove special case for old version, and add formal params 2016-01-14 21:23:01 -08:00
Jamie Cameron
44ef858725 login might not be set 2016-01-11 12:47:55 -08:00
Jamie Cameron
c18bbbee4c dev version bump 2016-01-10 22:30:15 -08:00
Jamie Cameron
769b7d82f0 Support El Capitan 2016-01-10 10:11:58 -08:00
Jamie Cameron
9b3513b148 Add support for Ubuntu 15 2016-01-08 16:47:16 -08:00
Jamie Cameron
882588d815 Add a missing perl lib needed for DNSSEC https://github.com/webmin/webmin/issues/275 2016-01-08 16:14:20 -08:00
Jamie Cameron
38bbcf1196 Stop showing encrypted password column, as it may not even exist 2016-01-06 19:19:33 -08:00
Jamie Cameron
c7d2d2a78a Allow requesting of multi-domain certs 2016-01-06 19:07:47 -08:00
Jamie Cameron
b2716fc22d Dev version bump 2016-01-05 20:47:38 -08:00
Jamie Cameron
2f98174db7 Matches before applying can be zero https://sourceforge.net/p/webadmin/bugs/4699/ 2016-01-05 20:10:01 -08:00
Jamie Cameron
2f031a1a02 Show package name lines 2016-01-05 19:59:07 -08:00
Jamie Cameron
97e7ddafd7 Use specific zone name indnssec-dsfromkey, and add missing newline when displaying https://github.com/webmin/webmin/issues/272 2016-01-03 10:08:57 -08:00
Jamie Cameron
650c06300a Fix method of getting username from LDAP object https://sourceforge.net/p/webadmin/bugs/4695/ 2016-01-02 13:19:52 -08:00
Jamie Cameron
9a7ec78cc0 German translation updates from Raymond Vetter 2016-01-02 10:43:19 -08:00
Jamie Cameron
8d5109718b Don't shows hosts table on MySQL 5.7+ 2016-01-01 15:10:45 -08:00
Jamie Cameron
0358fb2795 German translation updates from Raymond Vetter 2015-12-29 16:05:27 -08:00
Jamie Cameron
0f754b170b German translation updates from Raymond Vetter 2015-12-29 16:05:07 -08:00
Jamie Cameron
984ad50d21 Set SSL fields to an empty value at creation time, to satisfy MySQL 5.7 2015-12-29 11:01:27 -08:00
Jamie Cameron
595ce7d9ff Merge pull request #271 from BindAr/master
LSI MegaRAID support
2015-12-28 20:26:04 -08:00
Jamie Cameron
7241591c10 Private key may not have RSA in the header https://sourceforge.net/p/webadmin/bugs/4691/ 2015-12-28 17:40:38 -08:00
Jamie Cameron
339366c7f4 changelog for mysql 5.7 fixes 2015-12-28 17:39:11 -08:00
Jamie Cameron
bbbdb849eb fix user sync code to handle new password columns 2015-12-28 17:38:00 -08:00
Jamie Cameron
3e2cc2aaec Re-factor password change code for root to use new syntax 2015-12-28 17:04:35 -08:00
BindAr
40fc32148a Update de 2015-12-29 01:49:14 +01:00
BindAr
7c64ef41ad Update smart-status-lib.pl 2015-12-29 01:47:34 +01:00
Jamie Cameron
bafb4e3808 Use proper SQL params for column privs 2015-12-28 16:41:08 -08:00
Jamie Cameron
9c7274e283 Use proper SQL params 2015-12-28 16:19:03 -08:00
Jamie Cameron
dc121cc427 Remove useless function 2015-12-28 16:01:39 -08:00
Jamie Cameron
7d520e1d17 Port host permissions to new privilege column implementation 2015-12-28 15:54:57 -08:00
Jamie Cameron
51f96900da Add option to control who can see system info 2015-12-27 20:08:58 -08:00
Jamie Cameron
d0a3b27647 German translation updates from Raymond Vetter 2015-12-27 19:29:52 -08:00
Jamie Cameron
9daf4b2d17 German translation updates from Raymond Vetter 2015-12-25 20:41:30 -08:00
Jamie Cameron
2e625451a3 Re-factor DB permissions editing 2015-12-22 17:21:26 -08:00
Jamie Cameron
6330deb1bc Make priv fields function common 2015-12-22 16:30:08 -08:00
Jamie Cameron
ba7b2a7cfa permissions fix 2015-12-22 16:09:15 -08:00
Jamie Cameron
d238e19289 No need to support ancient versions 2015-12-22 16:09:00 -08:00
Jamie Cameron
7b4d33f0fa Re-factor the way mysql user permissions are edited, to not be dependent on column order 2015-12-22 16:08:38 -08:00
Jamie Cameron
5c5b79fc5e Use correct flags for newaliases vs postalias 2015-12-22 11:21:47 -08:00
Jamie Cameron
fcadcdee09 Prevent space between command and comment from being included in the command 2015-12-22 10:25:49 -08:00
Jamie Cameron
2a6fe1a536 What are these old variables for? No idea 2015-12-21 21:57:29 -08:00
Jamie Cameron
8a99221212 version bump 2015-12-21 14:15:44 -08:00
Jamie Cameron
0a549477c3 ui-lib conversion 2015-12-20 17:32:56 -08:00
Jamie Cameron
66425fd51b Remove useless alignment directives 2015-12-20 15:13:27 -08:00
Jamie Cameron
510d996761 Remove useless alignment tags 2015-12-20 15:06:03 -08:00
Jamie Cameron
651e5ac2be Remove useless alignment strings 2015-12-20 15:04:36 -08:00
Jamie Cameron
34de88aa52 Remove useless HTML 2015-12-20 14:58:54 -08:00
Jamie Cameron
a3675dcc32 ui-lib conversion 2015-12-20 11:52:24 -08:00
Jamie Cameron
8d6e1a33dd remove useless aligns 2015-12-20 11:27:43 -08:00
Jamie Cameron
3cf72674be changelog for ui changes 2015-12-20 11:21:19 -08:00
Jamie Cameron
17b58c4a07 Use systemctl on centos 7 and derivatives http://virtualmin.com/node/37710 2015-12-20 10:19:14 -08:00
Jamie Cameron
b0f15dc79a Use systemctl on centos 7 and derivatives http://virtualmin.com/node/37710 2015-12-20 10:17:34 -08:00
Jamie Cameron
2b0c4facbd Use systemctl on centos 7 and derivatives http://virtualmin.com/node/37710 2015-12-20 10:15:12 -08:00
Jamie Cameron
69cf2f635b Use systemctl on centos 7 and derivatives http://virtualmin.com/node/37710 2015-12-20 10:14:08 -08:00
Jamie Cameron
d8beb7b44f Use systemctl on centos 7 and derivatives http://virtualmin.com/node/37710 2015-12-20 09:57:15 -08:00
Jamie Cameron
f6fa7e6eb2 Use systemctl on centos 7 and derivatives http://virtualmin.com/node/37710 2015-12-20 09:54:26 -08:00
Jamie Cameron
3a7045666b Use systemctl on centos 7 and derivatives http://virtualmin.com/node/37710 2015-12-20 09:52:24 -08:00
Jamie Cameron
89b0cc991a Use systemctl on centos 7 and derivatives http://virtualmin.com/node/37710 2015-12-20 09:51:04 -08:00
Jamie Cameron
f800f29418 Use systemctl on centos 7 and derivatives http://virtualmin.com/node/37710 2015-12-20 09:47:16 -08:00
Jamie Cameron
205060e59b Use systemctl on centos 7 and derivatives http://virtualmin.com/node/37710 2015-12-20 09:45:53 -08:00
Jamie Cameron
4730e04c3c German translation updates from Raymond Vetter 2015-12-19 16:16:51 -08:00
Jamie Cameron
82bb4284ba Fix call to theme override https://sourceforge.net/p/webadmin/bugs/4689/ 2015-12-17 22:19:26 -08:00
Jamie Cameron
e55c4ef1a6 Exclude [] stuff before key name 2015-12-16 19:35:13 -08:00
Jamie Cameron
3e5f88b5dc German translation updates from Raymond Vetter 2015-12-16 19:07:38 -08:00
Jamie Cameron
fef2f9bb88 Add missing string 2015-12-15 20:44:19 -08:00
Jamie Cameron
a643d4ed73 Remove useless width spec 2015-12-15 20:37:55 -08:00
Jamie Cameron
a392cded47 ui-lib conversion 2015-12-15 20:37:29 -08:00
Jamie Cameron
179e945308 Fix use of undefined variable https://sourceforge.net/p/webadmin/usermin-bugs/449/ 2015-12-15 19:58:00 -08:00
Jamie Cameron
08e23517cf Avoid use of undefined variable https://sourceforge.net/p/webadmin/usermin-bugs/448/ 2015-12-15 19:57:02 -08:00
Jamie Cameron
9b8078e7d0 Remove useless alignment options 2015-12-14 21:33:38 -08:00
Jamie Cameron
fd064fb9ca Fix select list when there is no text http://virtualmin.com/node/38926 2015-12-13 11:16:23 -08:00
Jamie Cameron
dd941eba08 ui-lib conversion 2015-12-12 17:47:24 -08:00
Jamie Cameron
2c2bfa62be ui-lib conversion 2015-12-12 17:30:53 -08:00
Jamie Cameron
6ada786601 only show link once 2015-12-12 17:12:12 -08:00
Jamie Cameron
9959a2aa68 ui-lib conversion 2015-12-12 17:11:30 -08:00
Jamie Cameron
42d902ab4f ui-lib conversion 2015-12-12 17:03:53 -08:00
Jamie Cameron
e09fccf402 Fix variable declaration 2015-12-12 16:13:07 -08:00
Jamie Cameron
6a9e902c5f UI-lib conversion 2015-12-11 21:58:00 -08:00
Jamie Cameron
bc8c8789cc ui-lib conversion 2015-12-11 21:07:06 -08:00
Jamie Cameron
2feeabf152 LDAP matches aren't case sensitive http://virtualmin.com/node/38803 2015-12-08 20:50:44 -08:00
Jamie Cameron
d4872509dd Undre MySQL 5, myisam_sort_buffer_size is now a stand-alone directive http://virtualmin.com/node/22895 2015-12-06 19:11:46 -08:00
Jamie Cameron
9bc50b5398 German translation updates from Raymond Vetter 2015-12-06 18:48:07 -08:00
Jamie Cameron
cfc58f705f New Linux Mint version 2015-12-06 18:10:09 -08:00
Jamie Cameron
384de5c620 Upgrade script may be reached from a GET 2015-12-06 11:11:25 -08:00
Jamie Cameron
cedfd975e2 Make new defines config options visible config.info 2015-12-06 11:11:02 -08:00
Jamie Cameron
4e9297cf67 Defines can be set to empty 2015-12-06 10:47:26 -08:00
Jamie Cameron
de21b151ee Respect defines from config files like /etc/sysconfig/proftpd 2015-12-06 10:44:27 -08:00
Jamie Cameron
3d100bc3c8 German translation updates from Raymond Vetter 2015-12-04 22:51:07 -08:00
Jamie Cameron
2115c4554f New dev version 2015-12-03 21:56:41 -08:00
Jamie Cameron
66397b1305 Handle new let's encrypt command line requirements 2015-12-03 21:55:47 -08:00
Jamie Cameron
a142161b9e Also look for letsencrypt-auto command 2015-12-03 21:44:46 -08:00
Jamie Cameron
b0ecbaf63e Auto-scroll unbuffered pages 2015-12-03 20:01:40 -08:00
Jamie Cameron
1219f25708 Add option to create a world from a server-side file 2015-12-02 21:15:35 -08:00
Jamie Cameron
7e95339909 Remove noisy debug line 2015-12-02 13:23:27 -08:00
Jamie Cameron
ba06eb24e5 Don't set ssl_type for new users if not set 2015-12-01 15:14:38 -08:00
Jamie Cameron
438e95e616 ps V output may not include the word version https://sourceforge.net/p/webadmin/bugs/4683/ 2015-12-01 15:09:38 -08:00
Jamie Cameron
0b9a56c266 dev version bump 2015-11-30 20:19:00 -08:00
Jamie Cameron
9297c3e7f0 A bosystemdction in 'static' state is enabled https://github.com/webmin/webmin/issues/270 2015-11-30 17:36:22 -08:00
Jamie Cameron
7b818e8904 German translation updates from Raymond Vetter 2015-11-29 18:41:37 -08:00
Jamie Cameron
abcce47423 mdb is new LDAP format https://sourceforge.net/p/webadmin/bugs/4681/ 2015-11-28 21:45:31 -08:00
Jamie Cameron
6fec095bca Detect when RAID resync is delayed https://github.com/webmin/webmin/issues/269 2015-11-28 20:56:40 -08:00
Jamie Cameron
ed46708b99 If a whole disk is already used in a RAID, don't offer to add partitions https://github.com/webmin/webmin/issues/269 2015-11-27 21:44:47 -08:00
Jamie Cameron
97436e9cea Add default charset field 2015-11-26 21:44:07 -08:00
Jamie Cameron
f5a7fb89ca Fix typo 2015-11-24 18:02:35 -08:00
Jamie Cameron
af9e544f90 German translation updates from Raymond Vetter 2015-11-24 18:01:06 -08:00
Jamie Cameron
326f154558 German translation updates from Raymond Vetter 2015-11-21 11:59:09 -08:00
Jamie Cameron
6721093b91 Deal with case where there is a leading space https://sourceforge.net/p/webadmin/bugs/4679/ 2015-11-19 17:07:14 -08:00
Jamie Cameron
f727cde8f8 German translation updates from Raymond Vetter 2015-11-17 19:57:00 -08:00
Jamie Cameron
0dad4477f6 Restore option for RMT path https://sourceforge.net/p/webadmin/bugs/4677/ 2015-11-16 19:59:47 -08:00
Jamie Cameron
e5b72f8747 German translation updates from Raymond Vetter 2015-11-16 19:45:11 -08:00
Jamie Cameron
e624b7fdb8 Log message for let's encrypt 2015-11-15 23:09:23 -08:00
Jamie Cameron
8ad75e9d18 Strings for SSL client options 2015-11-15 19:18:30 -08:00
Jamie Cameron
12919c030f Finished off let's encrypt support 2015-11-15 19:18:11 -08:00
Jamie Cameron
a9044c620f changelog and actual cert placement 2015-11-15 14:02:14 -08:00
Jamie Cameron
a7c8301ed9 Module chooser is referer-safe 2015-11-15 13:37:42 -08:00
Jamie Cameron
df02cd6e91 More work on let's encrypt cert generation 2015-11-15 13:29:58 -08:00
Jamie Cameron
a54975a7b3 Remove skill-level ACL files that have been deprecated for years 2015-11-15 10:18:04 -08:00
Jamie Cameron
37658cffa8 German translation updates from Raymond Vetter 2015-11-15 09:50:20 -08:00
Jamie Cameron
e2cba8113c Work on the lets encrypt UI 2015-11-14 19:32:01 -08:00
Jamie Cameron
b9c3a943cc Polish translation from Piotr Kozica 2015-11-14 14:51:04 -08:00
Jamie Cameron
0b4204dabe Add outgoing SMTP options 2015-11-13 17:14:03 -08:00
Jamie Cameron
ec4a1aa023 Newaliases command uses -oA to set the file https://sourceforge.net/p/webadmin/bugs/4674/ 2015-11-11 19:17:26 -08:00
Jamie Cameron
66bbccb993 Valid cache dirs must start with / https://sourceforge.net/p/webadmin/bugs/4523/ 2015-11-09 17:39:50 -08:00
Jamie Cameron
f7ccf2077d More ui-lib conversion 2015-11-08 14:44:11 -08:00
Jamie Cameron
33464aece1 ui-lib conversion 2015-11-08 14:34:16 -08:00
Jamie Cameron
9cbe29a824 Remove useless constraint 2015-11-08 14:32:04 -08:00
Jamie Cameron
42fc25450c ui-lib conversion 2015-11-08 14:30:49 -08:00
Jamie Cameron
dd855a189d Remove debugging code 2015-11-08 11:28:33 -08:00
Jamie Cameron
dc5c5acd4a Remove now-useless strings 2015-11-08 11:27:44 -08:00
Jamie Cameron
da76731ec0 new compiled version 2015-11-08 11:27:20 -08:00
Jamie Cameron
616f0f9928 changelog for reverse records feature 2015-11-08 11:26:47 -08:00
Jamie Cameron
87fd564920 Preserve functionality of old code (even though I'm not totally sure what it did) 2015-11-08 11:24:06 -08:00
Jamie Cameron
16508b0a96 Fix deletion of reverse record in delegated zone 2015-11-08 11:21:31 -08:00
Jamie Cameron
51810b536a More fixes to partial reverse record editing 2015-11-07 16:05:19 -08:00
Jamie Cameron
2b45c4c071 Find partial reverse zones properly, and use the correct record name 2015-11-07 15:36:31 -08:00
Jamie Cameron
7bfce54886 redirects can be to a relative path https://sourceforge.net/p/webadmin/bugs/4672/ 2015-11-06 23:07:48 -08:00
Jamie Cameron
b070b0242c Factor out function to build a reverse record name from an IP 2015-11-06 23:04:48 -08:00
Jamie Cameron
170a8ae3ee Add missing var 2015-11-03 09:26:39 -08:00
Jamie Cameron
302cb694e1 Don't offer to upgrade webmin if the user doesn't have permissions https://www.virtualmin.com/node/38489 2015-11-02 22:23:00 -08:00
Jamie Cameron
9c7e8bd721 Filesystem sizes are in kb 2015-10-31 12:49:14 -07:00
Jamie Cameron
b01b4dd734 For ZFS filesystems, use the size from the pool 2015-10-31 12:47:42 -07:00
Jamie Cameron
87bcc1c39d dev version bump 2015-10-29 23:40:46 -07:00
Jamie Cameron
00d9da2654 Re-factor function to set the OS known to webmin, and call it automatically for small changes http://virtualmin.com/node/38421 2015-10-27 21:56:04 -07:00
Jamie Cameron
e0ba4d2476 Catalan update from Jaume Badiella 2015-10-27 20:28:39 -07:00
Jamie Cameron
747d9f1133 Catalan update from Jaume Badiella 2015-10-27 20:27:35 -07:00
Jamie Cameron
df95743889 Array option types also need to be quoted https://sourceforge.net/p/webadmin/bugs/4664/ 2015-10-26 21:00:17 -07:00
Jamie Cameron
1760032295 Escape dangerous HTML in forwarding action 2015-10-26 14:30:37 -07:00
Jamie Cameron
66ddbc6be3 timelocal dies rather than returning zero on failure 2015-10-26 14:28:31 -07:00
Jamie Cameron
8073e9ef40 HTML escape search term 2015-10-26 14:21:51 -07:00
Jamie Cameron
1d0a84e65b Switch to text-based strace output by default, due to the death of java 2015-10-24 09:20:34 -07:00
Jamie Cameron
be386e8840 Preserve twofactor settings when saving user https://github.com/webmin/webmin/issues/235 2015-10-23 16:03:45 -07:00
Jamie Cameron
4804c2ad5c Deal with case where user doesn't exist yet https://sourceforge.net/p/webadmin/usermin-bugs/446/ 2015-10-23 15:55:05 -07:00
Jamie Cameron
642c83e437 German translation updates from Raymond Vetter 2015-10-23 15:50:46 -07:00
Jamie Cameron
1d5279ee38 Add parameter to specify extra slave IPs https://sourceforge.net/p/webadmin/bugs/4660/ 2015-10-20 22:23:51 -07:00
Jamie Cameron
f05ed056cd ACL option to allow user to always edit his own password, in addition to other grants 2015-10-20 22:04:24 -07:00
Jamie Cameron
0dbb2b6253 Use new UI API functions to generate ACL form 2015-10-20 21:57:51 -07:00
Jamie Cameron
7f02ff8917 Add link to original monitor, if allowed 2015-10-20 21:36:48 -07:00
Jamie Cameron
82274422fb Installs using the Perl installer should also disable old SSL versions 2015-10-20 15:53:58 -07:00
Jamie Cameron
bd959c47b2 German translation updates from Raymond Vetter 2015-10-19 21:39:22 -07:00
Jamie Cameron
db387eab2f Backup button should not save scheduled config 2015-10-18 21:58:03 -07:00
Jamie Cameron
c2c8c2a5f3 Backup button should not save scheduled config 2015-10-18 21:55:06 -07:00
Jamie Cameron
06543a6705 German translation updates from Raymond Vetter 2015-10-18 20:21:13 -07:00
Jamie Cameron
c1f665c086 Filter out non-ascii chars from the gecos https://sourceforge.net/p/webadmin/bugs/4657/ 2015-10-15 22:30:30 -07:00
Jamie Cameron
c9bcd7f276 Ask for the perl module needed to convert non-ascii characters 2015-10-14 14:16:54 -07:00
Jamie Cameron
9b88757d4f Use a standard Perl module to remove accents if installed https://sourceforge.net/p/webadmin/bugs/4657/ 2015-10-14 14:12:53 -07:00
Jamie Cameron
476a271e03 Fix typo 2015-10-12 20:12:58 -07:00
Jamie Cameron
912e220713 Russian translation updates, thanks to brusee 2015-10-12 20:10:29 -07:00
Jamie Cameron
1fbc98c703 Option to show the last collected status on the System Information page https://github.com/webmin/webmin/issues/263 2015-10-11 21:54:50 -07:00
Jamie Cameron
5bc856308b When using DNF, upgrade packages with the update command https://github.com/webmin/webmin/issues/254 2015-10-10 11:18:41 -07:00
Jamie Cameron
dd4c68b300 Max retries can be zero 2015-10-09 22:14:03 -07:00
Jamie Cameron
551f2a7136 Polish translation from Piotr Kozica 2015-10-08 21:08:19 -07:00
Jamie Cameron
fcc5191dd5 Adding self to a group is fine https://github.com/webmin/webmin/issues/261 2015-10-05 22:33:46 -07:00
Jamie Cameron
9a804c5ed2 Also restart the nmbd server https://sourceforge.net/p/webadmin/bugs/4329/?page=1 2015-10-05 18:54:29 -07:00
Jamie Cameron
a17fbe0124 Debian version 8+ and derivatives use the smbd service https://sourceforge.net/p/webadmin/bugs/4329/?page=1 2015-10-05 18:51:16 -07:00
Jamie Cameron
801da15675 Make error when joining a group clearer http://virtualmin.com/node/38187 2015-10-05 14:15:26 -07:00
Jamie Cameron
48abf8702a Actually we need TLS 1.2 2015-10-03 22:37:06 -07:00
Jamie Cameron
9d55206c69 Preserve IPv6 gateway http://virtualmin.com/node/38147 2015-10-02 22:39:00 -07:00
Jamie Cameron
c2fe651b16 Polish translation from Piotr Kozica 2015-10-01 22:06:36 -07:00
Jamie Cameron
ff81498f73 CentOS / RHEL 7 has no PID file https://github.com/webmin/webmin/issues/258 2015-09-29 13:18:59 -07:00
Jamie Cameron
1d380f8665 New version 2015-09-27 12:15:47 -07:00
Jamie Cameron
d4aada9248 Cache status of a password file, rather than re-reading it over and over 2015-09-27 10:43:46 -07:00
Jamie Cameron
e0da240903 Make color boxes appear by putting something into them 2015-09-27 10:07:24 -07:00
Jamie Cameron
4cd05d0777 ZFS mounts may be from a device that is just the pool name https://sourceforge.net/p/webadmin/bugs/4188/ 2015-09-27 09:42:00 -07:00
Jamie Cameron
207570d6c6 Reading from a command is read-only by definition https://sourceforge.net/p/webadmin/bugs/4647/ 2015-09-27 09:29:31 -07:00
Jamie Cameron
df520db5bd Flush only where needed 2015-09-27 09:26:51 -07:00
Jamie Cameron
6a725d590b Fix return link text http://virtualmin.com/node/38096 2015-09-26 10:57:02 -07:00
Jamie Cameron
f00784fce8 German translation updates from Raymond Vetter 2015-09-23 18:59:51 -07:00
Jamie Cameron
495ab59f09 Custom headers can't use the normal IMAP search http://virtualmin.com/node/38059 2015-09-21 18:47:54 -07:00
Jamie Cameron
7d69745da2 Version bump for new theme 2015-09-21 16:19:38 -07:00
Jamie Cameron
a32f9ab50f Add contributed modules to replacement list 2015-09-21 16:17:35 -07:00
Jamie Cameron
6922e89582 Fix perl warning https://sourceforge.net/p/webadmin/bugs/4645/ 2015-09-21 15:15:26 -07:00
Jamie Cameron
c8b583b848 Show more useful message fgor negated search https://sourceforge.net/p/webadmin/bugs/4643/ 2015-09-20 22:39:12 -07:00
Jamie Cameron
78fa0a6d02 Japanese updates from sakaeakanuma 2015-09-20 10:08:49 -07:00
Jamie Cameron
a6fc0360ac Japanese updates from sakaeakanuma 2015-09-20 10:08:48 -07:00
Jamie Cameron
151fd07c20 Japanese updates from sakaeakanuma 2015-09-20 10:08:48 -07:00
Jamie Cameron
34ba810c40 Japanese updates from sakaeakanuma 2015-09-20 10:08:47 -07:00
Jamie Cameron
f67563902c Japanese updates from sakaeakanuma 2015-09-20 10:08:42 -07:00
Jamie Cameron
fe9172c70e New version bump 2015-09-15 15:09:01 -07:00
Jamie Cameron
8c6b2a3021 Turn off authentic theme update message when installed as part of WEbmin 2015-09-15 13:24:22 -07:00
Jamie Cameron
3ee53333ca Assume HTTP for port 443 https://github.com/webmin/webmin/issues/217 2015-09-14 19:45:25 -07:00
Jamie Cameron
694a9ef746 Use the sntp command if ntpdate is missing http://virtualmin.com/node/37985 2015-09-13 10:24:28 -07:00
Jamie Cameron
62f88f3141 Handle blank lines https://sourceforge.net/p/webadmin/bugs/4636/ 2015-09-12 15:01:00 -07:00
Jamie Cameron
bc0faf3a27 German translation updates from Raymond Vetter 2015-09-12 14:57:31 -07:00
Jamie Cameron
bd3e9c7d06 Merge branch 'master' of git@github.com:webmin/webmin 2015-09-11 16:54:07 -07:00
Jamie Cameron
b2412b46d8 Protocol can be set to 'all' https://sourceforge.net/p/webadmin/bugs/4637/ 2015-09-11 16:45:11 -07:00
Jamie Cameron
ff6f59339b Merge pull request #255 from gerco/master
Fixed not calling switch_from_folder_user() for some types of maildir
2015-09-10 19:25:35 -07:00
Gerco Dries
2cb7691e37 Fixed not calling switch_from_folder_user() for some types of mail directories 2015-09-10 23:23:30 +02:00
Jamie Cameron
24d15b1444 SSL cert and key can alsobe defined for an IP address, so force use of the ones at the top level 2015-09-07 20:28:36 -07:00
Jamie Cameron
4d39b7233c Also prefer non-self-referential values when finding directives 2015-09-07 19:35:53 -07:00
Jamie Cameron
897f0d06fe When choosing a directive to replace, if there are multiple instances and some refer to previous values, pick one that is not self-referential http://virtualmin.com/node/25425 2015-09-07 19:29:46 -07:00
Jamie Cameron
95cafd87b1 German translation updates from Raymond Vetter 2015-09-03 19:48:51 -07:00
Jamie Cameron
5856d46c6c Add option to run post-backup command even if tar fails https://sourceforge.net/p/webadmin/bugs/4605/ 2015-09-02 18:19:28 -07:00
Jamie Cameron
31d3aa2782 Option for SSL cert enforcement 2015-09-01 22:58:58 -07:00
Jamie Cameron
799a0e8efd Add forgotten stat 2015-09-01 22:03:30 -07:00
Jamie Cameron
028dc5a7bd Japanese translation 2015-09-01 22:03:14 -07:00
Jamie Cameron
27a1ccf257 Add icon for manual edit 2015-09-01 22:02:56 -07:00
Jamie Cameron
22abe602ed Define first install file, which I forgot to checkin previously 2015-09-01 22:02:38 -07:00
Jamie Cameron
524c6678a6 Export new API function 2015-09-01 22:02:09 -07:00
Jamie Cameron
a74744d914 Work on verifiction of remote CA certs 2015-08-31 22:26:15 -07:00
Jamie Cameron
fe1e459d62 API work on SSL verification 2015-08-31 20:55:30 -07:00
Jamie Cameron
c1430d3c78 I have no idea why I added these valign tags 2015-08-30 19:58:50 -07:00
Jamie Cameron
e41d7bbceb Allow specification of perl modules with a / 2015-08-30 09:31:14 -07:00
Jamie Cameron
b5438d5e74 Hack to make generate_location work, because it calls old-style UI functions 2015-08-28 22:35:12 -07:00
Jamie Cameron
ed4f4574e7 Merge branch 'master' of git@github.com:webmin/webmin 2015-08-28 22:22:20 -07:00
Jamie Cameron
9eea0dc202 Fix useless right alignments 2015-08-28 22:21:59 -07:00
Jamie Cameron
188aef4d97 Merge pull request #250 from qooob/patch-3
Add Edit word instead of OK
2015-08-28 22:20:01 -07:00
Jamie Cameron
12ca5b702e Merge pull request #251 from qooob/patch-4
Get rid of weird align=right
2015-08-28 14:18:49 -07:00
Ilia Rostovtsev
1669d55c67 Get rid of weird align=right
It's better to remove align=right from this and other files, like `edit_lserv.cgi`,`edit_lserv.cgi`,`edit_aserv.cgi`,`edit_vserv.cgi` as it makes the module look different in a bad way compare to ALL others.
2015-08-28 23:54:29 +03:00
Ilia Rostovtsev
4c9d6774aa Add Edit word instead of OK
To be the same over all modules it rather should be EDIT and not OK. Why not adding EDIT to the lang and use it? ;)
2015-08-28 23:49:46 +03:00
Jamie Cameron
28b906abb2 German translation updates from Raymond Vetter 2015-08-27 20:54:12 -07:00
Jamie Cameron
1e6fd5eb7c Merge pull request #248 from claudius23/sarg-argument-list
execute sarg with all logfiles as parameter
2015-08-27 16:18:51 -07:00
Jamie Cameron
155bf542f8 Show samba password last changed fields, thanks to Ralf Habacker 2015-08-26 22:31:29 -07:00
Jamie Cameron
c9f43f70d6 Hide old java-based module for new webmin versions 2015-08-26 22:27:55 -07:00
Jamie Cameron
3ec46a61db Record version of Webmin at first install http://virtualmin.com/node/37800 2015-08-26 22:05:32 -07:00
Jamie Cameron
e663dc10fd Merge branch 'master' of git@github.com:webmin/webmin 2015-08-26 21:48:28 -07:00
Jamie Cameron
2f9e91b9e1 Deal with case where no software package system was detected 2015-08-26 21:26:29 -07:00
Jamie Cameron
8509f841ba Merge pull request #249 from claudius23/new-sarg-reports
add missing sarg reports for topusers and downloads
2015-08-26 16:57:57 -07:00
Claudius
1138bff9e4 Sarg needs a list of logfiles to generate reports.
Executing sarg multiple times generate only reports from last log file.
2015-08-26 13:46:14 +02:00
Claudius
6461d8f245 add missing sarg reports topusers and downloads 2015-08-26 13:16:43 +02:00
Jamie Cameron
90bf845504 Merge branch 'master' of git@github.com:webmin/webmin 2015-08-25 19:59:48 -07:00
Jamie Cameron
0c348a754f Disable all old TLS versions by default for new installs https://sourceforge.net/p/webadmin/bugs/4590/ 2015-08-25 19:50:33 -07:00
Jamie Cameron
106607b967 Merge pull request #246 from claudius23/patch-2
Fix Hostname in edit_cache_host.cgi
2015-08-25 16:23:22 -07:00
Jamie Cameron
8f7acb24bf Add UI for changing session-IP stickyness option https://github.com/webmin/webmin/issues/244 2015-08-24 21:46:06 -07:00
Jamie Cameron
1dbe198aa3 Support config option to limit sessions to the original IP https://github.com/webmin/webmin/issues/244 2015-08-24 21:41:23 -07:00
Jamie Cameron
33247f4fab Deal with case where OS doesn't export network interfaces http://virtualmin.com/node/37770 2015-08-24 19:16:58 -07:00
Claudius Herder
8a28399cb4 Fix Hostname in edit_cache_host.cgi
$ch[0] is hostname, $ch[2] is proxy port.
2015-08-24 15:00:56 +02:00
Jamie Cameron
102047efa8 For packaging, just call it 'File Manager' 2015-08-20 22:53:15 -07:00
Jamie Cameron
fbc19a3d1a Rename to Java File Manager 2015-08-20 22:49:30 -07:00
Jamie Cameron
aae1c32030 New version bump 2015-08-19 22:17:39 -07:00
Jamie Cameron
0301c4751d Add support for a Must-Autoreply-Regexp header for autoreplies 2015-08-19 21:52:00 -07:00
Jamie Cameron
926f35e7e8 Use dsset- file to get DS record as a backup 2015-08-18 22:44:11 -07:00
Jamie Cameron
1d299ecd00 Port special case for Debian apache2 package to Webmin 2015-08-18 20:58:00 -07:00
Jamie Cameron
2a9e9e491f Use the systemctl command instead of service, which just redirects to it anyway http://virtualmin.com/node/37710 2015-08-16 13:56:34 -07:00
Jamie Cameron
fe39f816b3 Don't include distribution files that are part of the filemin repo 2015-08-15 12:22:07 -07:00
Jamie Cameron
473b72f98c If there are no views, don't set the ACL field that controls which views domains can be edited in https://sourceforge.net/p/webadmin/bugs/4628/ 2015-08-11 19:12:16 -07:00
Jamie Cameron
73498f60bb Restore may ask for a backup job https://sourceforge.net/p/webadmin/bugs/4580/ 2015-08-05 22:13:18 -07:00
Jamie Cameron
938965c9d2 The X-Spam-Flag header can be set to NO in some cases! 2015-08-04 23:43:35 -07:00
Jamie Cameron
64b3e7d792 Don't break the cache structure hash - instead file out invalid lines http://virtualmin.com/node/37706 2015-08-02 22:24:14 -07:00
Jamie Cameron
9cdeb188d8 Dev version bump 2015-08-02 15:41:45 -07:00
Jamie Cameron
2efc68fcdc Calling define on an array is deprecated 2015-08-02 15:40:44 -07:00
Jamie Cameron
0e68254f26 Include filemin in standard package, and remove some contributor-specific files 2015-08-02 15:39:11 -07:00
Jamie Cameron
4e9408b048 Clean up some formal parameters and code formatting 2015-08-02 14:53:21 -07:00
Jamie Cameron
0213ee0371 Add support for parsing FTP URLs to the http parser function 2015-08-02 14:36:22 -07:00
Jamie Cameron
f5ebb0a1cf No need to use POSIX when it is already included up the top 2015-08-02 13:32:52 -07:00
Jamie Cameron
9b12008cd1 Exclude some files in the filemin repo from packaging 2015-08-02 13:30:02 -07:00
Jamie Cameron
5db4f95687 Xinha requires use of eval 2015-08-02 13:00:45 -07:00
Jamie Cameron
6fe30eb104 Allow users to edit config manually by default https://github.com/webmin/webmin/issues/242 2015-08-01 11:45:50 -07:00
Jamie Cameron
1709426f3f Add icon for manually editing the squid config files https://github.com/webmin/webmin/issues/242 2015-07-31 16:15:42 -07:00
Jamie Cameron
838f90c8d7 A regular rename coe call can fail if it crosses filesystems, so try the mv command as well http://virtualmin.com/node/37524 2015-07-28 22:08:25 -07:00
Jamie Cameron
ef01659b5b Make cookie path settable https://github.com/webmin/webmin/issues/240 2015-07-27 22:29:41 -07:00
Jamie Cameron
dc3099abe8 Skip github doc files 2015-07-26 21:22:45 -07:00
Jamie Cameron
fc098eaa15 Update DNSn lines on redhat systems https://github.com/webmin/webmin/issues/238 2015-07-26 13:51:54 -07:00
Jamie Cameron
17747f5e6a Prefer the dnf command to yum 2015-07-26 13:14:53 -07:00
Jamie Cameron
8cb9515e0b Re-factor code for OS-specific DNS configs https://github.com/webmin/webmin/issues/238 2015-07-26 13:13:08 -07:00
Jamie Cameron
1faed086a6 Prefer dnf command if installed 2015-07-26 07:38:52 -07:00
Jamie Cameron
121f5afa5e German translation updates from Raymond Vetter 2015-07-21 17:31:15 -07:00
Jamie Cameron
a058b34461 Prevent duplicate listen address http://virtualmin.com/node/37609 2015-07-19 13:18:53 -07:00
Jamie Cameron
e39e25f637 The inet word can appear before proto http://virtualmin.com/node/36645 2015-07-14 18:23:16 -07:00
Jamie Cameron
96bf8e0429 Catalan update from Jaume Badiella 2015-07-13 19:17:31 -07:00
Jamie Cameron
a5db48b268 Catalan update from Jaume Badiella 2015-07-13 19:17:03 -07:00
Jamie Cameron
4cf90d07ac The mppe-stateful directive doesn't have a require- prefix http://sourceforge.net/p/webadmin/bugs/4625/ 2015-07-11 18:59:09 -07:00
Jamie Cameron
f7a864b15e SuSE 13 renames the init script to cifs 2015-07-11 17:38:42 -07:00
Jamie Cameron
bd1fb03888 Remove useless version check 2015-07-10 22:50:01 -07:00
Jamie Cameron
d48b4c0432 Merge branch 'master' of git@github.com:webmin/webmin 2015-07-10 18:31:07 -07:00
Jamie Cameron
9e37f09bea Option is actually children, not concurrency 2015-07-10 18:28:01 -07:00
Jamie Cameron
b077a832b5 Merge pull request #229 from kkprince1998/cld-src
add child-src
2015-07-08 13:00:04 -07:00
Kaiden Prince
f6e7b851d2 add child-src
frame-src is now depreciated, added child-src for compatibility for new browsers.
2015-07-08 15:40:36 -04:00
Jamie Cameron
cd40658ada Merge branch 'master' of git@github.com:webmin/webmin 2015-07-05 23:18:19 -07:00
Jamie Cameron
fcc9677c89 Support DNF over YUM if installed https://github.com/webmin/webmin/issues/226 2015-07-05 22:40:52 -07:00
Jamie Cameron
c6fa750dc8 Merge pull request #224 from claudius23/patch-1
Update sarg-lib.pl
2015-07-02 09:32:41 -07:00
Claudius Herder
39ae4107f2 Update sarg-lib.pl
execute sarg with configured sarg.conf file
2015-07-02 17:57:57 +02:00
Jamie Cameron
250a3f7ce6 Fix permission grant for zones in a view https://sourceforge.net/p/webadmin/bugs/4621/ 2015-07-01 22:56:26 -07:00
Jamie Cameron
e9e453cc2d Updating the ssl_cipher and ssl_type at the same time can leave ssl_type empty, so do them separately https://sourceforge.net/p/webadmin/bugs/4622/ 2015-06-29 21:21:51 -07:00
Jamie Cameron
6efc7363b8 Fix typo 2015-06-29 20:50:33 -07:00
Jamie Cameron
a45f60a969 Allow callers to skip creation of mbox index files 2015-06-28 12:45:42 -07:00
Jamie Cameron
3615770fbe Move modules cache to /var/webmin 2015-06-27 20:37:29 -07:00
Jamie Cameron
9ccf4fd7df Prevent perl warning 2015-06-27 20:32:00 -07:00
Jamie Cameron
c89225bd68 By default zones in all views can be edited 2015-06-27 20:23:09 -07:00
Jamie Cameron
7e5556f530 Permissions fixes 2015-06-27 20:22:41 -07:00
Jamie Cameron
f8c8487ac3 Contributed Russian translations 2015-06-27 20:19:20 -07:00
Jamie Cameron
cae261ed84 Use /var/webmin for all read status DBMs 2015-06-27 20:19:00 -07:00
Jamie Cameron
aabd5f7a4f Use /var/webmin for the maildir cache directory 2015-06-27 17:44:47 -07:00
Jamie Cameron
77795a6c40 Use /var/webmin for index files if there aren't already in /etc/webmin 2015-06-27 17:37:22 -07:00
Jamie Cameron
3673c08687 Move logic for finding IMAP cache dir into a separate function, which respects /var/webmin 2015-06-27 17:36:50 -07:00
Jamie Cameron
97b71af97c Use /var/webmin for temp files 2015-06-27 16:14:38 -07:00
Jamie Cameron
a623f44b84 Use /var/webmin for temp files 2015-06-27 16:02:28 -07:00
Jamie Cameron
39a4574aae Use /var/webmin for temp files 2015-06-27 15:58:21 -07:00
Jamie Cameron
ccc5f260c4 Use /var/webmin for cache files 2015-06-27 15:51:59 -07:00
Jamie Cameron
83400e5edc Disallow an upgrade from the tar.gz if portage is in use http://sourceforge.net/p/webadmin/bugs/4619 2015-06-26 09:57:34 -07:00
Jamie Cameron
02ae0fc5ae changelog for /var move 2015-06-25 23:05:29 -07:00
Jamie Cameron
47694dac77 Use new cache dir under /var unless /etc/webmin is already in use 2015-06-25 23:02:13 -07:00
Jamie Cameron
ea6e798b0e Use new var directory for new installs 2015-06-25 09:45:09 -07:00
Jamie Cameron
16204e7dcd Create new per-module var directoiry 2015-06-25 09:44:24 -07:00
Jamie Cameron
efa9057d30 German translation updates from Raymond Vetter 2015-06-23 18:11:07 -07:00
Jamie Cameron
c11deb3936 Move manual edit link into above and below the table 2015-06-22 21:21:13 -07:00
Jamie Cameron
d5e23a92e5 Search and prioritize webmin docs 2015-06-21 22:56:54 -07:00
Jamie Cameron
d195ccbbf2 Show a more useful error if no package or update system was found https://sourceforge.net/p/webadmin/bugs/4615/ 2015-06-20 22:43:45 -07:00
Jamie Cameron
61322d3ccb German translation updates from Raymond Vetter 2015-06-20 16:00:17 -07:00
Jamie Cameron
2d6bec06dc German translation updates from Raymond Vetter 2015-06-20 16:00:16 -07:00
1501 changed files with 95554 additions and 7932 deletions

View File

@@ -226,3 +226,7 @@ Norwegian updates, thanks to Stein-Aksel Basma.
Catalan translation updates from Jaume Badiella.
More German translation updates, thanks to Raymond Vetter.
Fixed an XSS bug that allowed xmlrpc.cgi to be abused by a malicious link.
---- Changes since 1.760 ----
For new installs, switched the location of data files in many modules to /var/webmin instead of /etc/webmin.
---- Changes since 1.790 ----
Added a recent logins section to the System Information page.

2
README
View File

@@ -1,4 +1,4 @@
Webmin Version 1.760
Webmin Version 1.800
--------------------
Webmin is a web-based interface for system administration for Unix.
Using any browser that supports tables and forms, you can setup user

View File

@@ -1,44 +0,0 @@
use Webmin::Page;
use Webmin::ResultPage;
use Webmin::ErrorPage;
use Webmin::ConfirmPage;
use Webmin::Form;
use Webmin::Section;
use Webmin::Textbox;
use Webmin::OptTextbox;
use Webmin::OptTextarea;
use Webmin::Submit;
use Webmin::Password;
use Webmin::Checkbox;
use Webmin::Select;
use Webmin::Radios;
use Webmin::Checkboxes;
use Webmin::Table;
use Webmin::Menu;
use Webmin::LinkTable;
use Webmin::Tabs;
use Webmin::Textarea;
use Webmin::Upload;
use Webmin::DynamicText;
use Webmin::DynamicBar;
use Webmin::DynamicWait;
use Webmin::DynamicHTML;
use Webmin::Properties;
use Webmin::User;
use Webmin::Group;
use Webmin::File;
use Webmin::Button;
use Webmin::JavascriptButton;
use Webmin::PlainText;
use Webmin::Multiline;
use Webmin::Date;
use Webmin::Time;
use Webmin::TitleList;
use Webmin::Columns;
use Webmin::Icon;
use Webmin::TableAction;
use Webmin::InputTable;
use WebminCore;
1;

View File

@@ -1,20 +0,0 @@
package Webmin::ResultPage;
use WebminCore;
=head2 new Webmin::ResultPage(subheading, title, message, [help-name])
Create a new page object for showing some success message.
=cut
sub new
{
if (defined(&Webmin::Theme::ResultPage::new) &&
caller() !~ /Webmin::Theme::ResultPage/) {
return new Webmin::Theme::ResultPage(@_[1..$#_]);
}
my ($self, $subheading, $title, $message, $help) = @_;
$self = new Webmin::Page($subheading, $title, $help);
$self->add_message("<b>$message</b>");
return $self;
}
1;

File diff suppressed because one or more lines are too long

44
WebminUI/All.pm Normal file
View File

@@ -0,0 +1,44 @@
use WebminUI::Page;
use WebminUI::ResultPage;
use WebminUI::ErrorPage;
use WebminUI::ConfirmPage;
use WebminUI::Form;
use WebminUI::Section;
use WebminUI::Textbox;
use WebminUI::OptTextbox;
use WebminUI::OptTextarea;
use WebminUI::Submit;
use WebminUI::Password;
use WebminUI::Checkbox;
use WebminUI::Select;
use WebminUI::Radios;
use WebminUI::Checkboxes;
use WebminUI::Table;
use WebminUI::Menu;
use WebminUI::LinkTable;
use WebminUI::Tabs;
use WebminUI::Textarea;
use WebminUI::Upload;
use WebminUI::DynamicText;
use WebminUI::DynamicBar;
use WebminUI::DynamicWait;
use WebminUI::DynamicHTML;
use WebminUI::Properties;
use WebminUI::User;
use WebminUI::Group;
use WebminUI::File;
use WebminUI::Button;
use WebminUI::JavascriptButton;
use WebminUI::PlainText;
use WebminUI::Multiline;
use WebminUI::Date;
use WebminUI::Time;
use WebminUI::TitleList;
use WebminUI::Columns;
use WebminUI::Icon;
use WebminUI::TableAction;
use WebminUI::InputTable;
use WebminCore;
1;

View File

@@ -1,16 +1,16 @@
package Webmin::Button;
use Webmin::Input;
package WebminUI::Button;
use WebminUI::Input;
use WebminCore;
@ISA = ( "Webmin::Input" );
@ISA = ( "WebminUI::Input" );
=head2 new Webmin::Button(cgi, label, [name])
=head2 new WebminUI::Button(cgi, label, [name])
Creates a button that when clicked will link to some other page
=cut
sub new
{
if (defined(&Webmin::Theme::Button::new) &&
caller() !~ /Webmin::Theme::Button/) {
return new Webmin::Theme::Button(@_[1..$#_]);
if (defined(&WebminUI::Theme::Button::new) &&
caller() !~ /WebminUI::Theme::Button/) {
return new WebminUI::Theme::Button(@_[1..$#_]);
}
my ($self, $cgi, $value, $name) = @_;
$self = { };

View File

@@ -1,15 +1,15 @@
package Webmin::Checkbox;
use Webmin::Input;
package WebminUI::Checkbox;
use WebminUI::Input;
use WebminCore;
@ISA = ( "Webmin::Input" );
@ISA = ( "WebminUI::Input" );
=head2 new Webmin::Checkbox(name, return, label, checked, [disabled])
=head2 new WebminUI::Checkbox(name, return, label, checked, [disabled])
Create a single checkbox field
=cut
sub new
{
if (defined(&Webmin::Theme::Checkbox::new)) {
return new Webmin::Theme::Checkbox(@_[1..$#_]);
if (defined(&WebminUI::Theme::Checkbox::new)) {
return new WebminUI::Theme::Checkbox(@_[1..$#_]);
}
my ($self, $name, $return, $label, $checked, $disabled) = @_;
$self = { };

View File

@@ -1,15 +1,15 @@
package Webmin::Checkboxes;
use Webmin::Input;
package WebminUI::Checkboxes;
use WebminUI::Input;
use WebminCore;
@ISA = ( "Webmin::Input" );
@ISA = ( "WebminUI::Input" );
=head2 new Webmin::Checkboxes(name, value|&values, &options, [disabled])
=head2 new WebminUI::Checkboxes(name, value|&values, &options, [disabled])
Create a list of checkboxes, of which zero or more may be selected
=cut
sub new
{
if (defined(&Webmin::Theme::Checkboxes::new)) {
return new Webmin::Theme::Checkboxes(@_[1..$#_]);
if (defined(&WebminUI::Theme::Checkboxes::new)) {
return new WebminUI::Theme::Checkboxes(@_[1..$#_]);
}
my ($self, $name, $value, $options, $disabled) = @_;
$self = { };

View File

@@ -1,14 +1,14 @@
package Webmin::Columns;
package WebminUI::Columns;
use WebminCore;
=head2 new Webmin::Columns(cols)
=head2 new WebminUI::Columns(cols)
Displays some page elements in a multi-column table
=cut
sub new
{
my ($self, $cols) = @_;
if (defined(&Webmin::Theme::Columns::new)) {
return new Webmin::Theme::Columns(@_[1..$#_]);
if (defined(&WebminUI::Theme::Columns::new)) {
return new WebminUI::Theme::Columns(@_[1..$#_]);
}
$self = { 'columns' => 2 };
bless($self);
@@ -43,7 +43,7 @@ return $rv;
}
=head2 add(object)
Adds some Webmin:: object to this list
Adds some WebminUI:: object to this list
=cut
sub add
{
@@ -66,7 +66,7 @@ my ($self) = @_;
return $self->{'columns'};
}
=head2 set_page(Webmin::Page)
=head2 set_page(WebminUI::Page)
Called when this menu is added to a page
=cut
sub set_page

View File

@@ -1,23 +1,23 @@
package Webmin::ConfirmPage;
use Webmin::Page;
package WebminUI::ConfirmPage;
use WebminUI::Page;
use WebminCore;
@ISA = ( "Webmin::Page" );
@ISA = ( "WebminUI::Page" );
=head2 new Webmin::ConfirmPage(subheading, title, message, cgi, &in, [ok-message],
=head2 new WebminUI::ConfirmPage(subheading, title, message, cgi, &in, [ok-message],
[cancel-message], [help-name])
Create a new page object that asks if the user is sure if he wants to
do something or not.
=cut
sub new
{
if (defined(&Webmin::Theme::ConfirmPage::new)) {
return new Webmin::Theme::ConfirmPage(@_[1..$#_]);
if (defined(&WebminUI::Theme::ConfirmPage::new)) {
return new WebminUI::Theme::ConfirmPage(@_[1..$#_]);
}
my ($self, $subheading, $title, $message, $cgi, $in, $ok, $cancel, $help) = @_;
$self = new Webmin::Page($subheading, $title, $help);
$self = new WebminUI::Page($subheading, $title, $help);
$self->{'in'} = $in;
$self->add_message($message);
my $form = new Webmin::Form($cgi, "get");
my $form = new WebminUI::Form($cgi, "get");
$form->set_input($in);
$self->add_form($form);
foreach my $i (keys %$in) {
@@ -25,8 +25,8 @@ foreach my $i (keys %$in) {
$form->add_hidden($i, $v);
}
}
$form->add_button(new Webmin::Submit($ok || "OK", "ui_confirm"));
$form->add_button(new Webmin::Submit($cancel || $text{'cancel'}, "ui_cancel"));
$form->add_button(new WebminUI::Submit($ok || "OK", "ui_confirm"));
$form->add_button(new WebminUI::Submit($cancel || $text{'cancel'}, "ui_cancel"));
bless($self);
return $self;
}

View File

@@ -1,16 +1,16 @@
package Webmin::Date;
use Webmin::Input;
package WebminUI::Date;
use WebminUI::Input;
use Time::Local;
use WebminCore;
@ISA = ( "Webmin::Input" );
@ISA = ( "WebminUI::Input" );
=head2 new Webmin::Date(name, time, [disabled])
=head2 new WebminUI::Date(name, time, [disabled])
Create a new field for selecting a date
=cut
sub new
{
if (defined(&Webmin::Theme::Date::new)) {
return new Webmin::Theme::Date(@_[1..$#_]);
if (defined(&WebminUI::Theme::Date::new)) {
return new WebminUI::Theme::Date(@_[1..$#_]);
}
my ($self, $name, $value, $disabled) = @_;
bless($self = { });

View File

@@ -1,7 +1,7 @@
package Webmin::DynamicBar;
package WebminUI::DynamicBar;
use WebminCore;
=head2 new Webmin::DynamicBar(&start-function, max)
=head2 new WebminUI::DynamicBar(&start-function, max)
A page element for displaying progress towards some goal, like the download of
a file.
=cut
@@ -91,7 +91,7 @@ my ($self) = @_;
return $self->{'wait'};
}
=head2 set_page(Webmin::Page)
=head2 set_page(WebminUI::Page)
Called when this dynamic text box is added to a page
=cut
sub set_page

View File

@@ -1,7 +1,7 @@
package Webmin::DynamicHTML;
package WebminUI::DynamicHTML;
use WebminCore;
=head2 new Webmin::DynamicHTML(&function, &args, [before])
=head2 new WebminUI::DynamicHTML(&function, &args, [before])
When the page is being rendered, executes the given function and prints any
text that it returns.
=cut
@@ -63,7 +63,7 @@ sub needs_unbuffered
return 1;
}
=head2 set_page(Webmin::Page)
=head2 set_page(WebminUI::Page)
Called when this dynamic HTML element is added to a page
=cut
sub set_page

View File

@@ -1,8 +1,8 @@
# XXX should support non-Javascript mode?
package Webmin::DynamicText;
package WebminUI::DynamicText;
use WebminCore;
=head2 new Webmin::DynamicText(&start-function, &args)
=head2 new WebminUI::DynamicText(&start-function, &args)
A page element for displaying text that takes time to generate, such as from
a long-running script. Uses a non-editable text box, updated via Javascript.
The function will be called when it is time to start producing output, with this
@@ -90,7 +90,7 @@ my ($self) = @_;
return $self->{'wait'};
}
=head2 set_page(Webmin::Page)
=head2 set_page(WebminUI::Page)
Called when this dynamic text box is added to a page
=cut
sub set_page

View File

@@ -1,7 +1,7 @@
package Webmin::DynamicWait;
package WebminUI::DynamicWait;
use WebminCore;
=head2 new Webmin::DynamicWait(&start-function, [&args])
=head2 new WebminUI::DynamicWait(&start-function, [&args])
A page element indicating that something is happening.
=cut
sub new
@@ -99,7 +99,7 @@ my ($self) = @_;
return $self->{'wait'};
}
=head2 set_page(Webmin::Page)
=head2 set_page(WebminUI::Page)
Called when this dynamic text box is added to a page
=cut
sub set_page

View File

@@ -1,16 +1,16 @@
package Webmin::ErrorPage;
package WebminUI::ErrorPage;
use WebminCore;
=head2 new Webmin::ErrorPage(subheading, title, message, [program-output], [help-name])
=head2 new WebminUI::ErrorPage(subheading, title, message, [program-output], [help-name])
Create a new page object for showing an error of some kind
=cut
sub new
{
if (defined(&Webmin::Theme::ErrorPage::new)) {
return new Webmin::Theme::ErrorPage(@_[1..$#_]);
if (defined(&WebminUI::Theme::ErrorPage::new)) {
return new WebminUI::Theme::ErrorPage(@_[1..$#_]);
}
my ($self, $subheading, $title, $message, $output, $help) = @_;
$self = new Webmin::Page($subheading, $title, $help);
$self = new WebminUI::Page($subheading, $title, $help);
$self->add_message("<b>",$text{'error'}," : ",$message,"</b>");
$self->add_message("<pre>",$output,"</pre>");
return $self;

View File

@@ -1,18 +1,18 @@
package Webmin::File;
use Webmin::Textbox;
package WebminUI::File;
use WebminUI::Textbox;
use WebminCore;
@ISA = ( "Webmin::Textbox" );
@ISA = ( "WebminUI::Textbox" );
=head2 new Webmin::File(name, value, size, [directory], [disabled])
=head2 new WebminUI::File(name, value, size, [directory], [disabled])
A text box for selecting a file
=cut
sub new
{
if (defined(&Webmin::Theme::File::new)) {
return new Webmin::Theme::File(@_[1..$#_]);
if (defined(&WebminUI::Theme::File::new)) {
return new WebminUI::Theme::File(@_[1..$#_]);
}
my ($self, $name, $value, $size, $directory, $disabled) = @_;
$self = new Webmin::Textbox($name, $value, $size, $disabled);
$self = new WebminUI::Textbox($name, $value, $size, $disabled);
bless($self);
$self->set_directory($directory);
return $self;
@@ -24,7 +24,7 @@ Returns the HTML for this file input
sub html
{
my ($self) = @_;
my $rv = Webmin::Textbox::html($self);
my $rv = WebminUI::Textbox::html($self);
my $name = $self->get_name();
my $directory = $self->get_directory();
my $add = 0;

View File

@@ -1,13 +1,13 @@
package Webmin::Form;
package WebminUI::Form;
use WebminCore;
=head2 new Webmin::Form(cgi, [method])
=head2 new WebminUI::Form(cgi, [method])
Creates a new form, which submits to the given CGI
=cut
sub new
{
if (defined(&Webmin::Theme::Form::new)) {
return new Webmin::Theme::Form(@_[1..$#_]);
if (defined(&WebminUI::Theme::Form::new)) {
return new WebminUI::Theme::Form(@_[1..$#_]);
}
my ($self, $program, $method) = @_;
$self = { 'method' => 'get',
@@ -102,7 +102,7 @@ return "<form action='$self->{'program'}' ".
}
=head2 add_section(section)
Adds a Webmin::Section object to this form
Adds a WebminUI::Section object to this form
=cut
sub add_section
{
@@ -120,7 +120,7 @@ return $self->{'sections'}->[$idx];
}
=head2 add_button(button, [beside, ...])
Adds a Webmin::Submit object to this form, for display at the bottom
Adds a WebminUI::Submit object to this form, for display at the bottom
=cut
sub add_button
{
@@ -312,7 +312,7 @@ foreach my $i ($self->list_inputs()) {
return @dis;
}
=head2 set_page(Webmin::Page)
=head2 set_page(WebminUI::Page)
Called when this form is added to a page
=cut
sub set_page

View File

@@ -1,18 +1,18 @@
package Webmin::Group;
use Webmin::Textbox;
package WebminUI::Group;
use WebminUI::Textbox;
use WebminCore;
@ISA = ( "Webmin::Textbox" );
@ISA = ( "WebminUI::Textbox" );
=head2 new Webmin::Group(name, value, [multiple], [disabled])
=head2 new WebminUI::Group(name, value, [multiple], [disabled])
A text box for entering or selecting one or many Unix groupnames
=cut
sub new
{
if (defined(&Webmin::Theme::Group::new)) {
return new Webmin::Theme::Group(@_[1..$#_]);
if (defined(&WebminUI::Theme::Group::new)) {
return new WebminUI::Theme::Group(@_[1..$#_]);
}
my ($self, $name, $value, $multiple, $disabled) = @_;
$self = new Webmin::Textbox($name, $value, $multiple ? 40 : 15, $disabled);
$self = new WebminUI::Textbox($name, $value, $multiple ? 40 : 15, $disabled);
bless($self);
$self->set_multiple($multiple);
return $self;
@@ -24,7 +24,7 @@ Returns the HTML for this group input
sub html
{
my ($self) = @_;
my $rv = Webmin::Textbox::html($self);
my $rv = WebminUI::Textbox::html($self);
my $name = $self->get_name();
my $multiple = $self->get_multiple();
local $w = $multiple ? 500 : 300;

View File

@@ -1,7 +1,7 @@
package Webmin::Icon;
package WebminUI::Icon;
use WebminCore;
=head2 Webmin::Icon(type, [message])
=head2 WebminUI::Icon(type, [message])
This object generates an icon indicating some status. Possible types are :
ok - OK
critial - A serious problem
@@ -11,8 +11,8 @@ Can be used inside tables and property lists
=cut
sub new
{
if (defined(&Webmin::Theme::Icon::new) && caller() !~ /Webmin::Theme::Icon/) {
return new Webmin::Theme::Icon(@_[1..$#_]);
if (defined(&WebminUI::Theme::Icon::new) && caller() !~ /WebminUI::Theme::Icon/) {
return new WebminUI::Theme::Icon(@_[1..$#_]);
}
my ($self, $type, $message) = @_;
$self = { };

View File

@@ -1,4 +1,4 @@
package Webmin::Input;
package WebminUI::Input;
use WebminCore;
sub set_form

View File

@@ -1,19 +1,19 @@
package Webmin::InputTable;
use Webmin::Table;
package WebminUI::InputTable;
use WebminUI::Table;
use WebminCore;
@ISA = ( "Webmin::Table" );
@ISA = ( "WebminUI::Table" );
=head2 new Webmin::InputTable(&headings, [width], [name], [heading])
=head2 new WebminUI::InputTable(&headings, [width], [name], [heading])
A table containing multiple rows of inputs, each of which is the same
=cut
sub new
{
if (defined(&Webmin::Theme::InputTable::new) &&
caller() !~ /Webmin::Theme::InputTable/) {
return new Webmin::Theme::InputTable(@_[1..$#_]);
if (defined(&WebminUI::Theme::InputTable::new) &&
caller() !~ /WebminUI::Theme::InputTable/) {
return new WebminUI::Theme::InputTable(@_[1..$#_]);
}
my $self = defined(&Webmin::Theme::Table::new) ? Webmin::Theme::Table::new(@_)
: Webmin::Table::new(@_);
my $self = defined(&WebminUI::Theme::Table::new) ? WebminUI::Theme::Table::new(@_)
: WebminUI::Table::new(@_);
bless($self);
$self->{'rowcount'} = 0;
return $self;
@@ -56,7 +56,7 @@ sub get_values
my ($self, $row) = @_;
my @rv;
foreach my $i (@{$self->{'rows'}->[$row]}) {
if (ref($i) && $i->isa("Webmin::Input")) {
if (ref($i) && $i->isa("WebminUI::Input")) {
push(@rv, $i->get_value());
}
}
@@ -68,10 +68,10 @@ return @rv;
sub list_inputs
{
my ($self) = @_;
my @rv = Webmin::Table::list_inputs($self);
my @rv = WebminUI::Table::list_inputs($self);
foreach my $r (@{$self->{'rows'}}) {
foreach my $i (@$r) {
if ($i && ref($i) && $i->isa("Webmin::Input")) {
if ($i && ref($i) && $i->isa("WebminUI::Input")) {
push(@rv, $i);
}
}
@@ -111,7 +111,7 @@ foreach my $r (@{$self->{'rows'}}) {
}
}
foreach my $i (@$r) {
if ($i && ref($i) && $i->isa("Webmin::Input") && !$skip) {
if ($i && ref($i) && $i->isa("WebminUI::Input") && !$skip) {
my $label = &text('ui_rowlabel', $k, $self->{'headings'}->[$j]);
foreach my $e ($i->validate()) {
push(@errs, [ $i->get_name(), $label." ".$e ]);

View File

@@ -1,16 +1,16 @@
package Webmin::JavascriptButton;
use Webmin::Input;
package WebminUI::JavascriptButton;
use WebminUI::Input;
use WebminCore;
@ISA = ( "Webmin::Input" );
@ISA = ( "WebminUI::Input" );
=head2 new Webmin::JavascriptButton(label, script, [disabled])
=head2 new WebminUI::JavascriptButton(label, script, [disabled])
Create a button that runs some Javascript when clicked
=cut
sub new
{
if (defined(&Webmin::Theme::JavascriptButton::new) &&
caller() !~ /Webmin::Theme::JavascriptButton/) {
return new Webmin::Theme::JavascriptButton(@_[1..$#_]);
if (defined(&WebminUI::Theme::JavascriptButton::new) &&
caller() !~ /WebminUI::Theme::JavascriptButton/) {
return new WebminUI::Theme::JavascriptButton(@_[1..$#_]);
}
my ($self, $value, $script, $disabled) = @_;
$self = { };

View File

@@ -1,18 +1,18 @@
package Webmin::LinkTable;
use Webmin::Table;
package WebminUI::LinkTable;
use WebminUI::Table;
use WebminCore;
=head2 new Webmin::LinkTable(heading, [columns], [width], [name])
=head2 new WebminUI::LinkTable(heading, [columns], [width], [name])
Creates a new table that just displays links, like in the Users and Groups module
=cut
sub new
{
if (defined(&Webmin::Theme::LinkTable::new) &&
caller() !~ /Webmin::Theme::LinkTable/) {
return new Webmin::Theme::LinkTable(@_[1..$#_]);
if (defined(&WebminUI::Theme::LinkTable::new) &&
caller() !~ /WebminUI::Theme::LinkTable/) {
return new WebminUI::Theme::LinkTable(@_[1..$#_]);
}
my ($self, $heading, $columns, $width, $name) = @_;
$self = { 'sorter' => \&Webmin::Table::default_sorter,
$self = { 'sorter' => \&WebminUI::Table::default_sorter,
'columns' => 4,
'sortable' => 1 };
bless($self);
@@ -245,7 +245,7 @@ return $self->{'columns'};
}
=head2 set_form(form)
Called by the Webmin::Form object when this table is added to it
Called by the WebminUI::Form object when this table is added to it
=cut
sub set_form
{
@@ -257,7 +257,7 @@ if ($self->{'selectinput'}) {
}
=head2 set_selector(input)
Takes a Webmin::Checkboxes or Webmin::Radios object, and uses it to add checkboxes
Takes a WebminUI::Checkboxes or WebminUI::Radios object, and uses it to add checkboxes
to all the entries
=cut
sub set_selector

View File

@@ -1,14 +1,14 @@
package Webmin::Menu;
package WebminUI::Menu;
use WebminCore;
=head2 new Webmin::Menu(&options, [columns])
=head2 new WebminUI::Menu(&options, [columns])
Generates a menu of options, typically using icons.
=cut
sub new
{
my ($self, $options, $columns) = @_;
if (defined(&Webmin::Theme::Menu::new)) {
return new Webmin::Theme::Menu(@_[1..$#_]);
if (defined(&WebminUI::Theme::Menu::new)) {
return new WebminUI::Theme::Menu(@_[1..$#_]);
}
$self = { 'columns' => 4 };
bless($self);
@@ -73,7 +73,7 @@ my ($self) = @_;
return $self->{'columns'};
}
=head2 set_page(Webmin::Page)
=head2 set_page(WebminUI::Page)
Called when this menu is added to a page
=cut
sub set_page

View File

@@ -1,19 +1,19 @@
package Webmin::Multiline;
use Webmin::Textarea;
package WebminUI::Multiline;
use WebminUI::Textarea;
use WebminCore;
@ISA = ( "Webmin::Textarea" );
@ISA = ( "WebminUI::Textarea" );
=head2 new Webmin::Multiline(name, &lines, rows, cols, [disabled])
=head2 new WebminUI::Multiline(name, &lines, rows, cols, [disabled])
Create a new input for entering multiple text entries. By default, just uses
a textbox
=cut
sub new
{
if (defined(&Webmin::Theme::Multiline::new)) {
return new Webmin::Theme::Multiline(@_[1..$#_]);
if (defined(&WebminUI::Theme::Multiline::new)) {
return new WebminUI::Theme::Multiline(@_[1..$#_]);
}
my ($self, $name, $lines, $rows, $cols, $wrap, $disabled) = @_;
$self = new Webmin::Textarea($name, join("\n", @$lines), $rows, $cols, undef, $disabled);
$self = new WebminUI::Textarea($name, join("\n", @$lines), $rows, $cols, undef, $disabled);
bless($self);
return $self;
}

View File

@@ -1,18 +1,18 @@
package Webmin::OptTextarea;
use Webmin::Textarea;
package WebminUI::OptTextarea;
use WebminUI::Textarea;
use WebminCore;
@ISA = ( "Webmin::Textarea" );
@ISA = ( "WebminUI::Textarea" );
=head2 new Webmin::OptTextarea(name, value, rows, cols, [default-msg], [other-msg])
=head2 new WebminUI::OptTextarea(name, value, rows, cols, [default-msg], [other-msg])
Create a text area whose value is optional.
=cut
sub new
{
if (defined(&Webmin::Theme::OptTextarea::new)) {
return new Webmin::Theme::OptTextarea(@_[1..$#_]);
if (defined(&WebminUI::Theme::OptTextarea::new)) {
return new WebminUI::Theme::OptTextarea(@_[1..$#_]);
}
my ($self, $name, $value, $rows, $cols, $default, $other) = @_;
$self = new Webmin::Textarea($name, $value, $rows, $cols);
$self = new WebminUI::Textarea($name, $value, $rows, $cols);
bless($self);
$self->set_default($default || $text{'default'});
$self->set_other($other) if ($other);
@@ -57,7 +57,7 @@ if (defined($self->get_value())) {
if ($self->get_value() eq "") {
return ( $text{'ui_nothing'} );
}
return Webmin::Textbox::validate($self);
return WebminUI::Textbox::validate($self);
}
return ( );
}

View File

@@ -1,18 +1,18 @@
package Webmin::OptTextbox;
use Webmin::Textbox;
package WebminUI::OptTextbox;
use WebminUI::Textbox;
use WebminCore;
@ISA = ( "Webmin::Textbox" );
@ISA = ( "WebminUI::Textbox" );
=head2 new Webmin::OptTextbox(name, value, size, [default-msg], [other-msg])
=head2 new WebminUI::OptTextbox(name, value, size, [default-msg], [other-msg])
Create a text field whose value is optional.
=cut
sub new
{
if (defined(&Webmin::Theme::OptTextbox::new)) {
return new Webmin::Theme::OptTextbox(@_[1..$#_]);
if (defined(&WebminUI::Theme::OptTextbox::new)) {
return new WebminUI::Theme::OptTextbox(@_[1..$#_]);
}
my ($self, $name, $value, $size, $default, $other) = @_;
$self = new Webmin::Textbox($name, $value, $size);
$self = new WebminUI::Textbox($name, $value, $size);
bless($self);
$self->set_default($default || $text{'default'});
$self->set_other($other) if ($other);
@@ -39,7 +39,7 @@ if (defined($self->get_value())) {
if ($self->get_value() eq "") {
return ( $text{'ui_nothing'} );
}
return Webmin::Textbox::validate($self);
return WebminUI::Textbox::validate($self);
}
return ( );
}

View File

@@ -1,16 +1,16 @@
package Webmin::Page;
package WebminUI::Page;
use WebminCore;
use WebminCore;
=head2 new Webmin::Page(subheading, title, [help-name], [show-config],
=head2 new WebminUI::Page(subheading, title, [help-name], [show-config],
[no-module-index], [no-webmin-index], [rightside],
[header], [body-tags], [below-text])
Create a new page object, with the given heading and other details
=cut
sub new
{
if (defined(&Webmin::Theme::Page::new) && caller() !~ /Webmin::Theme::Page/) {
return new Webmin::Theme::Page(@_[1..$#_]);
if (defined(&WebminUI::Theme::Page::new) && caller() !~ /WebminUI::Theme::Page/) {
return new WebminUI::Theme::Page(@_[1..$#_]);
}
my ($self, $subheading, $title, $help, $config, $noindex, $nowebmin, $right,
$header, $body, $below) = @_;
@@ -216,7 +216,7 @@ print STDERR "Could not find $object in ",join(" ",@{$self->{'contents'}}),"\n";
return scalar(@{$self->{'contents'}});
}
=head2 add_form(Webmin::Form)
=head2 add_form(WebminUI::Form)
Adds a form to be displayed on this page
=cut
sub add_form
@@ -246,7 +246,7 @@ push(@{$self->{'buttons'}}, [ $cgi, $label, $desc, join(" ", @$hiddens),
$before, $after ]);
}
=head2 add_tabs(Webmin::Tags)
=head2 add_tabs(WebminUI::Tags)
Tells the page to display the given set of tabs at the top
=cut
sub add_tabs
@@ -255,7 +255,7 @@ my ($self, $tabs) = @_;
$self->{'tabs'} = $tabs;
}
=head2 add_dynamic(Webmin::DynamicText|Webmin::DynamicProgress)
=head2 add_dynamic(WebminUI::DynamicText|WebminUI::DynamicProgress)
Adds an object that is dynamically generated, such as a text box or progress bar.
=cut
sub add_dynamic

View File

@@ -1,18 +1,18 @@
package Webmin::Password;
@ISA = ( "Webmin::Textbox" );
use Webmin::Textbox;
package WebminUI::Password;
@ISA = ( "WebminUI::Textbox" );
use WebminUI::Textbox;
use WebminCore;
=head2 new Webmin::Password(name, value, [size])
=head2 new WebminUI::Password(name, value, [size])
Create a new text input field, for a password
=cut
sub new
{
if (defined(&Webmin::Theme::Password::new)) {
return new Webmin::Theme::Password(@_[1..$#_]);
if (defined(&WebminUI::Theme::Password::new)) {
return new WebminUI::Theme::Password(@_[1..$#_]);
}
my ($self, $name, $value, $size) = @_;
$self = new Webmin::Textbox($name, $value, $size);
$self = new WebminUI::Textbox($name, $value, $size);
bless($self);
return $self;
}

View File

@@ -1,14 +1,14 @@
package Webmin::PlainText;
package WebminUI::PlainText;
use WebminCore;
=head2 new Webmin::PlainText(text, columns)
=head2 new WebminUI::PlainText(text, columns)
Displays a block of plain fixed-width text, within a page or form.
=cut
sub new
{
if (defined(&Webmin::Theme::PlainText::new) &&
caller() !~ /Webmin::Theme::PlainText/) {
return new Webmin::Theme::PlainText(@_[1..$#_]);
if (defined(&WebminUI::Theme::PlainText::new) &&
caller() !~ /WebminUI::Theme::PlainText/) {
return new WebminUI::Theme::PlainText(@_[1..$#_]);
}
my ($self, $text, $columns) = @_;
$self = { 'columns' => 80 };
@@ -84,7 +84,7 @@ foreach $rest (split(/\n/, $_[0])) {
return @rv;
}
=head2 set_page(Webmin::Page)
=head2 set_page(WebminUI::Page)
Called when this form is added to a page
=cut
sub set_page

View File

@@ -1,14 +1,14 @@
package Webmin::Properties;
package WebminUI::Properties;
use WebminCore;
=head2 new Webmin::Properties([heading], [columns], [width])
=head2 new WebminUI::Properties([heading], [columns], [width])
Creates a read-only properties list
=cut
sub new
{
if (defined(&Webmin::Theme::Properties::new) &&
caller() !~ /Webmin::Theme::Properties/) {
return new Webmin::Theme::Properties(@_[1..$#_]);
if (defined(&WebminUI::Theme::Properties::new) &&
caller() !~ /WebminUI::Theme::Properties/) {
return new WebminUI::Theme::Properties(@_[1..$#_]);
}
my ($self, $heading, $columns, $width) = @_;
$self = { 'columns' => 2 };
@@ -119,7 +119,7 @@ return $self->{'heading'};
}
=head2 set_page(Webmin::Page)
=head2 set_page(WebminUI::Page)
Called when this form is added to a page
=cut
sub set_page

View File

@@ -1,15 +1,15 @@
package Webmin::Radios;
use Webmin::Input;
package WebminUI::Radios;
use WebminUI::Input;
use WebminCore;
@ISA = ( "Webmin::Input" );
@ISA = ( "WebminUI::Input" );
=head2 new Webmin::Radios(name, value, &options, [disabled])
=head2 new WebminUI::Radios(name, value, &options, [disabled])
Create a list of radio buttons, of which one may be selected
=cut
sub new
{
if (defined(&Webmin::Theme::Radios::new)) {
return new Webmin::Theme::Radios(@_[1..$#_]);
if (defined(&WebminUI::Theme::Radios::new)) {
return new WebminUI::Theme::Radios(@_[1..$#_]);
}
my ($self, $name, $value, $options, $disabled) = @_;
$self = { };

20
WebminUI/ResultPage.pm Normal file
View File

@@ -0,0 +1,20 @@
package WebminUI::ResultPage;
use WebminCore;
=head2 new WebminUI::ResultPage(subheading, title, message, [help-name])
Create a new page object for showing some success message.
=cut
sub new
{
if (defined(&WebminUI::Theme::ResultPage::new) &&
caller() !~ /WebminUI::Theme::ResultPage/) {
return new WebminUI::Theme::ResultPage(@_[1..$#_]);
}
my ($self, $subheading, $title, $message, $help) = @_;
$self = new WebminUI::Page($subheading, $title, $help);
$self->add_message("<b>$message</b>");
return $self;
}
1;

View File

@@ -1,14 +1,14 @@
package Webmin::Section;
package WebminUI::Section;
use WebminCore;
=head2 new Webmin::Section(header, [columns], [title], [width])
=head2 new WebminUI::Section(header, [columns], [title], [width])
Create a new form section, which has a header and contains some inputs
=cut
sub new
{
if (defined(&Webmin::Theme::Section::new) &&
caller() !~ /Webmin::Theme::Section/) {
return new Webmin::Theme::Section(@_[1..$#_]);
if (defined(&WebminUI::Theme::Section::new) &&
caller() !~ /WebminUI::Theme::Section/) {
return new WebminUI::Theme::Section(@_[1..$#_]);
}
my ($self, $header, $columns, $title, $width) = @_;
$self = { 'columns' => 4 };
@@ -52,7 +52,7 @@ return $rv;
}
=head2 add_input(label, input, [columns])
Adds some Webmin::Input object to this form section
Adds some WebminUI::Input object to this form section
=cut
sub add_input
{
@@ -140,7 +140,7 @@ return undef;
}
=head2 set_form(form)
Called by the Webmin::Form object when this section is added to it
Called by the WebminUI::Form object when this section is added to it
=cut
sub set_form
{
@@ -165,7 +165,7 @@ sub is_input
{
my ($object) = @_;
return ref($object) && ref($object) =~ /::/ &&
$object->isa("Webmin::Input");
$object->isa("WebminUI::Input");
}
1;

View File

@@ -1,16 +1,16 @@
package Webmin::Select;
use Webmin::Input;
package WebminUI::Select;
use WebminUI::Input;
use WebminCore;
@ISA = ( "Webmin::Input" );
@ISA = ( "WebminUI::Input" );
=head2 new Webmin::Select(name, value|&values, &options, [multiple-size],
=head2 new WebminUI::Select(name, value|&values, &options, [multiple-size],
[add-missing], [disabled])
Create a menu or multiple-selection field
=cut
sub new
{
if (defined(&Webmin::Theme::Select::new)) {
return new Webmin::Theme::Select(@_[1..$#_]);
if (defined(&WebminUI::Theme::Select::new)) {
return new WebminUI::Theme::Select(@_[1..$#_]);
}
my ($self, $name, $value, $options, $size, $missing, $disabled) = @_;
$self = { 'size' => 1 };

View File

@@ -1,16 +1,16 @@
package Webmin::Submit;
use Webmin::Input;
package WebminUI::Submit;
use WebminUI::Input;
use WebminCore;
@ISA = ( "Webmin::Input" );
@ISA = ( "WebminUI::Input" );
=head2 new Webmin::Submit(label, [name], [disabled])
=head2 new WebminUI::Submit(label, [name], [disabled])
Create a form submit button
=cut
sub new
{
if (defined(&Webmin::Theme::Submit::new) &&
caller() !~ /Webmin::Theme::Submit/) {
return new Webmin::Theme::Submit(@_[1..$#_]);
if (defined(&WebminUI::Theme::Submit::new) &&
caller() !~ /WebminUI::Theme::Submit/) {
return new WebminUI::Theme::Submit(@_[1..$#_]);
}
my ($self, $value, $name, $disabled) = @_;
$self = { };

View File

@@ -1,15 +1,15 @@
package Webmin::Table;
use Webmin::JavascriptButton;
package WebminUI::Table;
use WebminUI::JavascriptButton;
use WebminCore;
=head2 new Webmin::Table(&headings, [width], [name], [heading])
=head2 new WebminUI::Table(&headings, [width], [name], [heading])
Create a multi-column table, with support for sorting, paging and so on
=cut
sub new
{
if (defined(&Webmin::Theme::Table::new) &&
caller() !~ /Webmin::Theme::Table/) {
return new Webmin::Theme::Table(@_[1..$#_]);
if (defined(&WebminUI::Theme::Table::new) &&
caller() !~ /WebminUI::Theme::Table/) {
return new WebminUI::Theme::Table(@_[1..$#_]);
}
my ($self, $headings, $width, $name, $heading) = @_;
$self = { 'sorter' => [ map { \&default_sorter } @$headings ] };
@@ -59,12 +59,12 @@ if (defined($sm) && @srows > $sm) {
$rv .= $self->get_searchmsg()."<br>\n";
}
my $form = new Webmin::Form($thisurl, "get");
my $form = new WebminUI::Form($thisurl, "get");
$form->set_input($self->{'form'}->{'in'});
my $section = new Webmin::Section(undef, 2);
my $section = new WebminUI::Section(undef, 2);
$form->add_section($section);
my $col = new Webmin::Select("ui_searchcol_".$name, undef);
my $col = new WebminUI::Select("ui_searchcol_".$name, undef);
my $i = 0;
foreach my $h (@{$self->get_headings()}) {
if ($self->{'sortable'}->[$i]) {
@@ -74,12 +74,12 @@ if (defined($sm) && @srows > $sm) {
}
$section->add_input($text{'ui_searchcol'}, $col);
my $for = new Webmin::Textbox("ui_searchfor_".$name, undef, 30);
my $for = new WebminUI::Textbox("ui_searchfor_".$name, undef, 30);
$section->add_input($text{'ui_searchfor'}, $for);
$rv .= $section->html();
my $url = $self->make_url(undef, undef, undef, undef, 1);
my $jsb = new Webmin::JavascriptButton($text{'ui_searchok'},
my $jsb = new WebminUI::JavascriptButton($text{'ui_searchok'},
"window.location = '$url'+'&'+'ui_searchfor_${name}'+'='+escape(form.ui_searchfor_${name}.value)+'&'+'ui_searchcol_${name}'+'='+escape(form.ui_searchcol_${name}.selectedIndex)");
$rv .= $jsb->html();
$rv .= "<br>\n";
@@ -252,7 +252,7 @@ if (@srows) {
for(my $i=0; $i<@$r || $i<@sheadings; $i++) {
if (ref($r->[$i]) eq "ARRAY") {
my $j = $r->[$i]->[0] &&
$r->[$i]->[0]->isa("Webmin::TableAction")
$r->[$i]->[0]->isa("WebminUI::TableAction")
? "&nbsp;|&nbsp;" : "&nbsp;";
$row[$i] = $selmap{$r,$i}.
join($j, map { ref($_) ? $_->html() : $_ }
@@ -278,7 +278,7 @@ return $rv;
}
=head2 set_form(form)
Called by the Webmin::Form object when this table is added to it
Called by the WebminUI::Form object when this table is added to it
=cut
sub set_form
{
@@ -309,7 +309,7 @@ else {
sub default_sorter
{
my ($value1, $value2, $col) = @_;
if (ref($value1) && $value1->isa("Webmin::TableAction")) {
if (ref($value1) && $value1->isa("WebminUI::TableAction")) {
$value1 = $value1->get_value();
$value2 = $value2->get_value();
}
@@ -432,7 +432,7 @@ return $self->{'headings'};
}
=head2 set_selector(column, input)
Takes a Webmin::Checkboxes or Webmin::Radios object, and uses it to add checkboxes
Takes a WebminUI::Checkboxes or WebminUI::Radios object, and uses it to add checkboxes
in the specified column.
=cut
sub set_selector

View File

@@ -1,15 +1,15 @@
package Webmin::TableAction;
package WebminUI::TableAction;
use WebminCore;
=head2 new Webmin::TableAction(cgi, label, &args, disabled)
=head2 new WebminUI::TableAction(cgi, label, &args, disabled)
An object of this class can be added to a table or properties object to create
a link or action button of some kind.
=cut
sub new
{
if (defined(&Webmin::Theme::TableAction::new) &&
caller() !~ /Webmin::Theme::TableAction/) {
return new Webmin::Theme::TableAction(@_[1..$#_]);
if (defined(&WebminUI::Theme::TableAction::new) &&
caller() !~ /WebminUI::Theme::TableAction/) {
return new WebminUI::Theme::TableAction(@_[1..$#_]);
}
my ($self, $cgi, $value, $args, $disabled) = @_;
$self = { };

View File

@@ -1,14 +1,14 @@
package Webmin::Tabs;
package WebminUI::Tabs;
use WebminCore;
=head2 new Webmin::Tabs([&tabs])
=head2 new WebminUI::Tabs([&tabs])
Displayed at the top of a page, to allow selection of various pages
=cut
sub new
{
my ($self, $tabs) = @_;
if (defined(&Webmin::Theme::Tabs::new)) {
return new Webmin::Theme::Tabs(@_[1..$#_]);
if (defined(&WebminUI::Theme::Tabs::new)) {
return new WebminUI::Theme::Tabs(@_[1..$#_]);
}
$self = { 'tabs' => [ ],
'tab' => 0 };

View File

@@ -1,15 +1,15 @@
package Webmin::Textarea;
use Webmin::Input;
package WebminUI::Textarea;
use WebminUI::Input;
use WebminCore;
@ISA = ( "Webmin::Input" );
@ISA = ( "WebminUI::Input" );
=head2 new Webmin::Textarea(name, value, rows, cols, [wrap], [disabled])
=head2 new WebminUI::Textarea(name, value, rows, cols, [wrap], [disabled])
Create a new text box, with the given size
=cut
sub new
{
if (defined(&Webmin::Theme::Textarea::new)) {
return new Webmin::Theme::Textarea(@_[1..$#_]);
if (defined(&WebminUI::Theme::Textarea::new)) {
return new WebminUI::Theme::Textarea(@_[1..$#_]);
}
my ($self, $name, $value, $rows, $cols, $wrap, $disabled) = @_;
$self = { };
@@ -113,7 +113,7 @@ Returns the value, without any \r characters
sub get_value
{
my ($self) = @_;
my $rv = Webmin::Input::get_value($self);
my $rv = WebminUI::Input::get_value($self);
$rv =~ s/\r//g;
return $rv;
}

View File

@@ -1,15 +1,15 @@
package Webmin::Textbox;
use Webmin::Input;
package WebminUI::Textbox;
use WebminUI::Input;
use WebminCore;
@ISA = ( "Webmin::Input" );
@ISA = ( "WebminUI::Input" );
=head2 new Webmin::Textbox(name, value, [size], [disabled])
=head2 new WebminUI::Textbox(name, value, [size], [disabled])
Create a new text input field
=cut
sub new
{
if (defined(&Webmin::Theme::Textbox::new)) {
return new Webmin::Theme::Textbox(@_[1..$#_]);
if (defined(&WebminUI::Theme::Textbox::new)) {
return new WebminUI::Theme::Textbox(@_[1..$#_]);
}
my ($self, $name, $value, $size, $disabled) = @_;
$self = { 'size' => 30 };

View File

@@ -1,16 +1,16 @@
package Webmin::Time;
use Webmin::Input;
package WebminUI::Time;
use WebminUI::Input;
use Time::Local;
use WebminCore;
@ISA = ( "Webmin::Input" );
@ISA = ( "WebminUI::Input" );
=head2 new Webmin::Time(name, time, [disabled])
=head2 new WebminUI::Time(name, time, [disabled])
Create a new field for selecting a time
=cut
sub new
{
if (defined(&Webmin::Theme::Time::new)) {
return new Webmin::Theme::Time(@_[1..$#_]);
if (defined(&WebminUI::Theme::Time::new)) {
return new WebminUI::Theme::Time(@_[1..$#_]);
}
my ($self, $name, $value, $disabled) = @_;
bless($self = { });

View File

@@ -1,14 +1,14 @@
package Webmin::TitleList;
package WebminUI::TitleList;
use WebminCore;
=head2 new Webmin::TitleList(title, &links, [alt-text])
=head2 new WebminUI::TitleList(title, &links, [alt-text])
Generates a title with a list of links under it
=cut
sub new
{
my ($self, $title, $links, $alt) = @_;
if (defined(&Webmin::Theme::TitleList::new)) {
return new Webmin::Theme::TitleList(@_[1..$#_]);
if (defined(&WebminUI::Theme::TitleList::new)) {
return new WebminUI::Theme::TitleList(@_[1..$#_]);
}
$self = { };
bless($self);
@@ -88,7 +88,7 @@ my ($self, $name, $link) = @_;
push(@{$self->{'links'}}, [ $name, $link ]);
}
=head2 set_page(Webmin::Page)
=head2 set_page(WebminUI::Page)
Called when this menu is added to a page
=cut
sub set_page

View File

@@ -1,15 +1,15 @@
package Webmin::Upload;
use Webmin::Input;
package WebminUI::Upload;
use WebminUI::Input;
use WebminCore;
@ISA = ( "Webmin::Input" );
@ISA = ( "WebminUI::Input" );
=head2 new Webmin::Upload(name, [size])
=head2 new WebminUI::Upload(name, [size])
Create a new file upload field
=cut
sub new
{
if (defined(&Webmin::Theme::Upload::new)) {
return new Webmin::Theme::Upload(@_[1..$#_]);
if (defined(&WebminUI::Theme::Upload::new)) {
return new WebminUI::Theme::Upload(@_[1..$#_]);
}
my ($self, $name, $size) = @_;
$self = { 'size' => 30 };

View File

@@ -1,18 +1,18 @@
package Webmin::User;
use Webmin::Textbox;
package WebminUI::User;
use WebminUI::Textbox;
use WebminCore;
@ISA = ( "Webmin::Textbox" );
@ISA = ( "WebminUI::Textbox" );
=head2 new Webmin::User(name, value, [multiple], [disabled])
=head2 new WebminUI::User(name, value, [multiple], [disabled])
A text box for entering or selecting one or many Unix usernames
=cut
sub new
{
if (defined(&Webmin::Theme::User::new)) {
return new Webmin::Theme::User(@_[1..$#_]);
if (defined(&WebminUI::Theme::User::new)) {
return new WebminUI::Theme::User(@_[1..$#_]);
}
my ($self, $name, $value, $multiple, $disabled) = @_;
$self = new Webmin::Textbox($name, $value, $multiple ? 40 : 15, $disabled);
$self = new WebminUI::Textbox($name, $value, $multiple ? 40 : 15, $disabled);
bless($self);
$self->set_multiple($multiple);
return $self;
@@ -24,7 +24,7 @@ Returns the HTML for this user input
sub html
{
my ($self) = @_;
my $rv = Webmin::Textbox::html($self);
my $rv = WebminUI::Textbox::html($self);
my $name = $self->get_name();
my $multiple = $self->get_multiple();
local $w = $multiple ? 500 : 300;

View File

@@ -822,8 +822,11 @@ foreach my $l (@acl) {
delete($gconfig{"lang_".$username});
delete($gconfig{"notabs_".$username});
delete($gconfig{"ownmods_".$username});
delete($gconfig{"rbacdeny_".$username});
delete($gconfig{"theme_".$username});
delete($gconfig{"overlay_".$username});
delete($gconfig{"readonly_".$username});
delete($gconfig{"realname_".$username});
&write_file("$config_directory/config", \%gconfig);
# Delete all module .acl files
@@ -2163,5 +2166,21 @@ elsif ($str =~ /^postgresql:/) {
}
}
# used_for_anonymous(username)
# Returns a list of modules this user has an anonymous grant to
sub used_for_anonymous
{
my ($user) = @_;
my @rv;
my %miniserv;
&get_miniserv_config(\%miniserv);
foreach $a (split(/\s+/, $miniserv{'anonymous'})) {
if ($a =~ /^([^=]+)=(\S+)$/ && $2 eq $user) {
push(@rv, $1);
}
}
return @rv;
}
1;

View File

@@ -10,6 +10,7 @@ our (%in, %text, %config, %access, $base_remote_user);
&error_setup($text{'delete_err'});
$access{'delete'} || &error($text{'delete_ecannot'});
&can_edit_user($in{'user'}) || &error($text{'delete_euser'});
&used_for_anonymous($in{'user'}) && &error($text{'delete_eanonuser'});
if ($base_remote_user eq $in{'user'}) {
&error($text{'delete_eself'});
}

View File

@@ -6,7 +6,7 @@ use warnings;
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user);
&ReadParse();
&error_setup($text{'udeletes_err'});
&error_setup($in{'joingroup'} ? $text{'udeletes_jerr'} : $text{'udeletes_err'});
$access{'delete'} || &error($text{'delete_ecannot'});
# Validate inputs
@@ -14,9 +14,10 @@ my @d = split(/\0/, $in{'d'});
@d || &error($text{'udeletes_enone'});
foreach my $user (@d) {
&can_edit_user($user) || &error($text{'delete_euser'});
if ($base_remote_user eq $user) {
if ($base_remote_user eq $user && !$in{'joingroup'}) {
&error($text{'delete_eself'});
}
&used_for_anonymous($user) && &error($text{'delete_eanonuser'});
my $uinfo = &get_user($user);
$uinfo->{'readonly'} && &error($text{'udeletes_ereadonly'});
}

View File

@@ -362,6 +362,7 @@ rbac_ecpan=No tens acc
rbac_ok=La integració amb RBAC està disponible en aquest sistema, i es pot activar en base a cada usuari a la pàgina d'Edició d'Usuaris Webmin.
udeletes_err=No s'han pogut suprimir els usuaris
udeletes_jerr=No s'han pogut afegir els usuaris al grup
udeletes_enone=No n'has seleccionat cap
udeletes_title=Supressió d'Usuaris
udeletes_rusure=Segur que vols suprimir els $1 usuaris seleccionats? Es perdran tots els seus detalls i totes les seves configuracions de control d'accés.

View File

@@ -100,6 +100,7 @@ cpass_notre=Entspricht einen nicht erlaubten Muster
cpass_old=Alte Kennw&#246;rter k&#246;nnen nicht wieder verwendet werden
cpass_re=Entspricht nicht einem erforderlichen Muster
cpass_spellcmd=Entweder der $1 oder $2 Befehl muss installiert sein um eine W&#246;rterbuchpr&#252;fung durchzuf&#252;hren
delete_eanonuser=Dieser Benutzer wird f&#252;r anonymen Modul-Zugriff verwendet
delete_ecannot=Sie haben keine Berechtigung Benutzer zu l&#246;schen
delete_err=Fehler beim L&#246;schen des Benutzers
delete_eself=Sie k&#246;nnen sich selber nicht l&#246;schen
@@ -270,6 +271,7 @@ log_switch=Gewechselt zu Benutzer $1
log_sync=&#196;ndere Unixbenutzer-Syncronisation
log_twofactor=Benutzer $1 mit 2-Faktor-Anbieter $2 angemeldet
log_unix=&#196;ndere Unixbenutzer-Authentifizierung
logins_title=Aktuelle Webmin-Logins
make_done=.. fertig
make_err=Fehlgeschlagen Benutzer- und Gruppentabellen zu erstellen
make_exec=Ausf&#252;hre SQL $1 ..
@@ -342,11 +344,17 @@ save_euser=Sie haben keine Berechtigung diesen Benutzer zu bearbeiten
schema_desc=Bevor Webmin ein LDAP-Server verwenden kann um Benutzer und Gruppen zu speichern, muss konfiguriert werden, das Schema unten zu verwenden. Dies kann in der Regel durch Speicherung der Schema-Definition in <tt>/etc/ldap/schema</tt> oder <tt>/etc/openldap/schema</tt> als <tt>webmin.schema</tt>, anschlie&#223;end kann die Konfiguration des Servers erfolgen, das Schema-Datei zu laden.
schema_download=Download Schema-Datei : <a href=$1>$1</a>
schema_title=Download LDAP-Schema
sessions_desc=Aktuell angemeldete Webmin-Sitzungen sind unten aufgelistet. Zum Abbrechen einer bestehenden Sitzung und um den Benutzer zu zwingen sich neu anzumelden, klicken Sie auf die Sitzungs-ID.
sessions_actions=Aktionen..
sessions_host=IP-Adresse
sessions_id=Sitzungs-ID
sessions_in=Eingeloggt
sessions_kill=Getrennt..
sessions_login=Angemeldet an
sessions_logouts=Zeige auch abgemeldete Sitzungen ..
sessions_lview=Zeige Aufzeichnungen..
sessions_out=Ausgeloggt
sessions_state=Status
sessions_this=Dieser Login
sessions_title=Aktuell angemeldete Sitzungen
sessions_user=Webminbenutzer
sql_addto0=Hinzuf&#252;gen neuer Benutzer zur Datenbank, wie oben ausgew&#228;hlt
@@ -421,6 +429,7 @@ twofactor_title=2-Faktor-Authentifizierung
udeletes_enone=Nichts ausgew&#228;hlt
udeletes_ereadonly=Einer der ausgew&#228;hlten Benutzer ist als nicht bearbeitbar markiert.
udeletes_err=Konnte Benutzer nicht l&#246;schen
udeletes_jerr=Fehler beim Nutzer zu Gruppe hinzuf&#252;gen
udeletes_ok=Benutzer l&#246;schen
udeletes_rusure=Sind Sie sicher, da&#223; Sie die $1 ausgew&#228;hlten Benutzer l&#246;schen m&#246;chten? S&#228;mtliche Benutzer- und zugeh&#246;rige Sicherheitseinstellungen gehen definitiv und nicht wiederherstellbar verloren.
udeletes_title=Benutzer l&#246;schen

View File

@@ -146,6 +146,7 @@ delete_err=Failed to delete user
delete_eself=You cannot delete yourself
delete_ecannot=You are not allowed to delete users
delete_euser=You are not allowed to delete this user
delete_eanonuser=This user is being used for anonymous module access
cert_title=Request Certificate
cert_issue=Issue Certificate
@@ -337,12 +338,20 @@ unix_header=Unix user authentication settings
unix_utable=Allowed Unix users
sessions_title=Current Login Sessions
sessions_desc=Current Webmin session logins are listed below. To cancel an existing session and force the user to login again, click on its session ID.
sessions_id=Session ID
sessions_user=Webmin user
sessions_login=Logged in at
sessions_host=IP address
sessions_lview=View logs..
sessions_actions=Actions..
sessions_logouts=Also show logged-out sessions..
sessions_state=State
sessions_this=This login
sessions_in=Logged in
sessions_out=Logged out
sessions_kill=Disconnect..
logins_title=Recent Webmin logins
hide_title=Hide Unused Modules
hide_desc=The following modules will be removed from the module access list for $1 as their corresponding servers are not installed on your system ..
@@ -362,6 +371,7 @@ rbac_ecpan=You do not have access to Webmin's Perl Modules page in order to inst
rbac_ok=RBAC integration is available on this system, and can be enabled on a per-user basis on the Edit Webmin User page.
udeletes_err=Failed to delete users
udeletes_jerr=Failed to add users to group
udeletes_enone=None selected
udeletes_title=Delete Users
udeletes_rusure=Are you sure you want to delete the $1 selected users? All of their access control settings and user details will be lost.

View File

@@ -100,6 +100,7 @@ cpass_notre=Matcher et
cpass_old=Gamle passord kan ikke brukes p&#229; nytt
cpass_re=Stemmer ikke med et p&#229;krevd m&#248;nster
cpass_spellcmd=Ingen av kommandoene $1 eller $2, som er n&#248;dvendige for &#229; sjekke ordiliste-ord, er installert
delete_eanonuser=Denne brukeren brukes til anonym modul tilgang
delete_ecannot=Du har ikke rettigheter til &#229; slette brukere
delete_err=Kunne ikke slette bruker
delete_eself=Du kan ikke slette deg selv
@@ -421,6 +422,7 @@ twofactor_title=To-faktor autentisering
udeletes_enone=Ingen valgt
udeletes_ereadonly=En av de valgte brukerne er merket som ikke-redigerbar
udeletes_err=Kunne ikke slette brukere
udeletes_jerr=Kunne ikke legg til brukere i gruppe
udeletes_ok=Slett brukere
udeletes_rusure=Er du sikker p&#229; at du &#248;nsker &#229; slette de $1 valgte brukerne? Alle deres tilgangskontroll innstillinger og andre brukerdetaljer vil g&#229; tapt.
udeletes_title=Slett brukere

View File

@@ -100,6 +100,7 @@ cpass_notre=Pasuje do niedozwolonego wzorca
cpass_old=Nie można używać starych haseł
cpass_re=Nie pasuje do wymaganego wzorca
cpass_spellcmd=Nie zainstalowano komend $1 lub $2 wymaganych do sprawdzania słów ze słownika
delete_eanonuser=Ten użytkownik jest wykorzystywany przy anonimowym dostępie do modułu
delete_ecannot=Nie masz zezwolenia na usuwanie użytkowników
delete_err=Nie udało się usunąć użytkownika
delete_eself=Nie możesz usunąć samego siebie
@@ -421,6 +422,7 @@ twofactor_title=Dwustopniowe uwierzytelnianie
udeletes_enone=Nie wybrane
udeletes_ereadonly=Jeden z wybranych użytkowników jest oznaczony jako nie-edytowalny
udeletes_err=Błąd usuwanie użytkowników
udeletes_jerr=Dodanie użytkowników do grupy nie powiodło się
udeletes_ok=Usuń użytkowników
udeletes_rusure=Czy jesteś pewny, że chcesz usunąć $1 wybranych użytkowników? Wszystkie ustawienia kontroli dostępu i szczegóły użytkowników zostaną utracone.
udeletes_title=Usuń użytkowników

View File

@@ -8,6 +8,7 @@ require './acl-lib.pl';
our (%in, %text, %config, %access, %sessiondb);
$access{'sessions'} || &error($text{'sessions_ecannot'});
&ui_print_header(undef, $text{'sessions_title'}, "");
&ReadParse();
my %miniserv;
&get_miniserv_config(\%miniserv);
@@ -21,27 +22,38 @@ foreach my $u (&list_users()) {
my $haslog = &foreign_available("webminlog");
print "<b>$text{'sessions_desc'}</b><p>\n";
print &ui_columns_start([ $text{'sessions_id'},
$text{'sessions_state'},
$text{'sessions_user'},
$text{'sessions_host'},
$haslog ? ( $text{'sessions_login'} ) : ( ),
"" ], 100);
$text{'sessions_login'},
$text{'sessions_actions'},
], 100);
foreach my $k (sort { my @a = split(/\s+/, $sessiondb{$a});
my @b = split(/\s+/, $sessiondb{$b}); $b[1] <=> $a[1] }
keys %sessiondb) {
next if ($k =~ /^1111111/);
my ($user, $ltime, $lip) = split(/\s+/, $sessiondb{$k});
next if ($user =~ /^\!/ && !$in{'logouts'});
next if ($miniserv{'logouttime'} &&
$time_now - $ltime > $miniserv{'logouttime'}*60);
my @cols;
my $candel = 0;
if ($k eq $main::session_id ||
$k eq &hash_session_id($main::session_id)) {
# Cannot self-terminate
push(@cols, "<b>$k</b>");
push(@cols, "<b><tt>$k</tt></b>");
push(@cols, $text{'sessions_this'});
}
elsif ($user =~ s/^\!//) {
# Already logged out
push(@cols, "<tt>$k</tt>");
push(@cols, $text{'sessions_out'});
}
else {
push(@cols, ui_link("delete_session.cgi?id=$k", $k));
push(@cols, "<tt>$k</tt>");
push(@cols, $text{'sessions_in'});
$candel = 1;
}
if ($hasuser{$user}) {
push(@cols, ui_link("edit_user.cgi?user=$user", $user));
@@ -54,12 +66,21 @@ foreach my $k (sort { my @a = split(/\s+/, $sessiondb{$a});
}
push(@cols, $lip);
push(@cols, &make_date($ltime));
my @links;
if ($haslog) {
push(@cols, ui_link("../webminlog/search.cgi?uall=1&mall=1&tall=1&wall=1&fall=1&sid=$k", $text{'sessions_lview'}));
push(@links, ui_link("../webminlog/search.cgi?uall=1&mall=1&tall=1&wall=1&fall=1&sid=$k", $text{'sessions_lview'}));
}
if ($candel) {
push(@links, ui_link("delete_session.cgi?id=$k", $text{'sessions_kill'}));
}
push(@cols, ui_links_row(\@links));
print &ui_columns_row(\@cols);
}
print &ui_columns_end();
if (!$in{'logouts'}) {
print &ui_link("list_sessions.cgi?logouts=1",
$text{'sessions_logouts'}),"<p>\n";
}
&ui_print_footer("", $text{'index_return'});

View File

@@ -40,3 +40,4 @@ longdesc_ms_MY=Cipta pengguna Webmin dan konfigurasikan modul dan ciri-ciri yang
desc_ms_MY=Pengguna Webmin
longdesc_de=Erstellt Webmin-Benutzer und konfiguriert, auf welche Module und Funktionen diese berechtigt sind, zugreifen.
longdesc_es=Crear usuarios de webmin y configurar a que modulos y caracteristicas pueden acceder.
longdesc_pl=Twórz u¿ytkowników Webmina i kontroluj, które modu³y i funkcje s± dla nich dostêpne.

View File

@@ -42,6 +42,8 @@ if ($in{'old'}) {
$old || &error($text{'edit_egone'});
$user{'proto'} = $old->{'proto'};
$user{'id'} = $old->{'id'};
$user{'twofactor_provider'} = $old->{'twofactor_provider'};
$user{'twofactor_id'} = $old->{'twofactor_id'};
}
else {
$access{'create'} || &error($text{'save_ecreate'});

61
acl/system_info.pl Normal file
View File

@@ -0,0 +1,61 @@
use strict;
use warnings;
our (%text, $remote_user, %sessiondb, $module_name);
do 'acl-lib.pl';
# list_system_info(&data, &in)
# Show recent logins
sub list_system_info
{
my ($data, $in) = @_;
my @rv;
my %miniserv;
&get_miniserv_config(\%miniserv);
&open_session_db(\%miniserv);
my @logins;
foreach my $k (keys %sessiondb) {
next if ($k =~ /^1111111/);
my ($user, $ltime, $lip) = split(/\s+/, $sessiondb{$k});
next if ($user ne $remote_user && $user ne "!".$remote_user);
push(@logins, [ $user, $ltime, $lip, $k ]);
}
if (@logins) {
@logins = sort { $b->[1] <=> $a->[1] } @logins;
if (@logins > 5) {
@logins = @logins[0..4];
}
my $html = &ui_columns_start([ $text{'sessions_host'},
$text{'sessions_login'},
$text{'sessions_state'} ]);
my $open = 0;
foreach my $l (@logins) {
my $state;
if ($l->[0] =~ /^\!/) {
$state = $text{'sessions_out'};
}
elsif ($l->[3] eq $main::session_id ||
$l->[3] eq &hash_session_id($main::session_id)) {
$state = "<font color=green>$text{'sessions_this'}</a>";
}
else {
$state = $text{'sessions_in'};
if ($l->[2] ne $ENV{'REMOTE_HOST'}) {
$open++;
$state = "<font color=orange>$state</font>";
}
}
$html .= &ui_columns_row([ $l->[2],
&make_date($l->[1]),
$state ]);
}
$html .= &ui_columns_end();
push(@rv, { 'type' => 'html',
'desc' => $text{'logins_title'},
'open' => $open,
'id' => $module_name.'_logins',
'priority' => -100,
'html' => $html });
}
return @rv;
}

View File

@@ -6,7 +6,7 @@ use WebminCore;
# Output HTML for editing global security options
sub acl_security_form
{
local $o = $_[0];
my ($o) = @_;
# Root directory for file browser
print &ui_table_row($text{'acl_root'},

View File

@@ -2,7 +2,7 @@ line2=Konfiguracja systemu,11
pppoe_conf=Plik konfiguracji PPPOE ADSL,0
conf_style=Format pliku konfiguracyjnego,1,0-Standardowa konfiguracja RP-PPPoE,1-Plik sieciowy Redhat
pap_file=Plik kont PPP,0
pppoe_cmd=Pełna ścieżka do komendy pppoe,0
start_cmd=Komenda do podniesienia połączenia ADSL,0
stop_cmd=Komenda do zamknięcia połączenia ADSL,0
status_cmd=Komenda do pobrania stanu połączenia ADSL,0
pppoe_cmd=Pełna ścieżka do polecenia pppoe,0
start_cmd=Polecenie do podniesienia połączenia ADSL,0
stop_cmd=Polecenie do zamknięcia połączenia ADSL,0
status_cmd=Polecenie do pobrania stanu połączenia ADSL,0

View File

@@ -0,0 +1,6 @@
<header>Hvor lenge tilkobling forsøkes</header>
Når ADSL klient programmet startes, vil det forsøke å koble til din ISP så
lenge som det er angitt i dette feltet. <p>
<hr>

View File

@@ -0,0 +1,8 @@
<header>Koble til ved behov?</header>
Når Nei er valgt, vil ADSL tilkobling kun startes når det eksplisitt bes om det.
Hvis Ja er valgt, vil tilkoblingen tas opp ved behov, og holdes oppe så lenge
det går trafikk. Tidsavbruddet bestemmer hvor lenge tilkoblingen kan være
inaktiv før den tas ned. <p>
<hr>

View File

@@ -24,3 +24,4 @@ desc_pl.UTF-8=Klient ADSL
desc_no=ADSL klient
longdesc_ms_MY=Sediakan klien PPP dengan pakej RP-PPPoE.
desc_ms_MY=Klien ADSL
longdesc_pl=Konfigurowanie klienta PPTP z pakietem RP-PPPoE.

Binary file not shown.

View File

@@ -8,3 +8,4 @@ desc_pl=Tryb tekstowy (konsola)
desc_hu=Shell hozzáférés (Ajaxterm)
desc_ms_MY=Log masuk Teks
longdesc_ms_MY=Akses shell pada sistem anda tanpa menggunakan klien SSH secara berasingan dengan menggunaka Ajaxterm
longdesc_pl=Dostêp do pow³oki systemowej bez konieczno¶ci u¿ywania oddzielnego klienta SSH, u¿ywaj±c Ajaxterm

View File

@@ -971,11 +971,15 @@ else { return ( [ $in{$_[0]} ] ); }
sub select_input
{
my($i, @sel);
my $selv;
for($i=3; $i<@_; $i++) {
$_[$i] =~ /^([^,]*),(.*)$/;
push(@sel, [$2, $1, (lc($2) eq lc($_[0]) || !defined($_[0]) && lc($2) eq lc($_[2]) ? "selected" : "") ]);
if (lc($2) eq lc($_[0]) || !defined($_[0]) && lc($2) eq lc($_[2])) {
$selv = $2;
}
push(@sel, [ $2, $1 || "&nbsp;" ]);
}
return &ui_select($_[1], undef, \@sel, 1);
return &ui_select($_[1], $selv, \@sel, 1);
}
# parse_choice(name, default)
@@ -1330,7 +1334,8 @@ sub lock_apache_files
{
local $conf = &get_config();
local $f;
foreach $f (&unique(map { $_->{'file'} } @$conf)) {
@main::locked_apache_files = &unique(map { $_->{'file'} } @$conf);
foreach $f (@main::locked_apache_files) {
&lock_file($f);
}
}
@@ -1339,9 +1344,10 @@ sub unlock_apache_files
{
local $conf = &get_config();
local $f;
foreach $f (&unique(map { $_->{'file'} } @$conf)) {
foreach $f (@main::locked_apache_files) {
&unlock_file($f);
}
@main::locked_apache_files = ( );
}
# directive_lines(directive, ...)

View File

@@ -2,9 +2,9 @@ show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
start_cmd=service httpd start
apply_cmd=service httpd reload
stop_cmd=service httpd stop
start_cmd=systemctl start httpd.service
apply_cmd=systemctl reload httpd.service
stop_cmd=systemctl stop httpd.service
show_order=0
max_servers=100
test_config=1

View File

@@ -2,9 +2,9 @@ show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
start_cmd=service httpd start
apply_cmd=service httpd reload
stop_cmd=service httpd stop
start_cmd=systemctl start httpd.service
apply_cmd=systemctl reload httpd.service
stop_cmd=systemctl stop httpd.service
show_order=0
max_servers=100
test_config=1

View File

@@ -2,9 +2,9 @@ show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
start_cmd=service httpd start
apply_cmd=service httpd reload
stop_cmd=service httpd stop
start_cmd=systemctl start httpd.service
apply_cmd=systemctl reload httpd.service
stop_cmd=systemctl stop httpd.service
show_order=0
max_servers=100
test_config=1

View File

@@ -366,6 +366,7 @@ if ($_[0]->{'version'} < 2.0) {
}
else {
# Apache 2.0 just uses Listen directives
local %doneport;
for($i=0; $i<@blist; $i++) {
if (&check_ip6address($blist[$i])) {
$blist[$i] = "[".$blist[$i]."]";
@@ -375,6 +376,10 @@ else {
}
elsif ($blist[$i] ne "*") { push(@l, $blist[$i]); }
else { push(@l, "*:$plist[$i]"); }
if ($doneport{$l[$#l]}++) {
# Same listen given twice
&error(&text('core_eduplisten', $l[$#l]));
}
if ($_[0]->{'version'} >= 2.4 && $slist[$i]) {
$l[$#l] .= " ".$slist[$i];
}

View File

@@ -220,6 +220,9 @@ foreach $v (@virt) {
if (&find_vdirective("SSLEngine", $vm, $conf, 1) eq "on") {
$prot = "https";
}
elsif ($port == 443) {
$prot = "https";
}
$sp = undef if ($sp == 80 && $prot eq "http" ||
$sp == 443 && $prot eq "https");
push(@vurl, $sp ? "$prot://$sn:$sp/" : "$prot://$sn/");

View File

@@ -367,6 +367,7 @@ core_eaddress='$1' no
core_eport='$1' no és un port vàlid
core_eoneaddr=Has d'especificar almenys una adreça
core_edefport=Port per defecte invàlid
ore_eduplisten=L'adreça d'escolta $1 està llistada dos cops
core_multi=Múltiples peticions per connexió
core_ekeep='$1' no és un nombre de <i>keepalives</i> vàlid
core_ltwice=Consulta-ho dos cops

View File

@@ -186,6 +186,7 @@ core_edefchar=Fehlender oder ung&#252;ltiger Zeichensatz f&#252;r die Dokumente
core_edefmime=Der Standard MIME-Typ muss in der Form type/subtype sein
core_edefport=Ung&#252;ltiger Standardport
core_edirlog=Fehlerprotokolldatei ist nicht im erlaubten Verzeichnis
core_eduplisten=Lausche Adresse $1 zweimal aufgef&#252;hrt
core_eerror='$1' kein g&#252;ltiger Fehlercode
core_eerrordir=Das Verzeichnis f&#252;r das Error-Logfile existiert nicht
core_efilelog=Ung&#252;ltige Fehlerprotokolldatei

View File

@@ -367,6 +367,7 @@ core_eaddress='$1' is not a valid address
core_eport='$1' is not a valid port
core_eoneaddr=You must specify at least one address to listen on
core_edefport=Invalid default port
core_eduplisten=Listen address $1 is listed twice
core_multi=Multiple requests per connection
core_ekeep='$1' is not a valid number of keepalives
core_ltwice=Lookup twice

View File

@@ -186,6 +186,7 @@ core_edefchar=Manglende eller ugyldig tegnsett for dokumenter
core_edefmime=Standard MIME type m&#229; v&#230;re p&#229; formen type/undertype
core_edefport=Ugyldig standard port
core_edirlog=Feil-logg filen ligger ikke under tillatt katalog
core_eduplisten=Lytte-adressen $1 er angitt to ganger
core_eerror='$1' er ikke en gyldig feilkode
core_eerrordir=Katalog for feillogg filen finnes ikke
core_efilelog=Ugyldig feillogg fil

View File

@@ -186,6 +186,7 @@ core_edefchar=Brakuj
core_edefmime=Domyślny typ MIME musi być postaci typ/podtyp
core_edefport=Niepoprawny port domyślny
core_edirlog=Brak pliku logowania błędów w dozwolonym katalogu
core_eduplisten=Adres $1 jest wymieniony dwukrotnie
core_eerror='$1' nie jest poprawnym kodem błędu
core_eerrordir=Katalog dla pliku logu błędów nie istnieje
core_efilelog=Niepoprawny plik logowania błędów
@@ -343,6 +344,7 @@ cvirt_eport='$1' nie jest poprawnym portem
cvirt_eroot1=Musisz wpisać katalog główny dla dokumentów
cvirt_eroot2=Utworzenie katalogu '$1' nie powiodło się: $2
cvirt_eroot3=Nie masz uprawnień do używania głównego katalogu '$1'
cvirt_eroot4=Brak zdefiniowanego użytkownika w konfiguracji Apache
cvirt_err=Utworzenie serwera wirtualnego nie powiodło się
cvirt_etaken=Serwer wirtualny o&nbsp;takiej nazwie już istnieje na tym porcie
default_serv=serwera domyślnego

View File

@@ -38,7 +38,7 @@ authg_none=
vserv_delete=Удалить виртуальный сервер
authu_edit=Редактирование пользователя
restart_err=Ошибка при применении изменений
virt_header=Для "$1"
virt_header=Для $1
htaccess_title=Файлы параметров для каждого каталога
htaccess_edir='$1' не является допустимым каталогом
type_0=Процессы и лимиты
@@ -193,7 +193,7 @@ index_addr=
restart_eunknown=Неизвестная причина
index_type=Тип
index_vdef=Обрабатывает все запросы, не обслуженные другими виртуальными серверами.
htindex_header=Для "$1"
htindex_header=Для $1
authg_header=В файле $1
virt_return=меню сервера
htindex_create=Создание параметров для каждого файла
@@ -908,3 +908,94 @@ core_minspare=
core_satisfy=Клиенты должны удовлетворять требованиям
mod_userdir_except=Всем пользователям, исключая
manual_file=Редактирование директив в файле:
core_eerrordir=Каталог для log file не существует
acl_names=Отредактировать имена серверов?
index_descglobal=Изменения этих параметров применяться ко всему серверу Apache, включая все виртуальные хосты.
mod_auth_digest_edomain=Отсутствует URL-адреса и пути в одном домене
mod_apachessl_forcessl=Сила доступа SSL/notSSL?
mod_ssl_cafile=Файл сертификата авторизации
log_mods=Изменена конфигурация модулей Apache
acl_apply=Применить изменения?
htaccess_file=Существующие параметры файлов
mod_ssl_epassph=Не введен пароль SSL
index_delete=Удалить выбранные серверы
mod_apachessl_sesstimeout=Время в секундах, которое ключ сеанса будет кэшироваться
core_portname=Протокол
index_proxy=Карта URL
mod_band_ebw='$1' не является допустимым ограничением пропускной способности
acl_dirs0=Все
core_minor=Только незначительная версия
htaccess_err=Не удалось создать файл параметров
delete_ecannot2=Вам не разрешено редактировать сервер $1
mod_ssl_ecafile=Отсутствует файл ключа сертификата авторизации
eafter=Сбой проверки конфигурации: $1 изменения не были сохранены.
index_tablist=Существующие виртуальные хосты
mod_php_admin_value=Значения конфигурации PHP Admin
acl_dirs=Имеющиеся директивы Apache <br><font size=-1>(С учетом типов ограничить выше) </font>
index_any0=Конкретный адрес...
index_return2=Глобальная настройка
mod_proxy_seconds=секунд
index_newaddr=Обрабатывать запросы на адрес
log_virts_delete=Удаленные виртуальные серверы $1
log_manual=Вручную редактировать файл конфигурации $1
mod_alias_edest2=Вы не можете использовать в $2 назначения '$1'
mod_log_config_edir=Каталог для файла журнала '$1' не существует
mod_band_enable=Включить ограничение скорости?
index_apache=Веб-сервер Apache
index_tabcreate=Создание виртуального хоста
mod_ssl_builtin=Запрос при запуске
mod_apachessl_ecacherundir=Отсутствует рабочий каталог gcache
index_any1=То что не обработано другим сервером
mod_band_ent=IP-адрес или домен
acl_dirs2=Все, кроме перечисленных...
mod_apachessl_nov2=Отключить SSL версии 2
mod_band_max=Максимальное количество одновременных подключений
manual_etest=Обнаружена ошибка конфигурации файла: $1
defines_list=Определены параметры
mod_band_size=Минимальный размер файла
manual_editfile=Отредактировать конфигурационный файл:
index_crnow=Создать сейчас
delete_enone=Ничего не выбрано
mod_dav_etimeout=Несуществующее или недопустимое время ожидания DAV
cvirt_emissing=Был добавлен новый виртуальный сервер в $1, но этот файл не используется Apache. Проверьте <a href='$2'>модуль конфигурации</a> и убедитесь, что 'файл или каталог для добавления виртуальных серверов' является правильным.
mod_php_admin_flag=Флаги конфигурации PHP Admin
mod_band_client=Для клиентов
index_any2=Любой адрес
index_desclist=Список ниже показывает все определенные виртуальные хосты Apache, к которым в настоящее время у вас есть доступ. Опция <b>Сервер по умолчанию</ b> определяет параметры, которые применяются ко всем другим виртуальным хостам, если не переопределить.
index_adddir=Allow access to this directory
core_major=Только основная версия
mod_apachessl_notssl=Запретить доступ по протоколу SSL
mod_band_emax=Несуществующее или недопустимое количество одновременных подключений
mod_band_epulse=Отсутствующий или недопустимый интервал между ограниченным пакетов
index_url=URL
index_tabglobal=Глобальная настройка
mod_apachessl_esesstimeout=Время в секундах должно быть целым
mod_proxy_not=Нет
mod_band_bw=Предел (байт/сек)
dir_proxyall=Все запросы через прокси
delete_ecannot=Вы не можете удалять серверы
manual_switch=Редактировать
core_virtaddr_star=Включить все адреса
mod_log_config_ifset=Если задать
mod_band_esize=Размер файла отсутствует или недопустим для ограничение пропускной способности '$1'
mod_band_bandwidth=Ограничения полосы пропускания клиента
mod_apachessl_ramdomfilee=Socket
acl_aliasdir=Лимит алиасов в каталоге
mod_apachessl_eramdomfileb=Байт должен быть целым числом
mod_auth_digest_domain=URL-адреса и пути в одном домене
acl_dirs1=Только перечисленные...
mod_band_all=Все
mod_dav_active=Включен протокол WebDAV?
delete_err=Не удалось удалить виртуальные серверы
mod_auth_basic_dbm=База данных DBM
index_fmode1d=Новый файл в каталоге виртуальных серверов $1
mod_band_eclient=Отсутствующий или недопустимый IP клиента, сети или домен для ограничения пропускной способности '$1'
mod_band_pulse=Интервал между ограниченным пакетов (в мс)
mod_ssl_ecerton=Если протокол SSL включен, файл сертификата должен быть выбран
index_desccreate=Эта форма может использоваться для добавления нового виртуального хоста Apache, который обслуживает контент из указанного каталога в ответ на запросы на конкретный IP-адрес или имя хоста.
mod_auth_digest_al=Алгоритм хэширования
mod_auth_basic_file=Текстовый файл
cvirt_eroot4=Ни один пользователь, определенный в конфигурации Apache
__norefs=Русский
mod_apachessl_ramdomfilef=Файл
index_view=Открытые...

View File

@@ -37,7 +37,7 @@ return (2, $_[2], $rv);
%alias_statmap = ("permanent", 301, "temp", 302,
"seeother", 303, "gone", 410);
$url_regexp = '^(http:\/\/|ftp:\/\/|gopher:|https:\/\/|mailto:|telnet:)(\S+)$';
$url_regexp = '^(http:\/\/|ftp:\/\/|gopher:|https:\/\/|mailto:|telnet:|\/)(\S+)$';
# alias_status_input(array, name, title)
sub alias_status_input

123
apache/mod_php7.pl Executable file
View File

@@ -0,0 +1,123 @@
# mod_php7.pl
sub mod_php7_directives
{
$rv = [ [ 'php_value', 1, 16, 'virtual directory htaccess', undef, 10 ],
[ 'php_flag', 1, 16, 'virtual directory htaccess', undef, 2 ],
[ 'php_admin_value', 1, 16, 'virtual directory htaccess', undef, 10 ],
[ 'php_admin_flag', 1, 16, 'virtual directory htaccess', undef, 2 ],
];
return &make_directives($rv, $_[0], "mod_php7");
}
sub mod_php7_handlers
{
return ("php7-script");
}
sub edit_php_value
{
return &php_value_form($_[0], "php_value");
}
sub edit_php_admin_value
{
return &php_value_form($_[0], "php_admin_value");
}
# php_value_form(&values, name)
sub php_value_form
{
local($rv, $name, $value, $len);
$rv = "";
$len = @{$_[0]} + 1;
for($i=0; $i<$len; $i++) {
if ($_[0]->[$i]->{'value'} =~ /^(\S+)\s+(.+)$/) {
$name = $1; $value = $2;
}
else { $name = $value = ""; }
$rv .= "<input name=mod_$_[1]_name_$i size=20 value='$name'>&nbsp;";
$rv .= "<input name=mod_$_[1]_value_$i size=30 value='$value'><BR>\n";
}
return (2, "$text{'mod_'.$_[1]}", $rv);
}
sub save_php_value
{
return &php_value_save("php_value");
}
sub save_php_admin_value
{
return &php_value_save("php_admin_value");
}
# php_value_save(name)
sub php_value_save
{
local($i, $name, $value, @rv);
for($i=0; defined($in{"mod_$_[0]_name_$i"}); $i++) {
$name = $in{"mod_$_[0]_name_$i"}; $value = $in{"mod_$_[0]_value_$i"};
if ($name !~ /\S/ && $value !~ /\S/) { next; }
$name =~ /^(\S+)$/ || &error(&text('mod_php_ename', $name));
$value =~ /^(.+)$/ || &error(&text('mod_php_evalue', $name, $value));
push(@rv, "$name $value");
}
return ( \@rv );
}
sub edit_php_flag
{
return &php_flag_form($_[0], "php_flag");
}
sub edit_php_admin_flag
{
return &php_flag_form($_[0], "php_admin_flag");
}
# php_flag_form(&values, name)
sub php_flag_form
{
local($rv, $name, $value, $len);
$rv = "";
$len = @{$_[0]} + 1;
for($i=0; $i<$len; $i++) {
if ($_[0]->[$i]->{'value'} =~ /^(\S+)\s+(on|off)$/) {
$name = $1; $value = $2;
}
else { $name = $value = ""; }
$rv .= "<input name=mod_$_[1]_name_$i size=20 value='$name'>&nbsp;";
$rv .= "<input name=mod_$_[1]_value_$i type=radio value=on" . ($value eq "on" ? " checked" : "" ) . ">on&nbsp;";
$rv .= "<input name=mod_$_[1]_value_$i type=radio value=off" . ($value eq "off" ? " checked" : "" ) . ">off&nbsp;<BR>";
}
return (2, "$text{'mod_'.$_[1]}", $rv);
}
sub save_php_flag
{
return &php_flag_save("php_flag");
}
sub save_php_admin_flag
{
return &php_flag_save("php_admin_flag");
}
# php_flag_save(name)
sub php_flag_save
{
local($i, $name, $value, @rv);
for($i=0; defined($in{"mod_$_[0]_name_$i"}); $i++) {
$name = $in{"mod_$_[0]_name_$i"}; $value = $in{"mod_$_[0]_value_$i"};
if ($name !~ /\S/ ) { next; }
$name =~ /^(\S+)$/ || &error(&text('mod_php_ename', $name));
$value =~ /^(on|off)$/i || &error(&text('mod_php_evalue', $name, $value));
push(@rv, "$name $value");
}
return ( \@rv );
}
1;

View File

@@ -37,7 +37,7 @@ return &parse_choice("SSLEngine");
sub get_sslprotos
{
my @sslprotos = ("SSLv2", "SSLv3", "TLSv1" );
if ($httpd_modules{'core'} >= 2.223) {
if ($httpd_modules{'core'} >= 2.215) {
push(@sslprotos, "TLSv1.1", "TLSv1.2");
}
return @sslprotos;

View File

@@ -1,4 +1,4 @@
at_style=Rodzaj systemu At,1,linux-Linux,solaris-Solaris,freebsd-FreeBSD
at_dir=Katalog zadañ dla At,0
at_dir=Katalog zadañ At,0
allow_file=Plik dozwolonych u¿ytkowników At,3,Brak
deny_file=Plik zabronionych u¿ytkowników At,3,Brak

View File

@@ -30,3 +30,4 @@ desc_sk.UTF-8=Plánované príkazy
desc_no=Tidsplanlagte kommandoer
longdesc_ms_MY=Jadual pelaksanaan arahan one-off atau skrip.
desc_ms_MY=Perintah Berjadual
longdesc_pl=Harmonogram wykonywania poleceñ lub skryptów.

View File

@@ -176,7 +176,7 @@ $rv .= "<td>&nbsp;$text{'backup_pass'}&nbsp;</td><td> ".
&ui_password("$_[0]_pass", $mode == 1 ? $pass : undef, 20).
"</td> </tr>\n";
$rv .= "<tr> <td></td>\n";
$rv .= "<td colspan='3'>$text{'backup_port'} ".
$rv .= "<td colspan='4'>$text{'backup_port'} ".
&ui_opt_textbox("$_[0]_port", $mode == 1 ? $port : undef, 5,
$text{'default'})."</td> </tr>\n";
@@ -196,7 +196,7 @@ $rv .= "<td>&nbsp;$text{'backup_pass'}&nbsp;</td><td> ".
&ui_password("$_[0]_spass", $mode == 2 ? $pass : undef, 20).
"</td> </tr>\n";
$rv .= "<tr> <td></td>\n";
$rv .= "<td colspan='3'>$text{'backup_port'} ".
$rv .= "<td colspan='4'>$text{'backup_port'} ".
&ui_opt_textbox("$_[0]_sport", $mode == 2 ? $port : undef, 5,
$text{'default'})."</td> </tr>\n";
@@ -204,7 +204,7 @@ if ($_[2] == 1) {
# Uploaded file field
$rv .= "<tr><td>".&ui_oneradio("$_[0]_mode", 3, undef, $mode == 3).
"</td>\n";
$rv .= "<td colspan=3>$text{'backup_mode3'} ".
$rv .= "<td colspan=4>$text{'backup_mode3'} ".
&ui_upload("$_[0]_upload", 40).
"</td> </tr>\n";
}
@@ -212,7 +212,7 @@ elsif ($_[2] == 2) {
# Output to browser option
$rv .= "<tr><td>".&ui_oneradio("$_[0]_mode", 4, undef, $mode == 4).
"</td>\n";
$rv .= "<td colspan=3>$text{'backup_mode4'}</td> </tr>\n";
$rv .= "<td colspan=4>$text{'backup_mode4'}</td> </tr>\n";
}
$rv .= "</table>\n";
@@ -707,7 +707,7 @@ elsif ($mode == 4) {
=head2 date_subs(string)
Given a string with strftime-style format characters in it like %Y and %S,
Given a string with strftime-style format characters in it like %Y and %S,
replaces them with the correct values for the current date and time.
=cut

View File

@@ -11,6 +11,7 @@ our (%in, %text, %config, $module_config_file);
&error_setup($text{'backup_err'});
my $dest = &parse_backup_destination("dest", \%in);
my ($configfile, $nofiles, $others) = &parse_backup_what("what", \%in);
$others ||= "";
my @mods = split(/\0/, $in{'mods'});
@mods || ($nofiles && !$configfile) || &error($text{'backup_emods'});

View File

@@ -1,3 +1,3 @@
date_subs=Wykonać zastępowanie <tt>strftime</tt> miejsc docelowych kopii zapasowej?,1,1-Tak,0-Nie
webmin_subs=Uczynić Webmin podstawową zmienną jako miejsce docelowe kopii zapasowych?,1,1-Tak,0-Nie
webmin_subs=Uczynić zmienną Webmina jako miejsce docelowe kopii zapasowych?,1,1-Tak,0-Nie
from_addr=Od: adres dla wiadomości email,3,webmin@hostname

View File

@@ -85,7 +85,8 @@ print &ui_form_start("restore.cgi", "form-data");
print &ui_table_start($text{'index_header2'}, undef, 2);
print &ui_table_row($text{'edit_mods2'},
&ui_select("mods", \@dmods,
&ui_select("mods",
[ map { $_->{'dir'} } @mods ],
[ map { [ $_->{'dir'}, $_->{'desc'} ] } @mods ],
5, 1));

View File

@@ -43,6 +43,7 @@ edit_mods=Modu
edit_mods2=Moduły do przywrócenia
edit_nofiles=Pliki konfiguracyjne serwera
edit_other=Inne pliki z listy...
edit_other2=Inne pliki do przywrócenia
edit_post=Polecenie po wykonaniu kopii
edit_pre=Polecenie przed wykonaniem kopii
edit_return=kopia zapasowa z
@@ -99,6 +100,7 @@ nice_upload=za
restore_doing=Uruchamianie przywracania plików konfiguracyjnych modułu z $1 ...
restore_done=... zakończono. Przywrócono $1 plików.
restore_done2=... pliki zawarte w kopii zapasowej:
restore_emods=Nie wybrano modułów lub innych plików
restore_err=Błąd przywracania
restore_failed=... z błędem! $1
restore_testing=Wyodrębnianie zawartości kopii zapasowej z $1 ...

View File

@@ -28,3 +28,4 @@ desc_sk.UTF-8=Záloha konfiguračných súborov
desc_no=Sikkerhetskopier konfig.filer
longdesc_ms_MY=Lakukan salinan secara manual atau berjadual dan mengembalikan fail konfigurasi yang diuruskan oleh modul Webmin.
desc_ms_MY=Backup Fail konfigurasi
longdesc_pl=Rêczne lub zaplanowane tworzenie i przywracanie kopii zapasowych plików konfiguracyjnych modu³ów zarz±dzanych przez Webmina.

View File

@@ -76,6 +76,15 @@ if (!defined($config_file_cache{$file})) {
if (/^\s*\@(.*\S)/) {
# An include file reference .. parse it
local $incfile = $1;
# A pipe command
if ($incfile =~ /^\|"(.*)"$/) {
local $command = $1;
local $incfiles = `$command`;
foreach (split(/\s/,$incfiles)) {
local $inc = &read_config_file(substr($_,1));
push(@{$parent->{'members'}}, @$inc);
}
}
if ($incfile !~ /^\//) {
$incfile = "$config{'bacula_dir'}/$incfile";
}
@@ -552,7 +561,8 @@ sub is_bacula_running
local ($proc) = @_;
if (&has_command($bacula_cmd)) {
# Get status from bacula status command
$bacula_status_cache ||= `$bacula_cmd status 2>&1 </dev/null`;
$bacula_status_cache ||=
&backquote_command("$bacula_cmd status 2>&1 </dev/null");
if ($bacula_status_cache =~ /\Q$proc\E\s+\(pid\s+([0-9 ]+)\)\s+is\s+running/i ||
$bacula_status_cache =~ /\Q$proc\E\s+is\s+running/i) {
return 1;
@@ -819,17 +829,17 @@ local $jobs = &console_cmd($h, "show jobs");
local @rv;
local $job;
foreach my $l (split(/\r?\n/, $jobs)) {
if ($l =~ /^Job:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
if ($l =~ /^Job:\s+name=([^=]*\S)\s/i ||
$l =~ /^\s*Name\s*=\s*"(.*)"/i) {
$job = { 'name' => $1 };
push(@rv, $job);
}
elsif (($l =~ /Client:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Client\s*=\s*"(.*)"/) && $job) {
elsif (($l =~ /Client:\s+name=([^=]*\S)\s/i ||
$l =~ /^\s*Client\s*=\s*"(.*)"/i) && $job) {
$job->{'client'} = $1;
}
elsif (($l =~ /FileSet:\s+name=([^=]*\S)\s/ ||
$l =~ /^FileSet\s*=\s*"(.*)"/) && $job) {
elsif (($l =~ /FileSet:\s+name=([^=]*\S)\s/i ||
$l =~ /^FileSet\s*=\s*"(.*)"/i) && $job) {
$job->{'fileset'} = $1;
}
}
@@ -846,21 +856,21 @@ local $clients = &console_cmd($h, "show clients");
local @rv;
local $client;
foreach my $l (split(/\r?\n/, $clients)) {
if ($l =~ /^Client:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
if ($l =~ /^Client:\s+name=([^=]*\S)\s/i ||
$l =~ /^\s*Name\s*=\s*"(.*)"/i) {
$client = { 'name' => $1 };
if ($l =~ /address=(\S+)/ && $client) {
if ($l =~ /address=(\S+)/i && $client) {
$client->{'address'} = $1;
}
if ($l =~ /FDport=(\d+)/ && $client) {
if ($l =~ /FDport=(\d+)/i && $client) {
$client->{'port'} = $1;
}
push(@rv, $client);
}
elsif ($l =~ /^\s*Address\s*=\s*"(.*)"/ && $client) {
elsif ($l =~ /^\s*Address\s*=\s*"(.*)"/i && $client) {
$client->{'address'} = $1;
}
elsif ($l =~ /^\s*FDport\s*=\s*"(.*)"/ && $client) {
elsif ($l =~ /^\s*FDport\s*=\s*"(.*)"/i && $client) {
$client->{'port'} = $1;
}
}
@@ -877,21 +887,21 @@ local $storages = &console_cmd($h, "show storages");
local @rv;
local $storage;
foreach my $l (split(/\r?\n/, $storages)) {
if ($l =~ /^Storage:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
if ($l =~ /^Storage:\s+name=([^=]*\S)\s/i ||
$l =~ /^\s*Name\s*=\s*"(.*)"/i) {
$storage = { 'name' => $1 };
if ($l =~ /address=(\S+)/) {
if ($l =~ /address=(\S+)/i) {
$storage->{'address'} = $1;
}
if ($l =~ /SDport=(\d+)/) {
if ($l =~ /SDport=(\d+)/i) {
$storage->{'port'} = $1;
}
push(@rv, $storage);
}
elsif ($l =~ /^\s*Address\s*=\s*"(.*)"/ && $storage) {
elsif ($l =~ /^\s*Address\s*=\s*"(.*)"/i && $storage) {
$storage->{'address'} = $1;
}
elsif ($l =~ /^\s*SDport\s*=\s*"(.*)"/ && $storage) {
elsif ($l =~ /^\s*SDport\s*=\s*"(.*)"/i && $storage) {
$storage->{'port'} = $1;
}
}
@@ -908,15 +918,15 @@ local $pools = &console_cmd($h, "show pools");
local @rv;
local $pool;
foreach my $l (split(/\r?\n/, $pools)) {
if ($l =~ /^Pool:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
if ($l =~ /^Pool:\s+name=([^=]*\S)\s/i ||
$l =~ /^\s*Name\s*=\s*"(.*)"/i) {
$pool = { 'name' => $1 };
if ($l =~ /PoolType=(\S+)/) {
if ($l =~ /PoolType=(\S+)/i) {
$pool->{'type'} = $1;
}
push(@rv, $pool);
}
elsif ($l =~ /^\s*PoolType\s*=\s*"(.*)"/ && $pool) {
elsif ($l =~ /^\s*PoolType\s*=\s*"(.*)"/i && $pool) {
$pool->{'type'} = $1;
}
}
@@ -1011,7 +1021,7 @@ foreach my $l (split(/\r?\n/, $status)) {
'name' => &job_name("$2"),
'status' => $4 });
}
elsif ($sect == 2 && $l =~ /^\s*Backup\s+Job\s+started:\s+(\S+\s+\S+)/) {
elsif ($sect == 2 && $l =~ /^\s*Backup\s+Job\s+started:\s+(\S+\s+\S+)/i) {
$run[$#run]->{'date'} = $1;
}
elsif ($sect == 3 && $l =~ /^\s*(\d+)\s+(\S+)\s+([0-9,]+)\s+([0-9,]+\.[0-9,]+\s+\S+|\d+)\s+(\S+)\s+(\S+\s+\S+)\s+(\S+)\s*$/) {
@@ -1047,7 +1057,7 @@ foreach my $l (split(/\r?\n/, $status)) {
if ($l =~ /^Running\s+Jobs/i) { $sect = 2; }
elsif ($l =~ /^Terminated\s+Jobs/i) { $sect = 3; }
if ($sect == 2 && $l =~ /^\s*Backup\s+Job\s+(\S+)\.(\d+\-\d+\-\S+)\s+(.*)/) {
if ($sect == 2 && $l =~ /^\s*Backup\s+Job\s+(\S+)\.(\d+\-\d+\-\S+)\s+(.*)/i) {
push(@run, { 'name' => &job_name("$1"),
'status' => $3 });
}
@@ -1061,7 +1071,7 @@ foreach my $l (split(/\r?\n/, $status)) {
$run[$#run]->{'volume'} = $4;
$run[$#run]->{'device'} = $6;
}
elsif ($sect == 3 && $l =~ /^\s*(\d+)\s+(\S+)\s+([0-9,]+)\s+([0-9,]+\.[0-9,]+\s+\S+|\d+)\s+(\S+)\s+(\S+\s+\S+)\s+(\S+)\s*$/) {
elsif ($sect == 3 && $l =~ /^\s*(\d+)\s+(\S+)\s+([0-9,]+)\s+([0-9,]+\.[0-9,]+\s+\S+|\d+)\s+(\S+)\s+(\S+\s+\S+)\s+(\S+)\s*$/i) {
push(@done, { 'id' => $1,
'level' => &full_level("$2"),
'files' => &remove_comma("$3"),

View File

@@ -0,0 +1,17 @@
line0=Konfigurerbare innstillinger,11
wait=Standard sikkerhetskopi ventemodus,1,1-Vent p&#239;&#191;&#189; fullf&#239;&#191;&#189;ring,0-Kj&#239;&#191;&#189;r i bakgrunnen
apply=Ta i bruk katalog-konfigurasjon automatisk?,1,1-Ja,0-Nei
groupmode=Hent node gruppe informasjon fra,1,webmin-Webmin Tjenere indeks modul,oc-OCM Manager database,-Ingen steder
showdirs=Vis alltid eksterne kataloger?,1,1-Ja,0-Nei
line1=Bacula databaseinnstillinger,11
driver=Databasetype,1,Pg-PostgreSQL,mysql-MySQL,SQLite-SQLite
user=Bruker det skal logges inn p&#239;&#191;&#189; databasen som,0
pass=Passord det skal logges inn med,0
host=Bacula databasetjener,3,Dette system
db=Database eller fil som inneholder Bacula informasjon,0
line2=Filinnstillinger,11
bacula_dir=Bacula konfigurasjonskatalog,0
bextract=Full sti til <tt>bextract</tt> kommando,0
bls=Full sti til <tt>bls</tt> kommando,0
btape=Full sti til <tt>btape</tt> kommando,0
init_start=Start og stopp Bacula vha.1,1-Init scripts,0-<tt>bacula</tt> kommando

View File

@@ -14,3 +14,4 @@ bacula_dir=Katalog konfiguracyjny Bacula,0
bextract=Pełna ścieżka do komendy <tt>bextract</tt>,0
bls=Pełna ścieżka do komendy <tt>bls</tt>,0
btape=Pełna ścieżka do komendy <tt>btape</tt>,0
init_start=Uruchom i zatrzymaj Bacula używając,1,1-Skryptów Init,0-polecenia <tt>bacula</tt>

619
bacula-backup/lang/no Normal file
View File

@@ -0,0 +1,619 @@
__norefs=1
apply_err=Kunne ikke ta i bruk konfigurasjon
apply_failed=En konfigurasjonsfeil ble oppdaget
apply_problem=Kunne ikke ta i bruk konfigurasjon : $1
backup_done=.. sikkerhetskopi fullf&#248;rt.
backup_ejob=.. kunne ikke finne jobb!
backup_eok=.. jobben kunne ikke startes
backup_failed=.. sikkerhetskopieringen ble ikke fullf&#248;rt. Sjekk feilmeldingen ovenfor for detaljer om dette.
backup_header=Detaljer for sikkerhetskopi-jobb
backup_jd=$1 (Filsett $2 p&#229; $3)
backup_job=Jobb som skal kj&#248;res
backup_ok=Sikkerhetskopier n&#229;
backup_return=backup skjema
backup_run=Starter sikkerhetskopi-jobb $1 ..
backup_running=.. sikkerhetskopi-jobben kj&#248;rer n&#229;. N&#229;r den er ferdig vises resultatene nedenfor ..
backup_running2=.. sikkerhetskopieringen er startet i bakgrunnen.
backup_title=Kj&#248;r backup jobb
backup_wait=Vent p&#229; resultater?
cancel_enone=Ingen valgt
cancel_err=Kunne ikke avrbyte jobber
check_ebacula=Baculas kontroll-kommando $1 ble ikke funnet.
check_eclient=Dette systemet ser ut til &#229; v&#230;re en <a href='$2'>Bacula klient</a> i stedet for en regiss&#248;r.
check_econfigs=Fant ingen Bacula konfigurasjonsfiler i $1
check_econsole=Bacula konsoll kommandoen $1 ble ikke funnet.
check_edir=Bacula konfigurasjonskatalogen $1 ble ikke funnet p&#229; systemet ditt.
check_edirector=Bacula regiss&#248;r konfigurasjonsfilen $1 ble ikke funnet.
check_engmod=Modulen OpenCountry Bacula grupper er ikke installert
check_eservers=Ingen Webmin tjenergrupper er definert
chooser_all=Alle
chooser_days=Datoer
chooser_daysh=Dager i m&#229;neden &#229; utf&#248;re
chooser_edays=Ingen dager i m&#229;neden valgt
chooser_edaysrange=Valgte dager i m&#229;neden m&#229; v&#230;re sammenhengende
chooser_ehour=Manglende eller ugyldig time p&#229; dagen
chooser_eminute=Manglende eller ugyldig minutt
chooser_emonths=Ingen m&#229;neder valgt
chooser_emonthsrange=Valgte m&#229;neder m&#229; v&#230;re sammehengende
chooser_err=Kunne ikke velge tidsplan
chooser_eweekdaynums=Ingen ukedag tall valgt
chooser_eweekdaynumsrange=Valgte ukedag numre m&#229; v&#230;re sammenhengende
chooser_eweekdays=Ingen ukedager valgt
chooser_eweekdaysrange=Valgte ukedager m&#229; v&#230;re sammenhengende
chooser_months=M&#229;neder i &#229;ret
chooser_monthsh=M&#229;neder &#229; utf&#248;re
chooser_ok=OK
chooser_sel=Valgt nedenfor ..
chooser_time=Time og minutt
chooser_timeh=Tidspunkt for utf&#248;ring
chooser_title=Velg tidsplan
chooser_weekdaynums=Numre i m&#229;ned
chooser_weekdays=Ukedager
chooser_weekdaysh=Ukedager &#229; utf&#248;re
client_address=Vertsnavn eller IP adresse
client_catalog=Katalog som skal brukes
client_eaddress=Manglende eller ugyldig vertsnavn eller adresse
client_echild=Denne klienten kan ikke slettes siden den brukes av $1
client_eclash=En klient med samme navn finnes allerede
client_efileret=Manglende eller ugyldig oppbevaringsperiode for filer
client_egone=Klient finnes ikke lenger!
client_ejobret=Manglende eller ugyldig oppbevaringsperiode for jobber
client_ename=Manglende eller ugyldig klientnavn
client_epass=Manglende passord
client_eport=Manglende eller ugyldig FD port
client_err=Kunne ikke lagre backup klient
client_fileret=Behold backupfiler i
client_header=Detaljer for klient som skal sikkerhetskopieres
client_jobret=Behold backupjobber i
client_name=Klient FD navn
client_pass=Bacula FD passord
client_port=Bacula FD port
client_prune=Fjern utl&#248;pte jobber og filer?
client_status=Vis status
client_title1=Opprett backup klient
client_title2=Rediger sikkerhetskopi-klient
clients_add=Legg til ny backup klient.
clients_address=Vertsnavn eller adresse
clients_catalog=Katalog
clients_delete=Slett valgte klienter
clients_derr=Kunne ikke slette klienter
clients_name=Klient navn
clients_none=Ingen backup klienter er definert enda.
clients_return=liste med klienter
clients_title=Backup klienter
clientstatus_err=Kunne ikke hente status fra $1 : $2
clientstatus_msg=Status fra $1 : $2
clientstatus_ok=OK
clientstatus_on=$1 (p&#229; $2)
clientstatus_show=Vis status for klient:
clientstatus_title=Klient status
connect_elogin=Kunne ikke logge inn i databasen $1 : $2.
connect_emysql=Kunne ikke laste datbase DBI driver $1
connect_equery=Databasen $1 ser ikke ut til &#229; inneholde Bacula tabeller.
connect_equery2=Dette kan v&#230;re fordi SQLLite Perl modulen som er installert, er for ny, og ikke st&#248;tter det eldre SQLite databaseformatet som Bacula bruker.
connect_equery3=Databasen $1 ser ikke ut til &#229; inneholde OC Bacula gruppe tabeller.
device_always=Hold alltid &#229;pen?
device_auto=Monter automatisk?
device_device=Arkiv-enhet eller katalog
device_echild=Denne klienten kan ikke slettes siden den brukes av $1
device_eclash=En lagringsenhet med samme navn finnes allerede
device_edevice=Manglende eller ugyldig arkiv-enhet eller -katalog
device_egone=Lagringsenhet finnes ikke lenger!
device_emedia=Mangler media type navn
device_ename=Mangler navn p&#229; lagringsenhet
device_err=Kunne ikke lagre lagrings-enhet
device_header=Detaljer for fillagrings enhet
device_label=Merk media automatisk?
device_media=Media type navn
device_name=Lagringsenhet navn
device_random=Direktetilgangs-medium?
device_removable=Flyttbare media?
device_title1=Opprett lagringsenhet
device_title2=Rediger lagringsenhet
devices_add=Legg til ny lagringsenhet.
devices_delete=Slett valgte lagringsenheter
devices_derr=Kunne ikke slette lagringsenheter
devices_device=Enhets-fil eller -katalog
devices_name=Enhetsnavn
devices_none=Ingen lagringsenheter er definert enda.
devices_return=liste med lagringsenheter
devices_title=Lagringsenheter
devices_type=Media type
director_dir=Bacula arbeidskatalog
director_edir=Manglende eller ikke-eksisterende arbeidskatalog
director_ejobs=Manglende eller ugyldig antall samtidige jobber
director_ename=Manglende eller ugyldig regiss&#248;r navn
director_enone=Ingen regiss&#248;r-konfigurasjon funnet!
director_eport=Manglende eller ugyldig portnummer
director_err=Kunne ikke lagre regiss&#248;r-konfigurasjon
director_header=Globale innstillinger for Bacula regiss&#248;r
director_jobs=Maks. samtidige jobber
director_messages=M&#229;l for meldinger
director_name=Regiss&#248;r navn
director_port=Lytt p&#229; port
director_title=Regiss&#248;r konfigurasjon
dirstatus_bytes=St&#248;rrelse
dirstatus_cancel=Avbryt valgte jobber
dirstatus_date=Kj&#248;rt
dirstatus_date2=Startet
dirstatus_done=Fullf&#248;rte sikkerhetskopi jobber
dirstatus_donenone=Ingen backup jobber er kj&#248;rt.
dirstatus_files=Filer
dirstatus_id=Kj&#248;re ID
dirstatus_level=Niv&#229;
dirstatus_name=Jobbnavn
dirstatus_refresh=Oppfrisk liste
dirstatus_run=Kj&#248;rende backup jobber
dirstatus_runnone=Ingen backup jobber kj&#248;rer for &#248;yeblikket.
dirstatus_sched=Tidsplanlagte sikkerhetskopi jobber
dirstatus_schednone=Ingen sikkerhetskopi jobber er tidsplanlagt for &#248;yeblikket.
dirstatus_status=Gjeldende status
dirstatus_status2=Status
dirstatus_title=Regiss&#248;r status
dirstatus_type=Type
dirstatus_volume=Volum
dvolumes_ebacula=Bacula feil : $1
dvolumes_enone=Ingen valgt
dvolumes_err=Kunne ikke slette volumer
esql=SQL feil : $1
fdirector_eclash=En regiss&#248;r med samme navn finnes allerede
fdirector_egone=Regiss&#248;r finnes ikke lenger!
fdirector_ename=Mangler regiss&#248;rnavn
fdirector_epass=Manglende passord
fdirector_err=Kunne ikke lagre fil daemon regiss&#248;r
fdirector_header=Detaljer for kontrollerende ekstern regiss&#248;r
fdirector_monitor=Tillat bare overv&#229;kings-tilkobling?
fdirector_name=Director navn
fdirector_pass=Akseptert passord
fdirector_title1=Opprett fil daemon regiss&#248;r
fdirector_title2=Rediger fil daemon regiss&#248;r
fdirectors_add=Legg til ny regiss&#248;r.
fdirectors_delete=Slett valgte regiss&#248;rer
fdirectors_derr=Kunne ikke slette regiss&#248;rer
fdirectors_name=Regiss&#248;rnavn
fdirectors_none=Ingen regiss&#248;rer er definert enda.
fdirectors_pass=Akseptert passord
fdirectors_return=list over regiss&#248;rer
fdirectors_title=Fil Daemon regiss&#248;rer
file_dir=Bacula arbeidskatalog
file_edir=Manglende eller ikke-eksisterende arbeidskatalog
file_ejobs=Manglende eller ugyldig antall samtidige jobber
file_ename=Manglende eller ugyldig fil daemon navn
file_enone=Ingen fil daemon konfigurasjon funnet!
file_eport=Manglende eller ugyldig portnummer
file_err=Kunne ikke lagre fil daemon konfigurasjon
file_header=Innstillinger for Bacula fil daemon
file_jobs=Maks. samtidige jobber
file_name=Fil daemon navn
file_port=Lytt p&#229; port
file_title=Fil daemon konfigurasjon
fileset_comp=Komprimeringstype
fileset_echild=Dette filsettet kan ikke slettes siden det brukes av $1
fileset_eclash=Et fil-sett med samme navn finnes allerede
fileset_egone=Filsettet finnes ikke lenger!
fileset_ename=Mangler fil-sett navn
fileset_err=Kunne ikke lagre filsett
fileset_exclude=Filer og kataloger som skal hoppes over
fileset_gzip=Gzip niv&#229; $1
fileset_gzipdef=&lt;Standard komprimeringsniv&#229;&gt;
fileset_header=Detaljer for backup filsett
fileset_include=Filer og kataloger som skal sikkerhetskopieres
fileset_lzo=LZO komprimering
fileset_md5=MD5
fileset_name=Filsett navn
fileset_none=Ingen
fileset_onefs=Begrens backup til ett filsystem?
fileset_sig=Fil signaturtype
fileset_title1=Opprett filsett
fileset_title2=Rediger filsett
filesets_add=Legg til nytt backup filsett.
filesets_delete=Slett valgte fil-sett
filesets_derr=Kunne ikke slette fil-sett
filesets_ednone=Ingen valgt
filesets_files=Inkluderte filer
filesets_name=Filsett navn
filesets_none=Ingen backup filsett er definert enda.
filesets_return=liste med filsett
filesets_title=Filsett
gbackup_header=Detaljer for Bacula gruppe backup jobb
gbackup_jd=$1 (Filsett $2 p&#229; gruppe $3)
gbackup_on=Kj&#248;rer backupjobb p&#229; klient $1 :
gbackup_run=Starter backupjobb $1 p&#229; $2 klienter ..
gbackup_title=Kj&#248;r Bacula gruppe backup jobb
gjob_client=Bacula gruppe som skal sikkerhetskopieres
gjob_header=Detaljer for Bacula gruppe backup jobb
gjob_title1=Opprett Bacula gruppe backup jobb
gjob_title2=Rediger Bacula gruppe backup jobb
gjobs_add=Legg til ny Bacula gruppe backup jobb
gjobs_client=Bacula gruppe som skal sikkerhetskopieres
gjobs_delete=Slett valgte jobber
gjobs_derr=Kunne ikke slette Bacula gruppe backup jobber
gjobs_none=Ingen Bacula gruppe backup jobber er definert enda.
gjobs_return=liste med Bacula gruppe backup jobber
gjobs_title=Bacula gruppe backup jobber
group_eclash=En gruppe med samme navn finnes allerede
group_egone=Gruppen finnes ikke lenger!
group_egone2=Bacula gruppe finnes ikke lenger!
group_err=Kunne ikke lagre Backula gruppe
group_header=Detaljer for Bacula gruppe som skal sikkerhetskopieres
group_members=Verter i Bacula gruppe
group_name=Bacula gruppenavn
group_port=Bacula FD port
group_title1=Opprett Bacula gruppe
group_title2=Rediger Bacula gruppe
groups_add=Legg til Bacula gruppe:
groups_already=Alle Bacula grupper er allerede lagt til.
groups_catalog=Katalog
groups_delete=Slett valgte Bacula grupper
groups_derr=Kunne ikke slette grupper
groups_info=$1 ($2 medlemmer)
groups_name=Gruppenavn
groups_noadd=Det finnes ingen Bacula grupper som kan velges for sikkerhetskopier.
groups_none=Ingen Bacula grupper er valgt for sikkerhetskopier enda.
groups_ok=Legg til
groups_port=FD port
groups_return=liste med grupper
groups_title=Bacula grupper
index_actions=Handlinger for sikkerhetskopiering og gjenoppretting
index_apply=Bruk konfigurasjon
index_applydesc=Klikk p&#229; denne knappen for &#229; aktivere Bacula regiss&#248;rkonfigurasjon vist ovenfor.
index_boot=Start ved oppstart
index_bootdesc=Endre denne innstillingen for &#229; kontrollere om Bacula startes n&#229;r systemet starter opp.
index_dir=Regiss&#248;rkonfigurasjon
index_down=Nede
index_echeck=$1 Kanskje den ikke er installert, eller s&#229; er <a href='$2'>modulkonfigurasjonen</a> feil.
index_econsole=Bacula konsoll kommandoen $1 kunne ikke kommunisere med Bacula regiss&#248;r. Forsikre deg om at passordet i $2 er korrekt.
index_econsole2=Bacula konsoll-kommandoen $1 er ikke konfigurert med en gyldig Bacula regiss&#248;r-vert. Den bruker for &#248;yeblikket $1, og den eksisterer ikke.
index_edb=Kunne ikke koble til Bacula databasen : $1 Kanskje den ikke er satt opp, eller s&#229; er <a href='$2'>modulekonfigurasjonen</a> feil.
index_eng=Kunne ikle koble til Bacula grupper databasen : $1. Kanskje den ikke finnes, eller s&#229; er <a href='$2'>modulelkonfigurasjonen</a> feil.
index_eversion=Systemet ditt bruker Bacula versjon $2, men Webmin modulen st&#248;tter bare versjon $1 eller nyere.
index_fd=Fil daemon konfigurasjon
index_fixaddr=Klikk her for &#229; fikse Bacula regiss&#248;r-verten
index_fixpass=Klikk her for &#229; fikse konsoll passordet
index_groups=Bacula gruppe konfigurasjon
index_notrun=Sikkerhetskopiering og andre operasjoner kan ikke utf&#248;res siden Bacula regiss&#248;r daemon er nede.
index_ocmin=Bidratt av <a href=$2 target=_new>Linmin <img align=middle border=0 src='$1'></a>
index_restart=Omstart Bacula
index_restartdesc=Klikk p&#229; denne knappen for og stoppe og omstarte Baculas bakgrunnsprosesser listet ovenfor. Dette kan v&#230;re n&#248;dvendig for &#229; aktivere lagringsenhet konfigurasjoner.
index_return=modulindeks
index_sd=Lagringsdaemon konfigurasjon
index_start=Start Bacula
index_startdesc=Klikk p&#229; denne knappen for &#229; starte opp Baculas bakgrunnsprosesser listet ovenfor.
index_status=Prosess statuser:
index_stop=Stopp Bacula
index_stopdesc=Klikk p&#229; denne knappen for &#229; stoppe Baculas bakgrunnsprosesser listet ovenfor.
index_up=Oppe
index_versionbacula=Bacula $1
index_versionbareos=Bareos $1
job_after=Kommando etter jobb
job_before=Kommando f&#248;r jobb
job_cafter=Kommando etter jobb (p&#229; klient)
job_cbefore=Kommando f&#248;r jobb (p&#229; klient)
job_client=Klient som skal sikkerhetskopieres
job_def=Standard type
job_def0=Standard definisjon
job_def1=Frittst&#229;ende jobb
job_def2=Arv standardverdier fra $1
job_echild=Denne standard jobbdefinisjonen kan ikke slettes siden den brukes av $1
job_eclash=En jobb med samme navn finnes allerede
job_enabled=Sikkerhetskopi jobb aktivert?
job_ename=Manglende eller ugyldig jobbnavn
job_epriority=Manglende eller ugyldig prioritetsnummer
job_err=Kunne ikke lagre backupjobb
job_fileset=Filsett &#229; sikkerhetskopiere
job_header=Detaljer om backupjobb
job_level=Sikkerhetskopi niv&#229;
job_messages=M&#229;l for meldinger
job_name=Backupjobb navn
job_pool=Volumsamling
job_prority=Backup prioritet
job_run=Kj&#248;r n&#229;
job_schedule=Backup p&#229; tidsplan
job_storage=M&#229;l lagringsenhet
job_title1=Opprett backupjobb
job_title2=Rediger backupjobb
job_type=Jobbtype
jobs_add=Legg til ny backupjobb.
jobs_client=Klient som skal sikkerhetskopieres
jobs_deftype=Standarder?
jobs_delete=Slett valgte jobber
jobs_derr=Kunne ikke slette jobber
jobs_fileset=Filsett som skal sikkerhetskopieres
jobs_name=Jobbnavn
jobs_none=Ingen backup jobber er definert enda.
jobs_return=liste med jobber
jobs_schedule=Backup tidsplan
jobs_title=Backupjobber
jobs_type=Jobbtype
label_done=.. merking gjennomf&#248;rt.
label_eexists=.. angitt merkelapp finnes allerede.
label_efailed=.. merking feilet! Sjekk feilmeldingen ovenfor for mer informasjon om hvorfor.
label_elabel=Ingen merkelapp angitt
label_epool=.. kunne ikke finne samling!
label_err=Merking feilet
label_estorage=.. lagrings daemon ble ikke funnet!
label_header=Detaljer for volum til etikett
label_label=Nytt merkelapp-navn
label_ok=Merk n&#229;
label_pool=Opprett i samling
label_return=etikett skjema
label_run=Merker volum med $2 p&#229; lagrings-daemon $1 ..
label_storage=Lagrings-daemon som skal merkes
label_title=Merk volum
log_apply=Tok i bruk konfigurasjon
log_backup=Startet backupjobb $1
log_create_client=Opprettet backup klient
log_create_device=Opprettet lagringsenhet $1
log_create_fdirector=Opprettet fil daemon regiss&#248;r $1
log_create_fileset=Opprettet filsett $1
log_create_gjob=Opprettet Bacula gruppe backup-jobb $1
log_create_group=Opprettet Bacula gruppe $1
log_create_job=Opprettet backupjobb $1
log_create_pool=Opprettet volumsamling $1
log_create_schedule=Opprettet backup tidsplan $1
log_create_sdirector=Opprettet lagrings-daemon regiss&#248;r $1
log_create_storage=Opprettet lagrings daemon $1
log_delete_client=Slettet backup klient $1
log_delete_clients=Slettet $1 backup klienter
log_delete_device=Slettet lagringsenhet $1
log_delete_devices=Slettet $1 lagringsenheter
log_delete_fdirector=Slettet fil daemon regiss&#248;r $1
log_delete_fdirectors=Slettet $1 fil daemon regiss&#248;rer
log_delete_fileset=Slettet filsett $1
log_delete_filesets=Slettet $1 filsett
log_delete_gjob=Slettet Bacula gruppe backup jobb $1
log_delete_gjobs=Slettet $1 Bacula gruppe backup jobber
log_delete_group=Slettet Bacula gruppe $1
log_delete_groups=Slettet $1 Bacula grupper
log_delete_job=Slettet backup jobb $1
log_delete_jobs=Slettet $1 backupjobber
log_delete_pool=Slettet volumsamling $1
log_delete_pools=Slettet $1 volumsamlinger
log_delete_schedule=Slettet backup-tidsplan $1
log_delete_schedules=Slettet $1 backup tidsplaner
log_delete_sdirector=Slettet lagrings daemon regiss&#248;r $1
log_delete_sdirectors=Slettet $1 lagrings daemon regiss&#248;rer
log_delete_storage=Slettet lagrings daemon $1
log_delete_storages=Slettet $1 lagrings daemoner
log_director=Lagret global Bacula regiss&#248;rkonfigurasjon
log_file=Lagret Bacula fil daemon konfigurasjon
log_fixpass=Fikset Bacula konsoll-program passord
log_gbackup=Startet Bacula gruppe backup jobb $1
log_label=Merket lagrings-daemon $1
log_modify_client=Endret backup klient $1
log_modify_device=Endret lagringsenhet $1
log_modify_fdirector=Endret fil daemon regiss&#248;r $1
log_modify_fileset=Endret filsett $1
log_modify_gjob=Endret Bacula gruppe backup jobb $1
log_modify_group=Endret Bacula gruppe $1
log_modify_job=Endret backup jobb $1
log_modify_pool=Endret volumsamling $1
log_modify_schedule=Endret backup-tidsplan $1
log_modify_sdirector=Endret lagrings-daemon regiss&#248;r $1
log_modify_storage=Endret lagrings daemon $1
log_mount=Montert lagringsenhet $1
log_restart=Omstartet Bacula daemoner
log_start=Startet Bacula daemoner
log_stop=Stoppet Bacula daemoner
log_storagec=Lagret Bacula lagrings daemon konfigurasjon
log_sync=Lagret Bacula gruppesynkronisering
log_unmount=Avmonterte lagringsenhet $1
mount_done=.. montert ok.
mount_err=Kunne ikke montere lagringsenhet
mount_eslot=Manglende eller ugyldig slot-nummer
mount_failed=.. montering feilet! Sjekk feilmeldingen ovenfor for evt. &#229;rsaker til dette.
mount_header=Innstillinger for montering eller demontering av lagring
mount_mount=Monter lagring
mount_noslot=Ingen
mount_return=monteringsskjema
mount_run=Monterer volum p&#229; lagringsenhet $1 ..
mount_slot=Auto-loader slot
mount_slotno=Slot nummer
mount_storage=Lagringsenhet
mount_title=Monter eller avmonter
mount_unmount=Avmonter lagring
pool_any=Backup til et hvilket som helst volum i samling?
pool_auto=T&#248;m utl&#248;pte volumer?
pool_autolabel=Prefiks for automatisk volum-merking
pool_echild=Denne klienten kan ikke slettes siden den brukes av $1
pool_eclash=En lagringsenhet med samme navn finnes allerede
pool_egone=Volumsamling finnes ikke lenger
pool_emax=Manglende eller ugyldig antall jobber per volum
pool_ename=Manglende navn p&#229; lagringsenhet
pool_ereten=Manglende eller ugyldig oppbevaringsperiode
pool_err=Kunne ikke lagre lagringsenhet
pool_header=Detaljer for backup volumsamling
pool_max=Maksimum jobber per volum
pool_maxvolsize=Maks. volumst&#248;rrelse (f.eks 5G for 5 Gigabytes)
pool_name=Volumsamling navn
pool_recycle=Resirkuler volumer automatisk?
pool_reten=Volum oppbevaringsperiode
pool_status=Vis volumer
pool_title1=Opprett volumsamling
pool_title2=Rediger volumsamling
pool_type=Volumsamling type
pool_unlimited=Ubegrenset
pools_add=Legg til ny volumsamling.
pools_delete=Slett valgte volumsamlinger
pools_derr=Kunne ikke slette volumsamlinger
pools_name=Samling navn
pools_none=Ingen volumsamlinger er definert enda.
pools_reten=Oppbevaringsperiode
pools_return=liste over volumsamlinger
pools_title=Volumsamlinger
pools_type=Samling-type
poolstatus_bytes=Bytes skrevet
poolstatus_delete=Slett valgte volumer
poolstatus_first=F&#248;rst brukt
poolstatus_last=Sist brukt
poolstatus_name=Volumnavn
poolstatus_never=Aldri
poolstatus_none=Det er for &#248;yeblikket ingen volumer i denne backup-samlingen.
poolstatus_ok=OK
poolstatus_show=Vis volumer i samling:
poolstatus_status=Backup modus
poolstatus_title=Volumer i samling
poolstatus_type=Mediatype
poolstatus_volumes=Volumer i valgt samling.
proc_bacula-dir=Bacula regiss&#248;r daemon
proc_bacula-fd=Fil daemon
proc_bacula-sd=Lagrings daemon
proc_bareos-dir=Backula regiss&#248;r daemon
proc_bareos-fd=Fil daemon
proc_bareos-sd=Lagrings daemon
restart_err=Kunne ikke omstarte Bacula
restore_all=--Alle klienter i gruppe--
restore_client=Gjenopprett til klient eller gruppe
restore_clist=--Klienter--
restore_done=.. gjenoppretting fullf&#248;rt.
restore_eall1=Du m&#229; velge <b>Alle klienter i backup</b> for <b>Gjenopprett til klient eller gruppe</b> n&#229;r du utf&#248;rer en Bacula gruppejobb gjenoppretting
restore_eall2=<b>Alle klienter i backup</b> kan bare velges for <b>Gjenopprett til klient eller gruppe</b> n&#229;r du utf&#248;rer en Bacula gruppejobb gjenoppretting
restore_eclient=Ingen klient eller Bacula gruppe valgt
restore_eclients=Fant ingen medlemmer av Bacula gruppe backup!
restore_efiles=Ingen filer angitt
restore_egroup=Bacula gruppe finnes ikke
restore_ejob=Ugyldig jobb ID
restore_ejobfiles=Ingen filer loggf&#248;rt for jobb
restore_enofiles=Ingen av de valgte filene finnes i backup
restore_eok=.. jobb kunne ikke startes
restore_err=Kunne ikke gjenopprette sikkerhetskopi
restore_ewhere=Manglende katalog &#229; gjenopprette til
restore_failed=.. gjenoppretting ble ikke fullf&#248;rt ordentlig. Sjekk feilmeldingen ovenfor for ytterligere detaljer.
restore_files=Filer som skal gjenopprettes
restore_glist=--Bacula grupper--
restore_header=Innstillinger for gjenoppretting av tidligere backup jobber
restore_jlist=--Enkle systemjobber--
restore_job=Jobb som skan gjenopprettes
restore_level_D=Differensiell
restore_level_F=Full
restore_level_I=Inkrementell
restore_njlist=--Bacula gruppejobber--
restore_ok=Gjenopprett n&#229;
restore_return=gjennopprettingsskjema
restore_run=Starter gjenoppretting av jobb $1 til klient $2 fra lagring $3 ..
restore_running=.. gjenopprettingen kj&#248;rer n&#229;. N&#229;r den er fullf&#248;rt vil resultatene vises nedenfor ..
restore_running2=.. gjenopprettingen er startet i bakgrunnen.
restore_storage=Gjenopprett fra lagringsenhet
restore_title=Gjenopprett sikkerhetskopi
restore_title2=Gjenopprett backup til Bacula gruppe
restore_title3=Gjenopprett Bacula gruppe backup
restore_where=Gjenopprett til katalog
restore_where2=Annen rot-katalog
schedule_echild=Denne tidsplanen kan ikke slettes siden den brukes av $1
schedule_eclash=En tidsplan med samme navn finnes allerede
schedule_ename=Manglende eller ugyldig tidsplan-navn
schedule_err=Kunne ikke lagre backup-tidsplan
schedule_etimes=Manglende backup-tidspunkt i rad $1
schedule_header=Detaljer for backup-tidsplan
schedule_level=Backup niv&#229;
schedule_name=Backup-tidsplan navn
schedule_pool=Volum
schedule_runs=Kj&#248;reniv&#229; og tidspunkt
schedule_times=Kj&#248;rt p&#229; tidspunkt
schedule_title1=Opprett tidsplan for backup
schedule_title2=Rediger tidsplan for backup
schedules_add=Legg til ny tidsplan for backup.
schedules_delete=Slett valgte tidsplaner
schedules_derr=Kunne ikke slette tidsplaner
schedules_name=Tidsplan navn
schedules_none=Ingen tidsplaner for backup er definert enda.
schedules_return=liste over tidsplaner
schedules_sched=Kj&#248;reniv&#229; og tidspunkt
schedules_title=Tidsplaner for backup
sdirector_eclash=En regiss&#248;r med samme navn finnes allerede
sdirector_egone=Regiss&#248;r finnes ikke lenger!
sdirector_ename=Mangler regiss&#248;r navn
sdirector_epass=Manglende passord
sdirector_err=Kunne ikke lagre lagrings-daemon regiss&#248;r
sdirector_header=Detaljer for kontrollerende ekstern regiss&#248;r
sdirector_monitor=Tillat bare overv&#229;kings-tilkobling?
sdirector_name=Regiss&#248;r navn
sdirector_pass=Akseptert passord
sdirector_title1=Opprett lagrings-daemon regiss&#248;r
sdirector_title2=Rediger Lagrings-daemon regiss&#248;r
sdirectors_add=Legg til ny regiss&#248;r.
sdirectors_delete=Slett valgte regiss&#248;rer
sdirectors_derr=Kunne ikke slette regiss&#248;rer
sdirectors_name=Regiss&#248;r navn
sdirectors_none=Ingen regiss&#248;rer er definert enda.
sdirectors_pass=Akseptert passord
sdirectors_return=liste over regiss&#248;rer
sdirectors_title=Lagrings daemon regiss&#248;rer
start_einit=Fant ikke noe init script for $1
start_err=Kunne ikke starte Bacula
start_erun=Kunne ikke starte $1 : $2
stop_err=Kunne ikke stoppe Bacula
storage_address=Vertsnavn eller IP adresse
storage_device=Lagringsenhet navn
storage_eaddress=Manglende eller ugyldig vertsnavn eller adresse
storage_echild=Denne klienten kan ikke slette siden den brukes av $1
storage_eclash=En lagrings-daemon med samme navn finnes allerede
storage_edevice=Mangler lagringsenhet navn
storage_egone=Lagrings-daemon finnes ikke lenger!
storage_emaxjobs=Mangler maks samtidige jobber
storage_emedia=Mangler mediatype navn
storage_ename=Mangler lagrings-daemon navn
storage_epass=Mangler passord
storage_eport=Manglende eller ugyldig SD port
storage_err=Kunne ikke lagre lagrings-daemon
storage_header=Detaljer for ekstern lagrings-daemon
storage_maxjobs=Maks. samtidige jobber
storage_media=Mediatype navn
storage_name=Lagringsdaemon navn
storage_other=Annen..
storage_pass=Bacula SD passord
storage_port=Bacula SD port
storage_status=Vis status
storage_title1=Opprett lagringsdaemon
storage_title2=Rediger lagringsdaemon
storagec_dir=Bacula arbeidskatalog
storagec_edir=Manglende eller ikke-eksisterende arbeidskatalog
storagec_ejobs=Manglende eller ugyldig antall samtidige jobber
storagec_ename=Manglende eller ugyldig lagrinsgs-daemon navn
storagec_enone=Ingen lagringsdaemon-konfigurasjon funnet!
storagec_eport=Manglende eller ugyldig portnummer
storagec_err=Kunne ikke lagre lagrings-daemon konfigurasjon
storagec_header=Innstillinger for Bacula lagringsdaemon
storagec_jobs=Maks. antall samtidige jobber
storagec_name=Daemon navn
storagec_port=Lytt p&#229; port
storagec_title=Lagrings-daemon konfigurasjon
storages_add=Legg til ny lagrings daemon.
storages_address=Vertsnavn eller adresse
storages_delete=Slett valgte lagringsdaemoner
storages_derr=Kunne ikke slette lagrings-daemoner
storages_device=Lagringsenhet
storages_name=Lager navn
storages_none=Ingen lagrings-daemoner er definert enda.
storages_return=liste med lagrings-daemoner
storages_title=Lagrings-daemoner
storages_type=Media type
storagestatus_err=Kunne ikke hente status fra $1 : $2
storagestatus_msg=Status fra $1 : $2
storagestatus_ok=OK
storagestatus_show=Vis status for lagrings-daemon
storagestatus_title=Lagrings-daemon status
sync_err=Kunne ikke lagre Bacula gruppe synkronisering
sync_header=Innstillinger for automatisk synkronisering av Bacula gruppe klient
sync_sched=Synkroniser ihht. tidsplan?
sync_schedyes=Ja, p&#229; tidspunklt valgt nedenfor ..
sync_title=Bacula gruppe-synkronisering
tls_cacert=TLS PEM sertifikatautoritet fil
tls_cert=TLS PEM sertifikatfil
tls_ecacert=Manglende eller ikke-eksisterende TLS CA sertifikat-fil
tls_ecert=Manglende eller ikke-eksisterende TLS sertifikat fil
tls_ecerts=For at TLS skal kunne aktiveres m&#229; du angi sertifikat-, n&#248;kkel- og CA-filer
tls_ekey=Manglende eller ikke-eksisterende TLS n&#248;kkel-fil
tls_enable=Aktiver TLS kryptering?
tls_key=TLS PEM n&#248;kkelfil
tls_none=Ingen
tls_require=Godta bare TLS tilkoblinger?
tls_verify=Verifiser TLS klienter?
unmount_done=.. av-montert!
unmount_failed=.. av-montering feilet! Sjekk feilmeldingen ovenfor for mer informasjon.
unmount_run=Avmonterer volum p&#229; lagringsenhet $1 ..
weekdaynum_1=F&#248;rste
weekdaynum_2=Andre
weekdaynum_3=Tredje
weekdaynum_4=Fjerde
weekdaynum_5=Femte

View File

@@ -198,6 +198,7 @@ fileset_gzip=Poziom Gzip $1
fileset_gzipdef=&lt;Domyślny poziom kompresji&gt;
fileset_header=Szczegóły zestawu plików kopii zapasowej
fileset_include=Pliki i katalogi do skopiowania
fileset_lzo=Kompresja LZO
fileset_md5=MD5
fileset_name=Nazwa zestawu plików
fileset_none=Brak
@@ -282,7 +283,8 @@ index_status=Status proces
index_stop=Zatrzymaj Bacula
index_stopdesc=Kliknij ten przycisk, aby zamknąć usługę Bacula.
index_up=Włączona
index_version=Bacula $1
index_versionbacula=Bacula $1
index_versionbareos=Bareos $1
job_after=Komenda po wykonaniu zadania
job_before=Komenda przed wykonaniem zadania
job_cafter=Komenda po wykonaniu zadania (na kliencie)
@@ -456,6 +458,9 @@ poolstatus_volumes=Wolumeny w wybranej puli
proc_bacula-dir=Usługa Menedżera Bacula
proc_bacula-fd=Usługa pliku
proc_bacula-sd=Usługa magazynu
proc_bareos-dir=Daemon zarządcy (Director) Bacula
proc_bareos-fd=Plik daemon
proc_bareos-sd=Demon magazynowania Bacula
restart_err=Błąd restartowania Bacula
restore_all=--Wszyscy klienci w grupie--
restore_client=Przywróć na klienta lub grupę

View File

@@ -5,9 +5,11 @@ longdesc=Configure Bacula to perform backups and restores manually or on schedul
desc_ca=Sistema de Còpies de Seguretat Bacula
desc_nl=Bacula Backup Systeem
desc_de=Bacula Backup System
desc_pl=System kopii zapasowej Bacula
desc_pl=Bacula - system kopii zapasowej
desc_pl.UTF-8=System kopii zapasowej Bacula
desc_ru=СиÑ<C2B8>Ñема резервного копированиÑ<C2B8> Bacula
desc_ms_MY=Sistem backup Bacula
longdesc_ms_MY=Konfigurasi Bacula untuk melaksanakan salinan dan mengembalikan secara manual atau mengikut jadual, untuk satu atau banyak sistem.
longdesc_de=Konfiguriert Bacula um Sicherungen zu erstellen und manuell wiederherzustellen oder nach Plan, f&#252;r eine oder viele Systeme.
longdesc_de=Konfiguriert Bacula um Sicherungen zu erstellen und manuell oder nach Plan wiederherzustellen, f&#252;r eine oder viele Systeme.
longdesc_pl=Skonfiguruj Bacula do przeprowadzania kopii zapasowej i przywracania rêcznie lub wed³ug harmonogramu na jednym lub wielu systemach.
desc_no=Bacula backupsystem

View File

@@ -116,7 +116,8 @@ foreach $clientjob (@clients) {
}
}
&sysprint($h->{'infh'}, "done\n");
$rv = &wait_for($h->{'outfh'}, 'OK to run.*:', 'no files selected');
$rv = &wait_for($h->{'outfh'}, 'OK to run.*:', 'no files selected',
'Select Restore Job.*:');
print $wait_for_input;
if ($rv == 0) {
&sysprint($h->{'infh'}, "yes\n");
@@ -124,6 +125,11 @@ foreach $clientjob (@clients) {
elsif ($rv == 1) {
&job_error($text{'restore_enofiles'});
}
elsif ($rv == 2) {
&sysprint($h->{'infh'}, "1\n");
&wait_for($h->{'outfh'}, 'OK to run.*:');
&sysprint($h->{'infh'}, "yes\n");
}
else {
&job_error($text{'backup_eok'});
}

View File

@@ -18,3 +18,4 @@ desc_hu.UTF-8=Forgalmi monitor
desc_no=Overv&#229;king av b&#229;ndbredde
longdesc_ms_MY=Lihat laporan mengenai penggunaan jalur lebar oleh host, port, protokol dan masa pada sistem Linux.
desc_ms_MY=Pemantauan jalur lebar
longdesc_pl=Raporty na temat wykorzystania transferu przez host, port, protokó³ w okre¶lonym czasie.

View File

@@ -144,3 +144,5 @@ Slave zone files in raw format can now be displayed by Webmin.
Added support for NSEC3PARAM records.
---- Changes since 1.730 ----
Added support for editing DMARC records, which are specially encoded TXT records for defining the response to SPF and DKIM violations.
---- Changes since 1.770 ----
Automatic creation and deletion of reverse records in partial delegation zones now works the same as in full reverse zones.

View File

@@ -224,7 +224,7 @@ elsif ($in{'zones_def'} == 2) {
else {
$_[0]->{'zones'} = join(" ", split(/\0/, $in{'zones'}));
}
$_[0]->{'inviews'} = $in{'inviews_def'} ? "*" :
$_[0]->{'inviews'} = !defined($in{'inviews'}) || $in{'inviews_def'} ? "*" :
join(" ", split(/\0/, $in{'inviews'}));
$_[0]->{'types'} = $in{'types_def'} ? undef : $in{'types'};
$_[0]->{'master'} = $in{'master'} || 0;

View File

@@ -11,6 +11,7 @@ if ($have_dnssec_tools) {
use Net::DNS::SEC::Tools::rollmgr;
use Net::DNS::SEC::Tools::rollrec;
use Net::DNS::SEC::Tools::keyrec;
use Net::DNS::RR::DS;
use Net::DNS;";
}
@@ -767,8 +768,11 @@ else {
: &ip_to_arpa(join('.', @octs[0..$i]));
$rev =~ s/\.$//g;
foreach $z (@zl) {
if ((lc($z->{'name'}) eq $rev ||
lc($z->{'name'}) eq "$rev.") &&
# Strip off prefix for partial reverse delegation
my $zname = $z->{'name'};
$zname =~ s/^(\d+)\/(\d+)\.//;
if ((lc($zname) eq $rev ||
lc($zname) eq "$rev.") &&
$z->{'type'} eq "master") {
# found the reverse master domain
$revconf = $z;
@@ -782,12 +786,7 @@ else {
if ($revconf) {
$revfile = &absolute_path($revconf->{'file'});
@revrecs = &read_zone_file($revfile, $revconf->{'name'});
if ($ipv6) {
$addr = &net_to_ip6int($_[0], 128);
}
else {
$addr = &ip_to_arpa($_[0]);
}
$addr = &make_reverse_name($_[0], $ipv6 ? "AAAA" : "A", $revconf, 128);
foreach $rr (@revrecs) {
if ($rr->{'type'} eq "PTR" &&
lc($rr->{'name'}) eq lc($addr)) {
@@ -847,6 +846,26 @@ if ($fwdconf) {
return ($fwdconf, $fwdfile, $fwdrec);
}
# make_reverse_name(ip, type, &reverse-zone, ipv6-bits)
# Returns the reverse record name for an IP
sub make_reverse_name
{
local ($ip, $type, $revconf, $bits) = @_;
if ($type eq "A") {
my $arpa = &ip_to_arpa($ip);
if ($revconf->{'name'} =~ /^(\d+)\/(\d+)\.(.*)/) {
# Partial reverse delegation zone - last octet is actually
# inside it
my @arpa = split(/\./, $arpa);
return $arpa[0].".".$revconf->{'name'}.".";
}
return $arpa;
}
else {
return &net_to_ip6int($ip, $bits);
}
}
# can_edit_zone(&zone, [&view] | &cachedzone)
# Returns 1 if some zone can be edited
sub can_edit_zone
@@ -880,7 +899,7 @@ else {
# List of allowed zones
local $ok;
foreach my $z (split(/\s+/, $access{'zones'})) {
$ok++ if ($z eq $zn || ($vn && $z eq $vn));
$ok++ if ($z eq $zn || ($vn && $z eq "view_".$vn));
}
return 0 if (!$ok);
}
@@ -1356,7 +1375,7 @@ if ($v =~ /^([^.]+)\@(.*)$/) {
elsif ($v =~ /^(.*)\@(.*)$/) {
local ($u, $d) = ($1, $2);
$u =~ s/\./\\\./g;
return "\"$u.$d.\"";
return "$u.$d.";
}
else {
return $v;
@@ -2518,11 +2537,14 @@ if ($add_slaves) {
if ($add_tmpl) {
# Create template records
local %bumped;
local %hash = ( 'ip' => $ip,
'dom' => $zone );
for(my $i=0; $config{"tmpl_$i"}; $i++) {
local @c = split(/\s+/, $config{"tmpl_$i"}, 3);
local $name = $c[0] eq '.' ? "$zone." : $c[0];
local $fullname = $name =~ /\.$/ ? $name : "$name.$zone.";
local $recip = $c[2] || $ip;
$recip = &substitute_template($recip, \%hash);
&create_record($file, $name, undef, "IN", $c[1], $recip);
if ($addrev && ($c[1] eq "A" || $c[1] eq "AAAA")) {
# Consider adding reverse record
@@ -2550,8 +2572,6 @@ if ($add_tmpl) {
if ($config{'tmpl_include'}) {
# Add whatever is in the template file
local $tmpl = &read_file_contents($config{'tmpl_include'});
local %hash = ( 'ip' => $ip,
'dom' => $zone );
$tmpl = &substitute_template($tmpl, \%hash);
&open_tempfile(FILE, ">>".&make_chroot($file));
&print_tempfile(FILE, $tmpl);
@@ -2615,12 +2635,13 @@ $format =~ s/ZONE/$subs/g;
return $file = $base."/".$format;
}
# create_on_slaves(zone, master-ip, file, [&hostnames], [local-view])
# create_on_slaves(zone, master-ip, file, [&hostnames], [local-view],
# [&extra-slave-ips])
# Creates the given zone on all configured slave servers, and returns a list
# of errors
sub create_on_slaves
{
local ($zone, $master, $file, $hosts, $localview) = @_;
local ($zone, $master, $file, $hosts, $localview, $moreslaves) = @_;
local %on = map { $_, 1 } @$hosts;
&remote_error_setup(\&slave_error_handler);
local $slave;
@@ -2646,6 +2667,9 @@ foreach $slave (@slaves) {
grep { $_ ne $slave } @slaves;
}
push(@otherslaves, split(/\s+/, $config{'extra_slaves'}));
if ($moreslaves) {
push(@otherslaves, @$moreslaves);
}
# Work out the view
my $view;
@@ -3966,19 +3990,32 @@ sub get_ds_record
{
my ($zone) = @_;
my $zonefile;
my $dom;
if ($zone->{'values'}) {
# Zone object
local $f = &find("file", $zone->{'members'});
my $f = &find("file", $zone->{'members'});
$zonefile = $f->{'values'}->[0];
$dom = $zone->{'values'}->[0];
}
else {
# Zone name object
$zonefile = $zone->{'file'};
$dom = $zone->{'name'};
}
if (&has_command("dnssec-dsfromkey")) {
# Generate with a command
my $out = &backquote_command("dnssec-dsfromkey -f ".quotemeta(&make_chroot(&absolute_path($zonefile)))." ".quotemeta($dom)." 2>/dev/null");
return undef if ($?);
$out =~ s/\r|\n//g;
return $out;
}
else {
# From dsset- file
my $keydir = &get_keys_dir($zone);
my $out = &read_file_contents($keydir."/dsset-".$dom.".");
$out =~ s/\r|\n$//g;
return $out;
}
my $out = &backquote_command("dnssec-dsfromkey -f ".quotemeta(&make_chroot(&absolute_path($zonefile)))." ZONE 2>/dev/null");
return undef if ($?);
$out =~ s/\r|\n//g;
return $out;
}
1;

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