Compare commits

..

445 Commits
1.770 ... 1.801

Author SHA1 Message Date
Jamie Cameron
3fe4bc337a Fix text name 2016-05-26 11:33:35 -07:00
Jamie Cameron
320d63ba2a version bump 2016-05-26 10:49:03 -07:00
Jamie Cameron
4d79a24158 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-26 07:44:12 -07:00
Jamie Cameron
a53b6d96ca On some systems, there is no set_tlsext_host_name function 2016-05-26 07:42:22 -07:00
Jamie Cameron
b0c779923f Merge branch 'master' of github.com:webmin/webmin 2016-05-26 01:09:31 +02:00
Jamie Cameron
a0bd54ab69 version bump 2016-05-25 15:17:37 -07:00
Jamie Cameron
f32aa17317 More perl strict enforcement 2016-05-26 00:02:59 +02:00
Jamie Cameron
24cca0d258 strict conversion 2016-05-25 23:38:35 +02:00
Jamie Cameron
52af4d489a Button to clone a group 2016-05-25 23:14:00 +02:00
Jamie Cameron
262bbd3e03 Clone user UI 2016-05-25 19:15:40 +02: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
1372 changed files with 91183 additions and 5668 deletions

View File

@@ -228,3 +228,5 @@ 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.770
Webmin Version 1.801
--------------------
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;

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

@@ -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=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

@@ -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 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

@@ -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

@@ -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
@@ -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;
@@ -3980,7 +4004,7 @@ else {
}
if (&has_command("dnssec-dsfromkey")) {
# Generate with a command
my $out = &backquote_command("dnssec-dsfromkey -f ".quotemeta(&make_chroot(&absolute_path($zonefile)))." ZONE 2>/dev/null");
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;

View File

@@ -60,12 +60,14 @@ print &ui_table_hr();
#ksklife; dt_ksklife
$ksklife = find_value("ksklife", $conf);
print &ui_table_row($text{'dt_conf_ksklife'},
ui_textbox("dt_ksklife", $ksklife, 50));
ui_textbox("dt_ksklife", $ksklife, 50)." ".
$text{'dnssec_secs'});
#zsklife; dt_zsklife
$zsklife = find_value("zsklife", $conf);
print &ui_table_row($text{'dt_conf_zsklife'},
ui_textbox("dt_zsklife", $zsklife, 50));
ui_textbox("dt_zsklife", $zsklife, 50)." ".
$text{'dnssec_secs'});
print &ui_table_hr();

View File

@@ -16,7 +16,7 @@ rev_def=Reverse&#45;Update ist,1,0-An gem&#228;&#223; Standard,1-Aus gem&#228;&#
rev_must=Eine Reverse&#45;Zone muss existieren?,1,1-Ja,0-Nein
support_aaaa=DNS-Unterst&#252;tzung f&#252;r IPv6&#45;Adressen,1,0-Nein,1-Ja
allow_comments=Erlaube Kommentare zu Datens&#228;tzen,1,1-Ja,0-Nein
allow_wild=Erlaube Wildcards,1,1-Ja,0-Nein
allow_wild=Erlaube Wildcards?,1,1-Ja,0-Nein
allow_underscore=Erlaube Unterstriche in Record&#45;Namen?,1,1-Ja,0-Nein
short_names=Konvertiere Record&#45;Namen in Kanonische Form?,1,0-Ja,1-Nein
extra_forward=Extra Eintragungen f&#252;r Forward&#45;Zonen,0

View File

@@ -50,8 +50,7 @@ else {
if ($orevrec && &can_edit_reverse($orevconf) &&
$fulloldname eq $orevrec->{'values'}->[0] &&
($r->{'type'} eq "A" &&
$r->{'values'}->[0] eq &arpa_to_ip($orevrec->{'name'}) ||
($r->{'type'} eq "A" ||
$r->{'type'} eq "AAAA" &&
&expandall_ip6($r->{'values'}->[0]) eq &expandall_ip6(&ip6int_to_net($orevrec->{'name'})))) {
&lock_file(&make_chroot($orevrec->{'file'}));

View File

@@ -52,7 +52,7 @@ if (@keyrecs) {
$ds = &get_ds_record($zone);
if ($ds) {
print $text{'zonekey_ds'},"<br>\n";
print &ui_textarea("ds", $ds, 2, 80, "off", 0,
print &ui_textarea("ds", $ds."\n", 2, 80, "off", 0,
"readonly style='width:90%'"),"<br>\n";
}

View File

@@ -1,7 +1,7 @@
__norefs=1
acl_apply=Darf &#196;nderungen wirksam machen?
acl_apply=Darf stoppen, starten und anwenden?
acl_applygonly=Nur Konfiguration anwenden
acl_applyonly=Nur f&#252;r Zone
acl_applyonly=Nur f&#252;r Zone anwenden
acl_defaults=Darf globale Einstellungen bearbeiten?
acl_delete=Darf Zonen l&#246;schen?
acl_dir=Beschr&#228;nke neue Zonendateien auf Verzeichnis
@@ -58,12 +58,12 @@ add_emyip=Konnte die IP-Adresse des Systems nicht ermitteln. Sie sollten die <b>
add_ename=Fehlender oder ung&#252;ltiger NS-Record-Name
add_err=Konnte Server nicht hinzuf&#252;gen
add_eversion=Auf dem Server $1 l&#228;uft nicht die Webmin-Version $2 oder h&#246;her.
add_eversion2=Auf Server $1 l&#228;uft nichhht Webmin Version $2 oder h&#246;her. Dies wird jedoch ben&#246;tigt um Zonen zu mehr als einer Ansicht hinzuzuf&#252;gen.
add_eversion2=Auf Server $1 l&#228;uft nicht Webmin Version $2 oder h&#246;her. Dies wird jedoch ben&#246;tigt um Zonen zu mehr als einer Ansicht hinzuzuf&#252;gen.
add_eview=Fehlender oder ung&#252;ltiger Ansichtenname
add_gerr=Konnte Gruppe nicht hinzuf&#252;gen
add_gmsg=F&#252;ge Server in Gruppe $1 hinzu ..
add_msg=Einf&#252;gen von $1 ..
add_ok=Hinzugef&#252;gt $1, mit $2 existenten Zonen.
add_ok=$1, mit $2 existenten Zonen, hinzugef&#252;gt.
add_title=Server hinzuf&#252;gen
boot_egzip=Die Root-Zonendatei ist komprimiert, aber <tt>gzip</tt> ist nicht auf Ihrem System installiert!
boot_egzip2=Dekomprimierung der Root-Zonendatei fehlgeschlagen : $1
@@ -84,8 +84,8 @@ controls_einetport=Fehlende oder ung&#252;ltige Port-Nummer
controls_eip='$1' ist keine g&#252;ltige IP-Adresse
controls_eowner=Fehlende oder ung&#252;ltige Besitzer UID
controls_eperms=Fehlende oder falsche Zugriffsrechte auf die FIFO Datei
controls_eport=Fehlende oder falsche Portnummer
controls_err=Fehler beim Abspeichern der Interface-Einstellungen
controls_eport=Fehlende oder ung&#252;ltige Portnummer
controls_err=Fehler beim Abspeichern der Schnittstellen-Einstellungen
controls_eunixgroup=Fehlende oder ung&#252;ltige Dateigruppe
controls_eunixowner=Fehlender oder ung&#252;ltiger Dateieigent&#252;mer
controls_eunixpath=Fehlender oder ung&#252;ltiger FIFO-Dateipfad
@@ -149,6 +149,7 @@ dnssec_eperiod=Fehlende oder ung&#252;ltige Anzahl der Tage zwischen erneutem si
dnssec_err=Fehlgeschlagen DNSSEC Schl&#252;ssel erneut zu signieren
dnssec_header=Schl&#252;ssel 'erneut-signieren' Optionen
dnssec_period=Periode zwischen erneut signieren?
dnssec_secs=Sekunden
dnssec_title=DNSSEC Schl&#252;ssel erneut signieren
dnssectools_title=DNSSEC-Tools Automation
drecs_enone=Keine ausgew&#228;hlt
@@ -272,6 +273,7 @@ edit_err=Fehler beim Speichern des Datensatzes
edit_eserv=Sie haben keinen bekannten Dienst eingetragen
edit_eserv2='$1' ist kein g&#252;ltiger Dienstname
edit_espfa='$1' ist kein g&#252;ltiger Host um den Versand zu erlauben
edit_espfa2='$1' muss ein Hostname sein, keine IP-Adresse
edit_espfexp='$1' ist ein g&#252;ltiger Aufnahmenamen f&#252;r eine Zur&#252;ckweisungsnachricht
edit_espfinclude='$1' ist keine g&#252;ltige zus&#228;tzliche Domain von der E-Mail versandt wird
edit_espfip='$1' ist keine g&#252;ltige IP-Adresse oder IP/Netzmaske um den Versand zu erlauben
@@ -298,7 +300,7 @@ edit_zonename=Zonen-Name
efirst=Ung&#252;ltige erste Direktive in Zeile $1 in $2
eip='$1' ist keine g&#252;ltige IP-Adresse
eipacl='$1' ist keine g&#252;ltige IP-Adresse oder ACL-Name
emass_emx='$1' ist keine Mailserver-Priorrit&#228;tsnummer gefolgt von einem g&#252;ltigem Hostnamen
emass_emx='$1' ist keine Mailserver-Priorit&#228;tsnummer gefolgt von einem g&#252;ltigem Hostnamen
eport='$1' ist keine g&#252;ltige Port-Nummer
fail=Fehler
fcreate_dom=Domainname / Netzwerk

View File

@@ -286,6 +286,7 @@ edit_rusure=Are you sure you want to delete the record $1 from domain $2, and po
edit_dok=Yes, Delete It
edit_eptr='$1' is not a valid reverse address record hostname
edit_espfa='$1' is not a valid host to allow sending from
edit_espfa2='$1' must be a hostname, not an IP address
edit_espfmx='$1' is not a valid domain name to allow MX sending from
edit_espfmxmax=You are not allowed to have more than 10 domains to allow MX sending from
edit_espfip='$1' is not a valid IP address or IP/prefix to allow sending from
@@ -1097,6 +1098,7 @@ dnssec_header=Key re-signing options
dnssec_enabled=Automatic key re-signing enabled?
dnssec_period=Period between re-signs?
dnssec_days=days
dnssec_secs=seconds
dnssec_desc=Zones signed with DNSSEC typically have two keys - a zone key which must be re-generated and signed regularly, and a key signing key which remains constant. This page allows you to configure Webmin to perform this re-signing automatically.
dnssec_err=Failed to save DNSSEC key re-signing
dnssec_eperiod=Missing or invalid number of days between re-signs

View File

@@ -13,6 +13,7 @@ acl_findfree=Kan s&#248;k etter ledige IP adresser?
acl_forward=Kan opprette videresendings-soner?
acl_gen=Kan redigere oppf&#248;rings-generatorer?
acl_inview=Soner i visning &lt;$1&gt;
acl_inviews=Visninger denne brukeren kan redigere domener i
acl_master=Kan opprette master soner?
acl_multiple=Kan flere adresser ha samme IP?
acl_opts=Kan redigere sone-innstillinger?
@@ -22,6 +23,7 @@ acl_reverse=Kan oppdatere reverse adresser i alle domener?
acl_ro=Read-only tilgangsmodus?
acl_slave=Kan opprette slave/stub soner?
acl_slaves=Kan administrere klynge slave tjenere?
acl_toplevel=Utenfor en hver visning
acl_types=Tillatte oppf&#248;ringstyper
acl_types0=Bare listede
acl_types1=Alle
@@ -106,7 +108,10 @@ controls_unixopt=Tillat kontroll via Unix FIFO?
controls_unixowner=FIFO er eid av bruker
controls_unixperm=Tillatelser p&#229; FIFO
controls_unixyes=Ja, ved bruk av filen $1
convert_ebinary=Kommandoen som trenges for &#229; konvertere fra en bin&#230;r slave-sone til en tekst-format master er ikke installert
convert_ecompile=Bin&#230;r til tekst-format konvertering feilet : $1
convert_efile=En oppf&#248;ringsfil m&#229; angis f&#248;r du kan konvertere en slavesone til en master.
convert_efilesize=Oppf&#248;ringsfilen $1 finnes ikke eller den er tom
convert_err=Kunne ikke konvertere sone
create_edom='$1' er ikke et gyldig domenenavn
create_edom2='$1' m&#229; v&#230;re et domene, ikke et nettverk
@@ -219,6 +224,7 @@ dt_zone_zskrolldesc=Tving rollover av sonens sonesignerings n&#248;kkel
edit_A=Adresse
edit_AAAA=IPv6 adresse
edit_CNAME=Navn Alias
edit_DMARC=DMARC
edit_HINFO=Vertsinformasjon
edit_KEY=Offentlig n&#248;kkel
edit_LOC=Plassering
@@ -244,6 +250,9 @@ edit_ecname='$1' er ikke et gyldig alias m&#229;l
edit_ecname1=Du kan ikke opprette en navne-alias oppf&#248;ring med samme navn som en eksisterende oppf&#248;ring.
edit_ecname2=Du kan ikke opprette en oppf&#248;ring med samme navn som en eksisterende navne-alias oppf&#248;ring.
edit_edit=Rediger $1 oppf&#248;ring
edit_edmarcpct=Prosent av meldinger m&#229; v&#230;re et heltall mellom 0 og 100
edit_edmarcrua=Mangler adresse for aggregert feedback
edit_edmarcruf=Mangler adresse for "forensic" informasjon
edit_edupip=En adresseoppf&#248;ring for $1 finnes allerede
edit_eemail='$1' er ikke en gyldig e-post adresse
edit_eflags='$1' er ikke et gydig desimalt eller heksadesimalt n&#248;kkel-flagg nummer
@@ -260,6 +269,7 @@ edit_emx='$1' er ikke en gyldig e-post tjener
edit_ename='$1' er ikke et gyldig oppf&#248;ringsnavn
edit_ens='$1' er ikke en gyldig navnetjener
edit_ensec3value2=Manglende eller ikke-base64 salt
edit_ensec3value3=Mangler eller ikke-base64 salt
edit_eos=Manglende OS type
edit_eport='$1' er ikke et gyldig portnummer
edit_epri='$1' er ikke en gyldig prioritet
@@ -270,6 +280,7 @@ edit_err=Kunne ikke lagre oppf&#248;ring
edit_eserv=Du oppga ikke noen vekjente tjenester
edit_eserv2='$1' er ikke et gyldig tjenestenavn
edit_espfa='$1' er ikke en gyldig vert &#229; tillate sending fra
edit_espfa2='$1' m&#229; v&#230;re etvertsnavn, ikke en IP-adresse
edit_espfexp='$1' er ikke et gyldig oppf&#248;ringsnavn for en avvisningsmelding
edit_espfinclude='$' er ikke et gyldig ekstra domene som e-post kan sendes fra
edit_espfip='$1' er ikke en gyldig IP adresse eller IP/prefiks &#229; tillate sending fra
@@ -777,6 +788,7 @@ recs_A=Adresse
recs_AAAA=IPv6 adresse
recs_ALL=Alle
recs_CNAME=Navne-alias
recs_DMARC=DMARC
recs_HINFO=Vertsinformasjon
recs_KEY=Offenlig n&#248;kkel
recs_LOC=Plassering
@@ -977,6 +989,7 @@ type_A=Adresse
type_AAAA=IPv6 adresse
type_ALL=Alle oppf&#248;ringstyper
type_CNAME=Navne-alias
type_DMARC=DMARC
type_HINFO=Vertsinformasjon
type_KEY=Offentlig n&#248;kkel
type_LOC=Plassering
@@ -1009,6 +1022,7 @@ umass_type=Oppf&#248;ringstype som skal oppdateres
value_A1=Adresse
value_AAAA1=IPv6 adresse
value_CNAME1=Faktisk navn
value_DMARC1=DMARC spesifikasjon
value_HINFO1=Maskinvare
value_HINFO2=Operativsystem
value_KEY1=Flagg
@@ -1037,6 +1051,18 @@ value_WKS1=Adresse
value_WKS2=Protokoll
value_WKS3=Tjenester
value_delegated=Delegert sone
value_dmarcadkim=Krev streng DKIM justering
value_dmarcaspf=Krev streng SPF justering
value_dmarcnone=Ikke gj&#248;r noe
value_dmarcnop=Samme som dette domenet
value_dmarcnor=Ikke send
value_dmarcp=Policy for e-poster som feiler SPF eller DKIM
value_dmarcpct=Prosent av meldinger for &#229; ta i bruk policy
value_dmarcquar=Karantene e-post
value_dmarcreject=Avvis e-post
value_dmarcrua=Send aggregert feedback til
value_dmarcruf=Send "forensic" informasjon til
value_dmarcsp=Policy for underdomener
value_notdelegated=Annen sone
value_other=Verdier (en per linje)
value_spfa=Tillat sending fra domenets IP adresse?

View File

@@ -13,6 +13,7 @@ acl_findfree=Mo
acl_forward=Może tworzyć strefy pośredniczące?
acl_gen=Czy może edytować generatory rekordu?
acl_inview=Strefy w widoku &lt;$1&gt;
acl_inviews=Widoki na których użytkownik może edytować domeny
acl_master=Może tworzyć strefy podstawowe?
acl_multiple=Może tworzyć wiele nazw o tym samym IP?
acl_opts=Może modyfikować opcje stref?
@@ -22,6 +23,7 @@ acl_reverse=Mo
acl_ro=Tryb tylko do odczytu?
acl_slave=Może tworzyć strefy zapasowe/skrótowe?
acl_slaves=Czy może zarządzać klastrem serwerów zapasowych?
acl_toplevel=Poza dowolnym widoku
acl_types=Dozwolone rodzaje rekordów
acl_types0=Tylko te z listy
acl_types1=Wszystkie
@@ -106,7 +108,10 @@ controls_unixopt=Pozwoli
controls_unixowner=Właścicielem FIFO jest użytkownik
controls_unixperm=Uprawnienia FIFO
controls_unixyes=Tak, użyj pliku $1
convert_ebinary=Polecenie potrzebne do konwersji z binarnej strefy slave do formatu tekstowego master nie jest zainstalwoane
convert_ecompile=Konwersja z formatu binarnego to tekstowego nie powiodła się : $1
convert_efile=Musisz określić plik strefy zanim będzie można zamienić strefę zapasową na podstawową.
convert_efilesize=Plik rekordów $1 nie istnieje lub jest pusty
convert_err=Błąd konwertowania strefy
create_edom='$1' nie jest poprawną nazwą domeny
create_edom2='$1' musi być domeną a nie siecią
@@ -169,9 +174,14 @@ dt_conf_ezsklen=Brak lub nieprawid
dt_conf_ezsklife=Brakujący lub nieprawidłowy ZSK rollover interval
dt_conf_header=Parametry DNSSEC
dt_conf_ksklength=Klucz podpisu Klucz długości
dt_conf_ksklife=Interwał KSK Rollover
dt_conf_nsec3=Użyć NSEC3 (tak/nie)?
dt_conf_title=DNSSEC-Narzędzia automatyzacji
dt_conf_zsklength=Długość klucza podpisywanej strefy
dt_conf_zsklife=Interwał ZSK Rollover
dt_enable_title=DNSSEC-Narzędzia automatyzacji
dt_status_inKSKroll=W KSK Roll
dt_status_inZSKroll=W ZSK Roll
dt_status_signed=Podpisano
dt_status_unsigned=Niepodpisano
dt_status_waitfords=Czekanie na DS
@@ -181,21 +191,44 @@ dt_zone_deleting_state=Usuwanie wszystkich stan
dt_zone_desc=Dla tej strefy DNSSEC nie jest jeszcze włączony. Możesz użyć tego formularza, aby Webmin automatycznie użył DNSSEC-Narzędzia, aby strefa była dodatkowo chroniona przed atakami typu DNS spoofing.
dt_zone_disable=Wyłącz DNSSEC
dt_zone_disabledesc=Usuwa tę strefę z listy stref zarządzanych przez DNSSEC-Narzędzia.
dt_zone_dne=Uwierzytelniony Denial of Existence
dt_zone_done=... gotowe
dt_zone_dssep=Rekord DS :
dt_zone_edne=Błąd uwierzytelniania mechanizmu odmowy
dt_zone_enable=DNSSEC Automatyzacja
dt_zone_enocmd=dnssec-tools nie jest zainstalowany lub polecenie nie zostało znalezione
dt_zone_enokey=Nie można odnaleźć wymaganych kluczy dla strefy $1
dt_zone_erollctl=Nie udało się powiadomić menadżera rollover o zdarzeniu rollover
dt_zone_err=Operacja DNSSEC nie powiodła się
dt_zone_errfopen=Nie można otworzyć pliku systemowego rollrec do zapisu
dt_zone_expandsep=Wyświetl aktualne szczegóły KSK i DS
dt_zone_header=Opcje strefy DNSSEC-Tools
dt_zone_keyrollon=Klucz Rollover w toku
dt_zone_ksknotify=Wznów KSK Roll
dt_zone_ksknotifydesc=Wznowienie KSK rollover. Operator musi potwierdzić, że nowe DS ustawione dla stref KSK zostały opublikowane przez nadrzędną strefę
dt_zone_kskroll=Roll KSK
dt_zone_ksksep=Record KSK :
dt_zone_migrate=Migracja do DNSSEC-Tools
dt_zone_migratedesc=Importuje aktualny zestaw kluczy do DNSSEC-Tools i zautomatyzuj przyszłe operacje na kluczach rollover DNSSEC.
dt_zone_resign=Ponowne podpisanie strefy
dt_zone_resigndesc=Użyj aktualnego klucza, aby natychmiast ponownie podpisać strefę
dt_zone_rollerdrst=Uruchom Rollerd
dt_zone_rollerdrstdesc=Uruchom daemon Rollerd
dt_zone_rrf_updating=Aktualizowanie wpisu rollrec dla strefy $1 ...
dt_zone_signing=Podpisywanie strefy $1 ...
dt_zone_title=Zarządzanie operacjami DNSSEC dla strefy
dt_zone_zoneupdate=Aktualizowanie rekordów w strefie $1 ...
dt_zone_zskroll=Roll ZSK
edit_A=Adres
edit_AAAA=Adres IPv6
edit_CNAME=Alias nazwy
edit_DMARC=DMARC
edit_HINFO=Informacje o hoście
edit_KEY=Klucz publiczny
edit_LOC=Lokalizacja
edit_MX=Serwer pocztowy
edit_NS=Serwer DNS
edit_NSEC3PARAM=Parametry DNSSEC
edit_PTR=Adres odwrotny
edit_RP=Osoba odpowiedzialna
edit_SPF=Uprawnienia wysyłającego z (SPF)
@@ -215,10 +248,13 @@ edit_ecname='$1' nie jest poprawnym celem dla aliasu
edit_ecname1=Nie można tworzyć rekordów typu alias nazwy o tej samej nazwie, co rekord istniejący.
edit_ecname2=Nie można tworzyć rekordów o tej samej nazwie, co istniejący rekord typu alias nazwy.
edit_edit=Edytuj rekord $1
edit_edmarcpct=Procent wiadomości musi być liczbą całkowitą pomiędzy 0,a 100
edit_edmarcrua=Brakujący adres zbiorczej informacji zwrotnej
edit_edupip=Rekord adresu dla $1 już istnieje
edit_eemail='$1' nie jest poprawnym adresem e-mail
edit_eflags='$1' nie jest poprawną liczbą dziesiętną lub ósemkową flag klucza
edit_efqdn=Nazwa bezwzględna '$1' jest za długa
edit_egone=Wybrany rekord już nie istnieje!
edit_ehard=Brakujący lub niepoprawny typ sprzętu
edit_ehost='$1' nie jest prawidłową nazwą hosta
edit_eip='$1' nie jest prawidłowym adresem IP
@@ -229,6 +265,8 @@ edit_eloc=Nie podano szeroko
edit_emx='$1' nie jest poprawnym serwerem poczty
edit_ename='$1' nie jest prawidłową nazwą rekordu
edit_ens='$1' nie jest poprawnym serwerem DNS
edit_ensec3value2=Brakująca lub nienumeryczna liczba iteracji
edit_ensec3value3=Brakująca lub nie kodowana przez base64 sól
edit_eos=Brakujący lub niepoprawny rodzaj OS
edit_eport='$1' nie jest poprawnym numerem portu
edit_epri='$1' nie jest poprawnym priorytetem
@@ -239,10 +277,13 @@ edit_err=B
edit_eserv=Nie wprowadziłeś żadnej dobrze znanej usługi
edit_eserv2='$1' nie jest poprawną nazwą usługi
edit_espfa='$1' nie jest poprawnym hostem dozwolonym do wysyłania
edit_espfa2='$1' musi być nazwą hosta, a nie adresem IP
edit_espfexp='$1' jest poprawną nazwą rekodu dla odrzucania komunikatów
edit_espfinclude='$1' nie jest poprawną domeną dodatkową, z której wysłana jest poczta
edit_espfip='$1' nie jest poprawnym adresem IP lub IP/prefix do wysyłania
edit_espfip6='$1' nie jest poprawnym adresem IPv6 lub IPv6/prefix umożliwiającym wysyłanie z
edit_espfmx='$1' nie jest poprawną nazwą domeny do wysyłania MX
edit_espfmxmax=Nie możesz posiadać więcej niż 10 domen pozwalających na wysyłanie MX z
edit_espfredirect='$1' nie jest poprawną nazwą domeny alternatywnej
edit_etarget='$1' nie jest poprawną nazwą serwera lub adresu
edit_ettl='$1' nie jest prawidłowym czasem życia
@@ -380,13 +421,16 @@ index_apply=Zastosuj zmiany
index_applymsg=Naciśnij ten przycisk, aby przeładować działający serwer BIND. Spowoduje to uaktywnienie bieżącej konfiguracji.
index_applymsg2=Kliknij ten przycisk, aby zrestartować uruchomiony serwer BIND i wszystkie serwery zapasowe. Spowoduje to uaktywnienie bieżącej konfiguracji.
index_bind=BIND
index_checkconfig=Upewnij się, że katalog chroot jest poprawnie ustawiony na stronie <a href='$1'>konfiguracji modułu</a>.
index_chroot=BIND wersja $1, jako chroot $2
index_create=Utwórz podstawowy plik konfiguracyjny i uruchom serwer DNS
index_delegation=Delegacja
index_download=Ustaw jako internetowy serwer DNS i pobierz informację o głównych serwerach DNS
index_eempty=Pierwotny plik konfiguracyjny serwera BIND $1 nie istnieje lub jest nieprawidłowy. Czy utworzyć go od nowa?
index_emissingchroot=Uwaga : Webmin myśli, że BIND nie używa katalogu chroot, ale może to nie być prawda. Pliki strefy dla domen $1 nie zostały znalezione.
index_enamed=Nie znaleziono serwera DNS BIND $1 w Twoim systemie. Możliwe, że nie został zainstalowany lub Twoja <a href='$2'>Konfiguracja modułu</a> serwera BIND jest nieprawidłowa.
index_eversion=Program serwera $1 nie jest serwerem BIND 8 ani 9. Możliwe, że powinieneś użyć modułu <a href='$2'>BIND 4</a>.
index_ewrongchroot=Uwaga : Webmin, myśli, że BIND używa katalogu chroot $2, możliwe jednak, że jest on nieprawidłowy. Pliki strefy dla domen $1 nie zostały znalezione.
index_find=Znajdź strefy :
index_forward=Pośrednicząca
index_hint=Główna
@@ -394,6 +438,7 @@ index_inview=W widoku $1
index_local=Ustaw serwer DNS wyłącznie do użytku intranetowego (a nie internetowego)
index_masscreate=Dodaj rekordy do zaznaczonych
index_massdelete=Usuń zaznaczone
index_massrdelete=Usuń rekordy w wybranych
index_massupdate=Uaktualnij rekordy w zaznaczonych
index_master=Podstawowa
index_none=Nie zdefiniowano żadnej strefy DNS dla tego serwera
@@ -472,6 +517,7 @@ log_modify_record_v=Zmodyfikowano $1 rekord $2 warto
log_move=Przeniesiono strefę $1
log_net=Zmiany adresów i topologii
log_opts=Zmieniono domyślne ustawienia strefy $1
log_rdelete_zones=Usunięto rekordy w $1 strefach
log_resign=Klucz podpisywania DNSSEC dla strefy $1
log_review=Zmieniono opcje widoku $1
log_rndc=Ustawienia RNDC
@@ -505,6 +551,7 @@ logging_default2=U
logging_dyn=Poziom ogólny
logging_ecannot=Nie masz uprawnień do konfiguracji logowania
logging_efile=Brakująca nazwa pliku logowania
logging_efile2=Plik loga musi mieć ścieżkę absolutną
logging_ename='$1' nie jest poprawną nazwą kanału
logging_err=Błąd zapisu opcji logowania
logging_esize='$1' nie jest poprawnym rozmiarem logu
@@ -592,6 +639,9 @@ master_edelete=Nie masz uprawnie
master_edeletecannot=Nie masz uprawnień do usuwania stref
master_eemail='$1' nie jest poprawnym adresem e-mail
master_eexpiry='$1' nie jest poprawnym czasem wygaśnięcia
master_egone=Strefa $1 nie istnieje w żadnym widoku
master_egone2=Strefa $1 nie istnieje!
master_egone3=Strefa $1 w widoku $2 nie istnieje
master_einclude=Plik dodatkowego szablonu nie istnieje
master_eip=Brakujący lub niepoprawny adres IP wzorca
master_eiptmpl=Wartości z rekordów wzorcowych mogą być pobierane jedynie do rekordów adresowych
@@ -656,6 +706,7 @@ master_user=Z formularza
master_value=Wartość
master_whois=Szukaj informacji w bazie WHOIS
mcreate_auto=Automatyczny
mcreate_dnssec_tools_enable=Włącz DNSSEC używając DNSSEC-Tools
mcreate_dom=Nazwa domeny / Sieć
mcreate_ecannot=Nie masz uprawnień do tworzenia strefy podstawowej
mcreate_ednssec=Poprawnie utworzono rekord, ale wystąpił błąd DNSSEC: $1
@@ -700,6 +751,7 @@ net_eport='$1' nie jest poprawnym numerem portu
net_erecur=Nie wprowadzono adresów z których pozwalać na zapytanie rekursyjne
net_err=Nie udało się zachować opcji adresów i topologii
net_etopology=Nie podano topologii adresów
net_etport=Źródłowy transferu nie może zostać określony bez adresu
net_eusedport=Dla portu $1 dozwolony jest tylko jeden wiersz adresów
net_header=Ogólne opcje adresów i topologii
net_ip=Adres IP
@@ -708,19 +760,38 @@ net_port=Numer portu
net_recur=Pozwól na zapytania rekursyjne z
net_saddr=Źródłowy adres IP dla zapytań
net_sport=Źródłowy port dla zapytań
net_taddr=Źródłowy adres IP dla transferów
net_taddrdef=Najbliższe IP
net_title=Adresy i topologia
net_topol=Topologia wyboru serwera DNS
net_tport=Źródłowy port dla transferów
rdmass_all=Wszystkie rekordy tego typu
rdmass_doing=Usuwanie rekordów w strefie $1 ..
rdmass_done=.. usunięto $1 pasujących rekordów z $2.
rdmass_ename=Nie wpisano nazwy rekordu do usunięcia
rdmass_enone=Nie zaznaczono
rdmass_err=Błąd usuwania rekordów w strefach
rdmass_header=Masowe szczegóły kasowania rekordów
rdmass_name=Nazwa rekordu do usunięcia
rdmass_none=.. nie znaleziono pasujących rekordów z $1 do usunięcia
rdmass_ok=Usuwanie rekordów
rdmass_sel=Rekordy nazwane
rdmass_title=Kasowanie rekordów w strefach
rdmass_type=Typ rekordu do usunięcia
rdmass_vall=Wszystkie pasujące nazwy i typy
rdmass_value=Wartość rekordów do usunięcia
rdmass_vsel=Rekordy z wartością
recs_A=Adres
recs_AAAA=Adres IPv6
recs_ALL=Wszystkie
recs_CNAME=Aliasy nazw
recs_DMARC=DMARC
recs_HINFO=Informacje o hostach
recs_KEY=Klucz publiczny
recs_LOC=Lokalizacja
recs_MX=Serwery pocztowe
recs_NS=Serwery DNS
recs_NSEC3PARAM=Parametry DNSSEC
recs_PTR=Adresowanie odwrotne
recs_RP=Osoba odpowiedzialna
recs_SPF=Dozwolony nadawca
@@ -737,7 +808,9 @@ recs_ecannottype=Nie masz uprawnie
recs_find=Pokaż rekordy pasujące:
recs_header=W $1
recs_name=Nazwa
recs_needsearch=Wyszukaj pasujące rekordy.
recs_none=Domena nie zawiera żadnych rekordów $1.
recs_nosearch=Nie znaleziono pasujących rekordów.
recs_return=rodzajów rekordu
recs_search=Wyszukaj
recs_title=Rekordy $1
@@ -758,10 +831,12 @@ rmass_clash=Utworzy
rmass_doing=Dodawanie rekordu do strefy $1 ..
rmass_done=.. zakończono.
rmass_eclash=.. rekord o takiej samej nazwie i wartości $1 już istnieje.
rmass_eclash2=.. rekord o takiej samej nazwie i wartości $1 już istnieje.
rmass_ename=Brakująca lub nieprawidłowa nazwa rekordu
rmass_ename2=Nazwa rekordu nie może kończyć się na .
rmass_enone=Nie wybrano
rmass_err=Błąd dodawania rekordów
rmass_esign=.. gotowe, ale podpisanie nie powiodło się : $1
rmass_ettl=Brakujący lub nieprawidłowy czas życia
rmass_header=Szczegóły masowego dodawania rekordów
rmass_name=Nazwa nowego rekordu
@@ -836,6 +911,7 @@ slave_query=Pozw
slave_title=Edytuj strefę zapasową
slave_transfer=Pozwól na transfer z..
slave_update=Pozwól na aktualizację z..
slave_xfer=Testowy transfer strefy
slaves_add=Dodaj serwer
slaves_delete=Usuń zaznaczone
slaves_desc=Opis
@@ -873,6 +949,7 @@ text_desc2=Ta strona wy
text_desc3=Formularz ten umożliwia ręczną edycję pliku strefy DNS $1. Składnia nie jest sprawdzana przez Webmina.
text_ecannot=Nie masz uprawnień do modyfikacji plików stref
text_none=Jednakże plik jest pusty, ponieważ strefa nie została przetransferowana z serwera głównego.
text_rawformat=Ta strefa jest w formacie binarnym i nie może zostać wyświetlona jako tekst.
text_soa=Automatycznie zwiększ numer seryjny
text_title=Edytuj plik strefy
text_title2=Wyświetl pliki rekordów
@@ -909,11 +986,13 @@ type_A=Adresy
type_AAAA=Adresy IPv6
type_ALL=Wszystkie rodzaje rekordów
type_CNAME=Aliasy nazw
type_DMARC=DMARC
type_HINFO=Informacje o hostach
type_KEY=Klucz publiczny
type_LOC=Lokalizacja
type_MX=Serwery pocztowe
type_NS=Serwery DNS
type_NSEC3PARAM=Parametry DNSSEC
type_PTR=Adresowanie odwrotne
type_RP=Osoba odpowiedzialna
type_SPF=Dozwolony wysyłający z (SPF)
@@ -940,6 +1019,7 @@ umass_type=Rodzaj rekordu do uaktualnienia
value_A1=Adres
value_AAAA1=Adres IPv6
value_CNAME1=Nazwa rzeczywista
value_DMARC1=Specyfikacja DMARC
value_HINFO1=Sprzęt
value_HINFO2=System operacyjny
value_KEY1=Flagi
@@ -950,6 +1030,11 @@ value_LOC1=Szeroko
value_MX1=Priorytet
value_MX2=Serwer poczty
value_NS1=Serwer DNS
value_NSEC3PARAM1=Algorytm haszowania
value_NSEC3PARAM2=Flagi NSEC3
value_NSEC3PARAM3=Liczba iteracji haszowania
value_NSEC3PARAM4=Długość soli
value_NSEC3PARAM5=Sól
value_PTR1=Nazwa hosta
value_RP1=Adres e-mail
value_RP2=Nazwa rekordu tekstowego
@@ -962,6 +1047,19 @@ value_TXT1=Informacja
value_WKS1=Adres
value_WKS2=Protokół
value_WKS3=Usługi
value_delegated=Strefa wydelegowana
value_dmarcadkim=Wymaga ścisłego wyrównania DKIM
value_dmarcaspf=Wymaga ścisłego wyrównania SPF
value_dmarcnone=Nie podejmuj żadnych działań
value_dmarcnop=Takie samo jak tej domeny
value_dmarcnor=Nie wysyłaj
value_dmarcp=Polityka dla e-maili, które nie przeszły SPF lub DKIM
value_dmarcpct=Procent wiadomości, aby zastosować politykę
value_dmarcquar=Kwarantanna e-maila
value_dmarcreject=Odrzuć e-mail
value_dmarcrua=Wyślij zbiorczą informację zwrotną do
value_dmarcsp=Polityka dla subdomen
value_notdelegated=Inne strefy
value_other=Wartości (jedna w wierszu)
value_spfa=Pozwolić na wysyłanie z adresu IP domeny?
value_spfall=Akcja dla innych wysyłających
@@ -974,6 +1072,7 @@ value_spfas=Dodatkowo dozwolone hosty wysy
value_spfexp=Rekord TXT dla powodu odrzucania
value_spfincludes=Inne domeny, z których wysyłana jest poczta
value_spfip4s=Dodatkowo dozwolone adresy IP/sieci wysyłającego
value_spfip6s=Dodatkowe dozwolone nadawcze adresy IPv6/sieci
value_spfmx=Pozwolić na wysyłanie z hostów MX domeny?
value_spfmxs=Dodatkowo dozwolone domeny MX wysyłającego
value_spfnoexp=Brak
@@ -1010,7 +1109,12 @@ weeks=tygodni
whois_ecannot=Nie masz uprawnień do oglądania informacji WHOIS
whois_header=Wynik polecenia $1 ..
whois_title=Informacje z bazy WHOIS
xfer_count=Transfer testowy pomyślnie pobrał $1 rekordów z przynajmniej jednego serwera nazw. Prawdziwe transfery BIND także powinny się powieść.
xfer_doing=Test transferu strefy z $1 ..
xfer_done=.. od $1 : Gotowe
xfer_failed=.. z $1 : niepowodzenie : $2
xfer_none=Test transferu wygląda na udany, jednak nie pobrał żadnych rekordów!
xfer_title=Test transferu strefy
zonedef_alg=Algorytm klucza
zonedef_cmaster=Czy sprawdzać nazwy w strefach podstawowych?
zonedef_cresponse=Czy sprawdzać nazwy w odpowiedziach?

View File

@@ -37,3 +37,4 @@ desc_hu=DNS szerver (Bind)
longdesc_ms_MY=Membuat dan mengubah domain, rekod DNS, 'options' dan 'views' pada BIND.
desc_ms_MY=Pelayan DNS BIND
longdesc_de=Erstellt und bearbeitet Domains, DNS-Eintr&#228;ge, BIND-Optionen und Ansichten.
longdesc_pl=Twórz i edytuj domeny, rekordy DNS, opcje BIND i widoki.

View File

@@ -661,7 +661,7 @@ sub valemail
{
return $_[0] eq "." ||
$_[0] =~ /^[A-Za-z0-9\.\-]+$/ ||
$_[0] =~ /(.*)\@(.*)/ &&
$_[0] =~ /(\S*)\@(\S*)/ &&
&valdnsname($2, 0, ".") &&
$1 =~ /[a-z][\w\-\.$uscore]+/i;
}

View File

@@ -59,12 +59,11 @@ if ($in{'delete'}) {
$in{'oldvalue0'}, $in{'origin'});
$fulloldname = &convert_to_absolute(
$in{'oldname'}, $in{'origin'});
($orevconf, $orevfile, $orevrec) = &find_reverse($in{'oldvalue0'},
$in{'view'});
($orevconf, $orevfile, $orevrec) = &find_reverse(
$in{'oldvalue0'}, $in{'view'});
if ($in{'rev'} && $orevrec && &can_edit_reverse($orevconf) &&
$fulloldname eq $orevrec->{'values'}->[0] &&
($in{'type'} eq "A" &&
$in{'oldvalue0'} eq &arpa_to_ip($orevrec->{'name'}) ||
($in{'type'} eq "A" ||
$in{'type'} eq "AAAA" &&
&expandall_ip6($in{'oldvalue0'}) eq &expandall_ip6(&ip6int_to_net($orevrec->{'name'})))) {
&lock_file(&make_chroot($orevrec->{'file'}));
@@ -299,6 +298,7 @@ else {
$spf->{'a:'} = [ split(/\s+/, $in{'spfas'}) ];
foreach my $a (@{$spf->{'a:'}}) {
&to_ipaddress($a) || &error(&text('edit_espfa', $a));
&check_ipaddress($a) && &error(&text('edit_espfa2',$a));
}
$spf->{'mx:'} = [ split(/\s+/, $in{'spfmxs'}) ];
foreach my $mx (@{$spf->{'mx:'}}) {
@@ -436,8 +436,8 @@ if ($in{'new'}) {
'comment' => $in{'comment'} };
if ($in{'rev'} && $revconf && &can_edit_reverse($revconf) &&
$in{'value0'} !~ /\*/) {
local $rname = $in{'type'} eq "A" ? &ip_to_arpa($in{'value0'})
: &net_to_ip6int($in{'value0'});
local $rname = &make_reverse_name($in{'value0'}, $in{'type'},
$revconf);
if ($revrec && $in{'rev'} == 2) {
# Upate the existing reverse for the domain
&lock_file(&make_chroot($revrec->{'file'}));
@@ -501,10 +501,20 @@ else {
&modify_record($r->{'file'}, $r, $name, $ttl,
"IN", $in{'type'}, $vals, $in{'comment'});
# Build names for the new and old reverse records
local ($rname, $orname);
if ($revconf) {
$rname = &make_reverse_name($in{'value0'}, $in{'type'},
$revconf);
}
if ($orevconf) {
$orname = &make_reverse_name($in{'oldvalue0'}, $in{'type'},
$orevconf);
}
if ($in{'rev'} && $orevrec && &can_edit_reverse($orevconf) &&
$fulloldname eq $orevrec->{'values'}->[0] &&
($in{'type'} eq "A" &&
$in{'oldvalue0'} eq &arpa_to_ip($orevrec->{'name'}) ||
($in{'type'} eq "A" ||
$in{'type'} eq "AAAA" &&
&expandall_ip6($in{'oldvalue0'}) eq &expandall_ip6(&ip6int_to_net($orevrec->{'name'})))) {
# Updating the reverse record. Either the name, address
@@ -517,7 +527,7 @@ else {
if ($revconf eq $orevconf && &can_edit_reverse($revconf)) {
# old and new in the same file
&modify_record($orevrec->{'file'} , $orevrec,
&net_to_ip6int(&ip_to_arpa($in{'value0'})),
$rname,
$orevrec->{'ttl'}, "IN", "PTR", $fullname,
$in{'comment'});
&bump_soa_record($orevfile, \@orrecs);
@@ -526,7 +536,7 @@ else {
elsif ($revconf && &can_edit_reverse($revconf)) {
# old and new in different files
&delete_record($orevrec->{'file'} , $orevrec);
&create_record($revfile, &net_to_ip6int(&ip_to_arpa($in{'value0'})),
&create_record($revfile, $rname,
$orevrec->{'ttl'}, "IN", "PTR", $fullname,
$in{'comment'});
&bump_soa_record($orevfile, \@orrecs);
@@ -548,7 +558,7 @@ else {
# one.. create a new reverse record
&lock_file(&make_chroot($revfile));
@rrecs = &read_zone_file($revfile, $revconf->{'name'});
&create_record($revfile, &net_to_ip6int(&ip_to_arpa($in{'value0'})),
&create_record($revfile, $rname,
$ttl, "IN", "PTR", $fullname, $in{'comment'});
&bump_soa_record($revfile, \@rrecs);
&sign_dnssec_zone_if_key($revconf, \@rrecs);

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