Ver código fonte

Merge and move branch 'master' of github.com:desec/desec-poweradmin

Peter Thomassen 8 anos atrás
pai
commit
e93328444c
100 arquivos alterados com 24800 adições e 1 exclusões
  1. 0 1
      desec-poweradmin
  2. 10 0
      devadmin/Dockerfile
  3. 75 0
      devadmin/config.inc.php
  4. 1 0
      devadmin/html/phpmyadmin
  5. 1 0
      devadmin/html/poweradmin
  6. 7 0
      devadmin/html/poweradmin-2.1.7/.gitignore
  7. 622 0
      devadmin/html/poweradmin-2.1.7/LICENSE
  8. 3 0
      devadmin/html/poweradmin-2.1.7/README.md
  9. 87 0
      devadmin/html/poweradmin-2.1.7/add_perm_templ.php
  10. 220 0
      devadmin/html/poweradmin-2.1.7/add_record.php
  11. 120 0
      devadmin/html/poweradmin-2.1.7/add_supermaster.php
  12. 90 0
      devadmin/html/poweradmin-2.1.7/add_user.php
  13. 192 0
      devadmin/html/poweradmin-2.1.7/add_zone_master.php
  14. 129 0
      devadmin/html/poweradmin-2.1.7/add_zone_slave.php
  15. 66 0
      devadmin/html/poweradmin-2.1.7/add_zone_templ.php
  16. 165 0
      devadmin/html/poweradmin-2.1.7/add_zone_templ_record.php
  17. 9 0
      devadmin/html/poweradmin-2.1.7/addons/clientip.php
  18. 43 0
      devadmin/html/poweradmin-2.1.7/addons/dynamic_dns_client.pl
  19. 164 0
      devadmin/html/poweradmin-2.1.7/bulk_registration.php
  20. 64 0
      devadmin/html/poweradmin-2.1.7/change_password.php
  21. 103 0
      devadmin/html/poweradmin-2.1.7/delete_domain.php
  22. 103 0
      devadmin/html/poweradmin-2.1.7/delete_domains.php
  23. 67 0
      devadmin/html/poweradmin-2.1.7/delete_perm_templ.php
  24. 134 0
      devadmin/html/poweradmin-2.1.7/delete_record.php
  25. 82 0
      devadmin/html/poweradmin-2.1.7/delete_supermaster.php
  26. 127 0
      devadmin/html/poweradmin-2.1.7/delete_user.php
  27. 66 0
      devadmin/html/poweradmin-2.1.7/delete_zone_templ.php
  28. 89 0
      devadmin/html/poweradmin-2.1.7/delete_zone_templ_record.php
  29. 113 0
      devadmin/html/poweradmin-2.1.7/dnssec.php
  30. 150 0
      devadmin/html/poweradmin-2.1.7/dnssec_add_key.php
  31. 98 0
      devadmin/html/poweradmin-2.1.7/dnssec_delete_key.php
  32. 95 0
      devadmin/html/poweradmin-2.1.7/dnssec_ds_dnskey.php
  33. 108 0
      devadmin/html/poweradmin-2.1.7/dnssec_edit_key.php
  34. 182 0
      devadmin/html/poweradmin-2.1.7/dynamic_update.php
  35. 516 0
      devadmin/html/poweradmin-2.1.7/edit.php
  36. 115 0
      devadmin/html/poweradmin-2.1.7/edit_comment.php
  37. 99 0
      devadmin/html/poweradmin-2.1.7/edit_perm_templ.php
  38. 164 0
      devadmin/html/poweradmin-2.1.7/edit_record.php
  39. 172 0
      devadmin/html/poweradmin-2.1.7/edit_user.php
  40. 201 0
      devadmin/html/poweradmin-2.1.7/edit_zone_templ.php
  41. 118 0
      devadmin/html/poweradmin-2.1.7/edit_zone_templ_record.php
  42. BIN
      devadmin/html/poweradmin-2.1.7/favicon.ico
  43. BIN
      devadmin/html/poweradmin-2.1.7/images/arrow.png
  44. BIN
      devadmin/html/poweradmin-2.1.7/images/background.jpg
  45. BIN
      devadmin/html/poweradmin-2.1.7/images/delete.gif
  46. BIN
      devadmin/html/poweradmin-2.1.7/images/edit.gif
  47. BIN
      devadmin/html/poweradmin-2.1.7/images/logo.png
  48. BIN
      devadmin/html/poweradmin-2.1.7/images/switch_user.png
  49. 249 0
      devadmin/html/poweradmin-2.1.7/inc/PDOCommon.class.php
  50. 242 0
      devadmin/html/poweradmin-2.1.7/inc/PDOLayer.php
  51. 313 0
      devadmin/html/poweradmin-2.1.7/inc/auth.inc.php
  52. 44 0
      devadmin/html/poweradmin-2.1.7/inc/benchmark.php
  53. 75 0
      devadmin/html/poweradmin-2.1.7/inc/config-me.inc.php
  54. 188 0
      devadmin/html/poweradmin-2.1.7/inc/countrycodes.inc.php
  55. 228 0
      devadmin/html/poweradmin-2.1.7/inc/database.inc.php
  56. 860 0
      devadmin/html/poweradmin-2.1.7/inc/dns.inc.php
  57. 580 0
      devadmin/html/poweradmin-2.1.7/inc/dnssec.inc.php
  58. 160 0
      devadmin/html/poweradmin-2.1.7/inc/error.inc.php
  59. 35 0
      devadmin/html/poweradmin-2.1.7/inc/file.inc.php
  60. 69 0
      devadmin/html/poweradmin-2.1.7/inc/footer.inc.php
  61. 108 0
      devadmin/html/poweradmin-2.1.7/inc/header.inc.php
  62. 149 0
      devadmin/html/poweradmin-2.1.7/inc/helper.js
  63. 50 0
      devadmin/html/poweradmin-2.1.7/inc/i18n.inc.php
  64. 80 0
      devadmin/html/poweradmin-2.1.7/inc/migrations.inc.php
  65. 2122 0
      devadmin/html/poweradmin-2.1.7/inc/record.inc.php
  66. 653 0
      devadmin/html/poweradmin-2.1.7/inc/templates.inc.php
  67. 626 0
      devadmin/html/poweradmin-2.1.7/inc/toolkit.inc.php
  68. 932 0
      devadmin/html/poweradmin-2.1.7/inc/users.inc.php
  69. 32 0
      devadmin/html/poweradmin-2.1.7/inc/version.inc.php
  70. 75 0
      devadmin/html/poweradmin-2.1.7/index.php
  71. 74 0
      devadmin/html/poweradmin-2.1.7/list_perm_templ.php
  72. 72 0
      devadmin/html/poweradmin-2.1.7/list_supermasters.php
  73. 72 0
      devadmin/html/poweradmin-2.1.7/list_zone_templ.php
  74. 165 0
      devadmin/html/poweradmin-2.1.7/list_zones.php
  75. 1168 0
      devadmin/html/poweradmin-2.1.7/locale/cs_CZ/LC_MESSAGES/cs.po
  76. 88 0
      devadmin/html/poweradmin-2.1.7/locale/cs_CZ/LC_MESSAGES/cs_db.po
  77. BIN
      devadmin/html/poweradmin-2.1.7/locale/cs_CZ/LC_MESSAGES/messages.mo
  78. 979 0
      devadmin/html/poweradmin-2.1.7/locale/de_DE/LC_MESSAGES/de.po
  79. BIN
      devadmin/html/poweradmin-2.1.7/locale/de_DE/LC_MESSAGES/messages.mo
  80. 1243 0
      devadmin/html/poweradmin-2.1.7/locale/en_EN/LC_MESSAGES/en.po
  81. BIN
      devadmin/html/poweradmin-2.1.7/locale/en_EN/LC_MESSAGES/messages.mo
  82. 887 0
      devadmin/html/poweradmin-2.1.7/locale/fr_FR/LC_MESSAGES/fr.po
  83. 79 0
      devadmin/html/poweradmin-2.1.7/locale/fr_FR/LC_MESSAGES/fr_db.po
  84. BIN
      devadmin/html/poweradmin-2.1.7/locale/fr_FR/LC_MESSAGES/messages.mo
  85. 82 0
      devadmin/html/poweradmin-2.1.7/locale/i18n-template-db.pot
  86. 1085 0
      devadmin/html/poweradmin-2.1.7/locale/i18n-template-php.pot
  87. 1167 0
      devadmin/html/poweradmin-2.1.7/locale/ja_JP/LC_MESSAGES/ja.po
  88. BIN
      devadmin/html/poweradmin-2.1.7/locale/ja_JP/LC_MESSAGES/messages.mo
  89. 1168 0
      devadmin/html/poweradmin-2.1.7/locale/lt_LT/LC_MESSAGES/lt.po
  90. 88 0
      devadmin/html/poweradmin-2.1.7/locale/lt_LT/LC_MESSAGES/lt_db.po
  91. BIN
      devadmin/html/poweradmin-2.1.7/locale/lt_LT/LC_MESSAGES/messages.mo
  92. BIN
      devadmin/html/poweradmin-2.1.7/locale/nb_NO/LC_MESSAGES/messages.mo
  93. 1167 0
      devadmin/html/poweradmin-2.1.7/locale/nb_NO/LC_MESSAGES/nb.po
  94. 85 0
      devadmin/html/poweradmin-2.1.7/locale/nb_NO/LC_MESSAGES/nb_db.po
  95. BIN
      devadmin/html/poweradmin-2.1.7/locale/nl_NL/LC_MESSAGES/messages.mo
  96. 1166 0
      devadmin/html/poweradmin-2.1.7/locale/nl_NL/LC_MESSAGES/nl.po
  97. 85 0
      devadmin/html/poweradmin-2.1.7/locale/nl_NL/LC_MESSAGES/nl_db.po
  98. BIN
      devadmin/html/poweradmin-2.1.7/locale/pl_PL/LC_MESSAGES/messages.mo
  99. 1040 0
      devadmin/html/poweradmin-2.1.7/locale/pl_PL/LC_MESSAGES/pl.po
  100. BIN
      devadmin/html/poweradmin-2.1.7/locale/ru_RU/LC_MESSAGES/messages.mo

+ 0 - 1
desec-poweradmin

@@ -1 +0,0 @@
-../desec-poweradmin/

+ 10 - 0
devadmin/Dockerfile

@@ -0,0 +1,10 @@
+FROM richarvey/nginx-php-fpm
+
+RUN apk add --no-cache \
+	php5-gettext \
+	phpmyadmin
+
+RUN chmod -v 644 /etc/phpmyadmin/config.inc.php
+RUN sed -i 's/localhost/db/g' /etc/phpmyadmin/config.inc.php
+
+ENV TEMPLATE_NGINX_HTML=0

+ 75 - 0
devadmin/config.inc.php

@@ -0,0 +1,75 @@
+<?php
+
+/**
+ * Sample configuration file with default values
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+// NOTE: Do not edit this file, otherwise it's very likely your changes 
+// will be overwritten with an upgrade.  
+// Instead, create the file "inc/config.inc.php" and set the variables you
+// want to set there. Your changes will override the defaults provided by us.
+// Better description of available configuration settings you can find here:
+// <https://github.com/poweradmin/poweradmin/wiki/Configuration-File>
+// Database settings
+$db_host = 'db';
+$db_port = '';
+$db_user = 'poweradmin';
+$db_pass = '123passphrase';
+$db_name = 'pdns';
+$db_type = 'mysql';
+//$db_file		= '';		# used only for SQLite, provide full path to database file
+//$db_debug		= false;	# show all SQL queries
+$db_layer		= 'PDO';	# or MDB2
+//$db_ssl_ca            = '';
+// Security settings
+// This should be changed upon install
+$session_key = 'p0w3r4dm1n';
+$password_encryption = 'md5'; // or md5salt
+
+// Interface settings
+$iface_lang = 'en_EN';
+$iface_style = 'example';
+$iface_rowamount = 50;
+$iface_expire = 1800;
+$iface_zonelist_serial = false;
+$iface_title = 'Poweradmin';
+$iface_add_reverse_record = true;
+
+// Predefined DNS settings
+$dns_hostmaster = '';
+$dns_ns1 = '';
+$dns_ns2 = '';
+$dns_ttl = 86400;
+$dns_fancy = false;
+$dns_strict_tld_check = false;
+$dns_top_level_tld_check = false;     // Don't allow to create top level TLDs
+$dns_third_level_check = false;
+// Timezone settings
+// See <http://www.php.net/manual/en/timezones.php> for help.
+//$timezone		= 'UTC';
+// Logging settings
+// Syslog usage - writes authentication attempts to syslog
+// This facility could be used in combination with fail2ban to
+// ban IPs with break-in attempts
+$syslog_use = false;
+$syslog_ident = 'poweradmin';
+// On Windows usually only LOG_USER is available
+$syslog_facility = LOG_USER;
+
+// PowerDNSSEC settings
+$pdnssec_use = false;
+$pdnssec_command = '/usr/bin/pdnssec';
+
+// LDAP settings
+$ldap_use = false;
+$ldap_debug = false;
+$ldap_uri = 'ldap://domaincontroller.example.com';
+$ldap_basedn = 'OU=Users,DC=example,DC=com';
+$ldap_binddn = 'GROUP\lookupuser';
+$ldap_bindpw = 'some_password';
+$ldap_user_attribute = 'sAMAccountName';
+$ldap_proto = 3;

+ 1 - 0
devadmin/html/phpmyadmin

@@ -0,0 +1 @@
+/usr/share/webapps/phpmyadmin

+ 1 - 0
devadmin/html/poweradmin

@@ -0,0 +1 @@
+poweradmin-2.1.7

+ 7 - 0
devadmin/html/poweradmin-2.1.7/.gitignore

@@ -0,0 +1,7 @@
+inc/config.inc.php
+.DS_Store
+/nbproject
+/scripts
+/tests
+/.idea
+/docs

+ 622 - 0
devadmin/html/poweradmin-2.1.7/LICENSE

@@ -0,0 +1,622 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+

+ 3 - 0
devadmin/html/poweradmin-2.1.7/README.md

@@ -0,0 +1,3 @@
+# Poweradmin - a web-based control panel for PowerDNS.
+
+[Poweradmin](http://www.poweradmin.org/) is a friendly web-based DNS administration tool for Bert Hubert's PowerDNS server. The interface has full support for most of the features of PowerDNS. It has full support for all zone types (master,  native and  slave), for  supermasters for automatic provisioning of slave zones, full support for IPv6 and comes with multi-language support.

+ 87 - 0
devadmin/html/poweradmin-2.1.7/add_perm_templ.php

@@ -0,0 +1,87 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles requests to add new permission template
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+if (!verify_permission('templ_perm_edit')) {
+    error(ERR_PERM_EDIT_PERM_TEMPL);
+} else {
+
+    if (isset($_POST['commit'])) {
+        if (add_perm_templ($_POST)) {
+            success(SUC_PERM_TEMPL_ADD);
+        }
+    }
+
+    $perms_avail = get_permissions_by_template_id();
+
+    /*
+      Display new permission form
+     */
+
+    echo "    <h2>" . _('Add permission template') . "</h2>\n";
+    echo "    <form method=\"post\" action=\"\">\n";
+    echo "     <table>\n";
+    echo "      <tr>\n";
+    echo "       <th>" . _('Name') . "</th>\n";
+    echo "       <td><input class=\"wide\" type=\"text\" name=\"templ_name\" value=\"\"></td>\n";
+    echo "      </tr>\n";
+    echo "      <tr>\n";
+    echo "       <th>" . _('Description') . "</th>\n";
+    echo "       <td><input class=\"wide\" type=\"text\" name=\"templ_descr\" value=\"\"></td>\n";
+    echo "      </tr>\n";
+    echo "     </table>\n";
+    echo "     <table>\n";
+    echo "      <tr>\n";
+    echo "       <th>&nbsp;</th>\n";
+    echo "       <th>" . _('Name') . "</th>\n";
+    echo "       <th>" . _('Description') . "</th>\n";
+    echo "      </tr>\n";
+
+    /*
+      Display available permissions settings for inclusion
+      in the new permission
+     */
+    foreach ($perms_avail as $perm_a) {
+
+        echo "      <tr>\n";
+        echo "       <td><input type=\"checkbox\" name=\"perm_id[]\" value=\"" . $perm_a['id'] . "\"></td>\n";
+        echo "       <td>" . $perm_a['name'] . "</td>\n";
+        echo "       <td>" . _($perm_a['descr']) . "</td>\n";
+        echo "      </tr>\n";
+    }
+    echo "     </table>\n";
+    echo "     <input type=\"submit\" class=\"button\" name=\"commit\" value=\"" . _('Commit changes') . "\">\n";
+    echo "     </form>\n";
+}
+
+include_once("inc/footer.inc.php");

+ 220 - 0
devadmin/html/poweradmin-2.1.7/add_record.php

@@ -0,0 +1,220 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles request to add new records to existing zone
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+/*
+  Get permissions
+ */
+if (verify_permission('zone_content_view_others')) {
+    $perm_view = "all";
+} elseif (verify_permission('zone_content_view_own')) {
+    $perm_view = "own";
+} else {
+    $perm_view = "none";
+}
+
+if (verify_permission('zone_content_edit_others')) {
+    $perm_content_edit = "all";
+} elseif (verify_permission('zone_content_edit_own')) {
+    $perm_content_edit = "own";
+} else {
+    $perm_content_edit = "none";
+}
+
+if (verify_permission('zone_meta_edit_others')) {
+    $perm_meta_edit = "all";
+} elseif (verify_permission('zone_meta_edit_own')) {
+    $perm_meta_edit = "own";
+} else {
+    $perm_meta_edit = "none";
+}
+
+
+/*
+  Check and make sure all post values have made it through
+  if not set them.
+ */
+$zone_id = "-1";
+if ((isset($_GET['id'])) && (v_num($_GET['id']))) {
+    $zone_id = $_GET['id'];
+}
+
+$ttl = $dns_ttl;
+if ((isset($_POST['ttl'])) && (v_num($_POST['ttl']))) {
+    $ttl = $_POST['ttl'];
+}
+
+$prio = "10";
+if ((isset($_POST['prio'])) && (v_num($_POST['prio']))) {
+    $prio = $_POST['prio'];
+}
+
+if (isset($_POST['name'])) {
+    $name = $_POST['name'];
+} else {
+    $name = "";
+}
+
+if (isset($_POST['type'])) {
+    $type = $_POST['type'];
+} else {
+    $type = "";
+}
+
+if (isset($_POST['content'])) {
+    $content = $_POST['content'];
+} else {
+    $content = "";
+}
+
+if ($zone_id == "-1") {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;
+}
+
+/*
+  Check and see if the user is the zone owner
+  Check the sone type and get the zone name
+ */
+$user_is_zone_owner = verify_user_is_owner_zoneid($zone_id);
+$zone_type = get_domain_type($zone_id);
+$zone_name = get_zone_name_from_id($zone_id);
+
+/*
+  If the form as been submitted
+  process it!
+ */
+if (isset($_POST["commit"])) {
+    if ($zone_type == "SLAVE" || $perm_content_edit == "none" || $perm_content_edit == "own" && $user_is_zone_owner == "0") {
+        error(ERR_PERM_ADD_RECORD);
+    } else {
+        // a PTR-record is added if an A or an AAAA-record are created
+        // and checkbox is checked
+
+        if ((isset($_POST["reverse"])) && $iface_add_reverse_record ) {
+            if ($type === 'A') {
+                $content_array = preg_split("/\./", $content);
+                $content_rev = sprintf("%d.%d.%d.%d.in-addr.arpa", $content_array[3], $content_array[2], $content_array[1], $content_array[0]);
+                $zone_rev_id = get_best_matching_zone_id_from_name($content_rev);
+            } elseif ($type === 'AAAA') {
+                $content_rev = convert_ipv6addr_to_ptrrec($content);
+                $zone_rev_id = get_best_matching_zone_id_from_name($content_rev);
+            }
+            if (isset($zone_rev_id) && $zone_rev_id != -1) {
+                $zone_name = get_zone_name_from_id($zone_id);
+                $fqdn_name = sprintf("%s.%s", $name, $zone_name);
+                if (add_record($zone_rev_id, $content_rev, 'PTR', $fqdn_name, $ttl, $prio)) {
+                    success(" <a href=\"edit.php?id=" . $zone_rev_id . "\"> " . _('The PTR-record was successfully added.') . "</a>");
+                    log_info(sprintf('client_ip:%s user:%s operation:add_record record_type:PTR record:%s content:%s ttl:%s priority:%s',
+                                      $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"],
+                                      $content_rev, $fqdn_name, $ttl, $prio));
+                }
+            } elseif (isset($content_rev)) {
+                error(sprintf(ERR_REVERS_ZONE_NOT_EXIST, $content_rev));
+            }
+        }
+        if (add_record($zone_id, $name, $type, $content, $ttl, $prio)) {
+            success(" <a href=\"edit.php?id=" . $zone_id . "\"> " . _('The record was successfully added.') . "</a>");
+            log_info(sprintf('client_ip:%s user:%s operation:add_record record_type:%s record:%s.%s content:%s ttl:%s priority:%s',
+                              $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"],
+                              $type, $name, $zone_name, $content, $ttl, $prio));
+            $name = $type = $content = $ttl = $prio = "";
+        }
+    }
+}
+
+/*
+  Display form to add a record
+ */
+echo "    <h2>" . _('Add record to zone') . " <a href=\"edit.php?id=" . $zone_id . "\"> " . $zone_name . "</a></h2>\n";
+
+if ($zone_type == "SLAVE" || $perm_content_edit == "none" || $perm_content_edit == "own" && $user_is_zone_owner == "0") {
+    error(ERR_PERM_ADD_RECORD);
+} else {
+    echo "     <form method=\"post\">\n";
+    echo "      <input type=\"hidden\" name=\"domain\" value=\"" . $zone_id . "\">\n";
+    echo "      <table border=\"0\" cellspacing=\"4\">\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Name') . "</td>\n";
+    echo "        <td class=\"n\">&nbsp;</td>\n";
+    echo "        <td class=\"n\">" . _('Type') . "</td>\n";
+    echo "        <td class=\"n\">" . _('Content') . "</td>\n";
+    echo "        <td class=\"n\">" . _('Priority') . "</td>\n";
+    echo "        <td class=\"n\">" . _('TTL') . "</td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\"><input type=\"text\" name=\"name\" class=\"input\" value=\"" . htmlspecialchars($name) . "\">." . $zone_name . "</td>\n";
+    echo "        <td class=\"n\">IN</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <select name=\"type\">\n";
+    $found_selected_type = !(isset($type) && $type);
+    foreach (get_record_types() as $record_type) {
+        if (isset($type) && $type) {
+            if ($type == $record_type) {
+                $found_selected_type = true;
+                $add = " SELECTED";
+            } else {
+                $add = "";
+            }
+        } else {
+            if (preg_match('/i(p6|n-addr).arpa/i', $zone_name) && strtoupper($record_type) == 'PTR') {
+                $add = " SELECTED";
+                $rev = "";
+            } elseif ((strtoupper($record_type) == 'A') && $iface_add_reverse_record) {
+                $add = " SELECTED";
+                $rev = "<input type=\"checkbox\" name=\"reverse\"><span class=\"normaltext\">" . _('Add also reverse record') . "</span>\n";
+            } else {
+                $add = "";
+            }
+        }
+        echo "          <option" . $add . " value=\"" . htmlspecialchars($record_type) . "\">" . $record_type . "</option>\n";
+    }
+    if (!$found_selected_type)
+        echo "          <option SELECTED value=\"" . htmlspecialchars($type) . "\"><i>" . htmlspecialchars($type) . "</i></option>\n";
+    echo "         </select>\n";
+    echo "        </td>\n";
+    echo "        <td class=\"n\"><input type=\"text\" name=\"content\" class=\"input\" value=\"" . htmlspecialchars($content) . "\"></td>\n";
+    echo "        <td class=\"n\"><input type=\"text\" name=\"prio\" class=\"sinput\" value=\"" . htmlspecialchars($prio) . "\"></td>\n";
+    echo "        <td class=\"n\"><input type=\"text\" name=\"ttl\" class=\"sinput\" value=\"" . htmlspecialchars($ttl) . "\"</td>\n";
+    echo "       </tr>\n";
+    echo "      </table>\n";
+    echo "      <br>\n";
+    echo "      <input type=\"submit\" name=\"commit\" value=\"" . _('Add record') . "\" class=\"button\">\n";
+    if (isset($rev)) {
+        echo "      $rev";
+    }
+    echo "     </form>\n";
+}
+
+include_once("inc/footer.inc.php");

+ 120 - 0
devadmin/html/poweradmin-2.1.7/add_supermaster.php

@@ -0,0 +1,120 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles requests to add new supermaster servers
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+$master_ip = "";
+if (isset($_POST["master_ip"])) {
+    $master_ip = $_POST["master_ip"];
+}
+
+$ns_name = "";
+if (isset($_POST["ns_name"])) {
+    $ns_name = $_POST["ns_name"];
+}
+
+$account = "";
+if (isset($_POST["account"])) {
+    $account = $_POST["account"];
+}
+
+(verify_permission('supermaster_add')) ? $supermasters_add = "1" : $supermasters_add = "0";
+(verify_permission('user_view_others')) ? $perm_view_others = "1" : $perm_view_others = "0";
+
+$error = 0;
+if (isset($_POST["submit"])) {
+    if (add_supermaster($master_ip, $ns_name, $account)) {
+        success(SUC_SM_ADD);
+    } else {
+        $error = "1";
+    }
+}
+
+echo "     <h2>" . _('Add supermaster') . "</h2>\n";
+
+if ($supermasters_add != "1") {
+    echo "     <p>" . _("You do not have the permission to add a new supermaster.") . "</p>\n";
+} else {
+    echo "     <form method=\"post\" action=\"add_supermaster.php\">\n";
+    echo "      <table>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('IP address of supermaster') . "</td>\n";
+    echo "        <td class=\"n\">\n";
+    if ($error) {
+        echo "         <input type=\"text\" class=\"input\" name=\"master_ip\" value=\"" . $master_ip . "\">\n";
+    } else {
+        echo "         <input type=\"text\" class=\"input\" name=\"master_ip\" value=\"\">\n";
+    }
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Hostname in NS record') . "</td>\n";
+    echo "        <td class=\"n\">\n";
+    if ($error) {
+        echo "         <input type=\"text\" class=\"input\" name=\"ns_name\" value=\"" . $ns_name . "\">\n";
+    } else {
+        echo "         <input type=\"text\" class=\"input\" name=\"ns_name\" value=\"\">\n";
+    }
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Account') . "</td>\n";
+    echo "        <td class=\"n\">\n";
+
+    echo "         <select name=\"account\">\n";
+    /*
+      Display list of users to assign slave zone to if the
+      editing user has the permissions to, otherise just
+      display the adding users name
+     */
+    $users = show_users();
+    foreach ($users as $user) {
+        if ($user['id'] === $_SESSION['userid']) {
+            echo "          <option value=\"" . $user['username'] . "\" selected>" . $user['fullname'] . "</option>\n";
+        } elseif ($perm_view_others == "1") {
+            echo "          <option value=\"" . $user['username'] . "\">" . $user['fullname'] . "</option>\n";
+        }
+    }
+    echo "         </select>\n";
+
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">&nbsp;</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <input type=\"submit\" class=\"button\" name=\"submit\" value=\"" . _('Add supermaster') . "\">\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "      </table>\n";
+    echo "     </form>\n";
+}
+include_once("inc/footer.inc.php");

+ 90 - 0
devadmin/html/poweradmin-2.1.7/add_user.php

@@ -0,0 +1,90 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles requests to add new users
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+if (!verify_permission('user_add_new')) {
+    error(ERR_PERM_ADD_USER);
+} else {
+    if (isset($_POST["commit"])) {
+        if (add_new_user($_POST)) {
+            success(SUC_USER_ADD);
+        }
+    }
+
+    echo "     <h2>" . _('Add user') . "</h2>\n";
+    echo "     <form method=\"post\" action=\"add_user.php\">\n";
+    echo "      <table>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Username') . "</td>\n";
+    echo "        <td class=\"n\"><input type=\"text\" class=\"input\" name=\"username\" value=\"\"></td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Fullname') . "</td>\n";
+    echo "        <td class=\"n\"><input type=\"text\" class=\"input\" name=\"fullname\" value=\"\"></td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Password') . "</td>\n";
+    echo "        <td class=\"n\"><input type=\"password\" class=\"input\" name=\"password\"></td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Email address') . "</td>\n";
+    echo "        <td class=\"n\"><input type=\"text\" class=\"input\" name=\"email\" value=\"\"></td>\n";
+    echo "       </tr>\n";
+    if (verify_permission('user_edit_templ_perm')) {
+        echo "       <tr>\n";
+        echo "        <td class=\"n\">" . _('Permission template') . "</td>\n";
+        echo "        <td class=\"n\">\n";
+        echo "         <select name=\"perm_templ\">\n";
+        foreach (list_permission_templates() as $template) {
+            echo "          <option value=\"" . $template['id'] . "\">" . $template['name'] . "</option>\n";
+        }
+        echo "         </select>\n";
+        echo "       </td>\n";
+        echo "       </tr>\n";
+    }
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Description') . "</td>\n";
+    echo "        <td class=\"n\"><textarea rows=\"4\" cols=\"30\" class=\"inputarea\" name=\"descr\"></textarea></td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Enabled') . "</td>\n";
+    echo "        <td class=\"n\"><input type=\"checkbox\" class=\"input\" name=\"active\" value=\"1\" CHECKED></td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">&nbsp;</td>\n";
+    echo "        <td class=\"n\"><input type=\"submit\" class=\"button\" name=\"commit\" value=\"" . _('Commit changes') . "\"></td>\n";
+    echo "      </table>\n";
+    echo "     </form>\n";
+}
+
+include_once("inc/footer.inc.php");

+ 192 - 0
devadmin/html/poweradmin-2.1.7/add_zone_master.php

@@ -0,0 +1,192 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles requests to add new master zones
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+echo "  <script type=\"text/javascript\" src=\"inc/helper.js\"></script>";
+
+global $pdnssec_use;
+global $dns_third_level_check;
+
+$owner = "-1";
+if ((isset($_POST['owner'])) && (v_num($_POST['owner']))) {
+    $owner = $_POST['owner'];
+}
+
+$dom_type = "NATIVE";
+if (isset($_POST["dom_type"]) && (in_array($_POST['dom_type'], $server_types))) {
+    $dom_type = $_POST["dom_type"];
+}
+
+if (isset($_POST['domain'])) {
+    $temp = array();
+    foreach ($_POST['domain'] as $domain) {
+        if ($domain != "") {
+            $temp[] = trim($domain);
+        }
+    }
+    $domains = $temp;
+} else {
+    $domains = array();
+}
+
+if (isset($_POST['zone_template'])) {
+    $zone_template = $_POST['zone_template'];
+} else {
+    $zone_template = "none";
+}
+
+$enable_dnssec = false;
+if (isset($_POST['dnssec']) && $_POST['dnssec'] == '1') {
+    $enable_dnssec = true;
+}
+
+/*
+  Check user permissions
+ */
+(verify_permission('zone_master_add')) ? $zone_master_add = "1" : $zone_master_add = "0";
+(verify_permission('user_view_others')) ? $perm_view_others = "1" : $perm_view_others = "0";
+
+if (isset($_POST['submit']) && $zone_master_add == "1") {
+    $error = false;
+    foreach ($domains as $domain) {
+        if (!is_valid_hostname_fqdn($domain, 0)) {
+            error($domain . ' failed - ' . ERR_DNS_HOSTNAME);
+        } elseif ($dns_third_level_check && get_domain_level($domain) > 2 && domain_exists(get_second_level_domain($domain))) {
+            error($domain . ' failed - ' . ERR_DOMAIN_EXISTS);
+            $error = true;
+        } elseif (domain_exists($domain) || record_name_exists($domain)) {
+            error($domain . ' failed - ' . ERR_DOMAIN_EXISTS);
+            // TODO: repopulate domain name(s) to the form if there was an error occured
+            $error = true;
+        } elseif (add_domain($domain, $owner, $dom_type, '', $zone_template)) {
+            $domain_id = get_zone_id_from_name($domain);
+            success("<a href=\"edit.php?id=" . $domain_id . "\">" . $domain . " - " . SUC_ZONE_ADD . '</a>');
+            log_info(sprintf('client_ip:%s user:%s operation:add_zone zone:%s zone_type:%s zone_template:%s',
+                              $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"],
+                              $domain,$dom_type,$zone_template));
+
+            if ($pdnssec_use) {
+                if ($enable_dnssec) {
+                    dnssec_secure_zone($domain);
+                }
+
+                dnssec_rectify_zone($domain_id);
+            }
+        }
+    }
+
+    if (false === $error) {
+        unset($domains, $owner, $dom_type, $zone_template);
+    }
+}
+
+if ($zone_master_add != "1") {
+    error(ERR_PERM_ADD_ZONE_MASTER);
+} else {
+    echo "     <h2>" . _('Add master zone') . "</h2>\n";
+
+    $available_zone_types = array("MASTER", "NATIVE");
+    $users = show_users();
+    $zone_templates = get_list_zone_templ($_SESSION['userid']);
+
+    echo "     <form method=\"post\" action=\"add_zone_master.php\">\n";
+    echo "      <table>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Zone name') . ":</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <ul id=\"domain_names\" style=\"list-style-type:none; padding:0 \">\n";
+    echo "          <li><input type=\"text\" class=\"input\" name=\"domain[]\" value=\"\" id=\"domain_1\"></li>\n";
+    echo "         </ol>\n";
+    echo "        </td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <input class=\"button\" type=\"button\" value=\"Add another domain\" onclick=\"addField('domain_names','domain_',0);\" />\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Owner') . ":</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <select name=\"owner\">\n";
+    /*
+      Display list of users to assign zone to if creating
+      user has the proper permission to do so.
+     */
+    foreach ($users as $user) {
+        if ($user['id'] === $_SESSION['userid']) {
+            echo "          <option value=\"" . $user['id'] . "\" selected>" . $user['fullname'] . "</option>\n";
+        } elseif ($perm_view_others == "1") {
+            echo "          <option value=\"" . $user['id'] . "\">" . $user['fullname'] . "</option>\n";
+        }
+    }
+    echo "         </select>\n";
+    echo "        </td>\n";
+    echo "        <td class=\"n\">&nbsp;</td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Type') . ":</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <select name=\"dom_type\">\n";
+    foreach ($available_zone_types as $type) {
+        echo "          <option value=\"" . $type . "\">" . strtolower($type) . "</option>\n";
+    }
+    echo "         </select>\n";
+    echo "        </td>\n";
+    echo "        <td>&nbsp;</td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Template') . ":</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <select name=\"zone_template\">\n";
+    echo "          <option value=\"none\">none</option>\n";
+    foreach ($zone_templates as $zone_template) {
+        echo "          <option value=\"" . $zone_template['id'] . "\">" . $zone_template['name'] . "</option>\n";
+    }
+    echo "         </select>\n";
+    echo "        </td>\n";
+    echo "        <td>&nbsp;</td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('DNSSEC') . ":</td>\n";
+    echo "        <td class=\"n\"><input type=\"checkbox\" class=\"input\" name=\"dnssec\" value=\"1\"></td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">&nbsp;</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <input type=\"submit\" class=\"button\" name=\"submit\" value=\"" . _('Add zone') . "\" onclick=\"checkDomainFilled();return false;\">\n";
+    echo "        </td>\n";
+    echo "        <td class=\"n\">&nbsp;</td>\n";
+    echo "       </tr>\n";
+    echo "      </table>\n";
+    echo "     </form>\n";
+}
+
+include_once("inc/footer.inc.php");

+ 129 - 0
devadmin/html/poweradmin-2.1.7/add_zone_slave.php

@@ -0,0 +1,129 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles requests to add new slave zone
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+global $dns_third_level_check;
+
+$owner = "-1";
+if ((isset($_POST['owner'])) && (v_num($_POST['owner']))) {
+    $owner = $_POST['owner'];
+}
+
+$zone = "";
+if (isset($_POST['domain'])) {
+    $zone = trim($_POST['domain']);
+}
+
+$master = "";
+if (isset($_POST['slave_master'])) {
+    $master = $_POST['slave_master'];
+}
+
+$type = "SLAVE";
+
+/*
+  Check permissions
+ */
+(verify_permission('zone_slave_add')) ? $zone_slave_add = "1" : $zone_slave_add = "0";
+(verify_permission('user_view_others')) ? $perm_view_others = "1" : $perm_view_others = "0";
+
+if (isset($_POST['submit']) && $zone_slave_add == "1") {
+    if (!is_valid_hostname_fqdn($zone, 0)) {
+        error(ERR_DNS_HOSTNAME);
+    } elseif ($dns_third_level_check && get_domain_level($zone) > 2 && domain_exists(get_second_level_domain($zone))) {
+        error(ERR_DOMAIN_EXISTS);
+    } elseif (domain_exists($zone) || record_name_exists($zone)) {
+        error(ERR_DOMAIN_EXISTS);
+    } elseif (!is_valid_ipv4($master, false) && !is_valid_ipv6($master)) {
+        error(ERR_DNS_IP);
+    } else {
+        if (add_domain($zone, $owner, $type, $master, 'none')) {
+            success("<a href=\"edit.php?id=" . get_zone_id_from_name($zone) . "\">" . SUC_ZONE_ADD . '</a>');
+            log_info(sprintf('client_ip:%s user:%s operation:add_zone zone:%s zone_type:SLAVE zone_master:%s',
+                              $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"],
+                              $zone, $master, $zone_template));
+            unset($zone, $owner, $webip, $mailip, $empty, $type, $master);
+        }
+    }
+}
+
+if ($zone_slave_add != "1") {
+    error(ERR_PERM_ADD_ZONE_SLAVE);
+} else {
+    echo "     <h2>" . _('Add slave zone') . "</h2>\n";
+
+    $users = show_users();
+    echo "     <form method=\"post\" action=\"add_zone_slave.php\">\n";
+    echo "      <table>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Zone name') . "</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <input type=\"text\" class=\"input\" name=\"domain\" value=\"\">\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('IP address of master NS') . ":</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <input type=\"text\" class=\"input\" name=\"slave_master\" value=\"\">\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Owner') . ":</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <select name=\"owner\">\n";
+    /*
+      Display list of users to assign slave zone to if the
+      editing user has the permissions to, otherise just
+      display the adding users name
+     */
+    foreach ($users as $user) {
+        if ($user['id'] === $_SESSION['userid']) {
+            echo "          <option value=\"" . $user['id'] . "\" selected>" . $user['fullname'] . "</option>\n";
+        } elseif ($perm_view_others == "1") {
+            echo "          <option value=\"" . $user['id'] . "\">" . $user['fullname'] . "</option>\n";
+        }
+    }
+    echo "         </select>\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">&nbsp;</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <input type=\"submit\" class=\"button\" name=\"submit\" value=\"" . _('Add zone') . "\">\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "      </table>\n";
+    echo "     </form>\n";
+}
+
+include_once("inc/footer.inc.php");

+ 66 - 0
devadmin/html/poweradmin-2.1.7/add_zone_templ.php

@@ -0,0 +1,66 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles requests to add new zone templates
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+if (!verify_permission('zone_master_add')) {
+    error(ERR_PERM_ADD_ZONE_TEMPL);
+} else {
+
+    if (isset($_POST['commit'])) {
+        if (add_zone_templ($_POST, $_SESSION['userid'])) {
+            success(SUC_ZONE_TEMPL_ADD);
+        } // TODO: otherwise repopulate values to form
+    }
+
+    /*
+      Display new zone template form
+     */
+
+    $username = get_fullname_from_userid($_SESSION['userid']);
+    echo "    <h2>" . _('Add zone template for') . " " . $username . "</h2>\n";
+    echo "    <form method=\"post\" action=\"add_zone_templ.php\">\n";
+    echo "     <table>\n";
+    echo "      <tr>\n";
+    echo "       <th>" . _('Name') . "</th>\n";
+    echo "       <td><input class=\"wide\" type=\"text\" name=\"templ_name\" value=\"\"></td>\n";
+    echo "      </tr>\n";
+    echo "      <tr>\n";
+    echo "       <th>" . _('Description') . "</th>\n";
+    echo "       <td><input class=\"wide\" type=\"text\" name=\"templ_descr\" value=\"\"></td>\n";
+    echo "      </tr>\n";
+    echo "     </table>\n";
+    echo "     <input type=\"submit\" class=\"button\" name=\"commit\" value=\"" . _('Add zone template') . "\">\n";
+    echo "     </form>\n";
+}
+
+include_once("inc/footer.inc.php");

+ 165 - 0
devadmin/html/poweradmin-2.1.7/add_zone_templ_record.php

@@ -0,0 +1,165 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles requests to add new records to zone templates
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+/*
+  Check and make sure all post values have made it through
+  if not set them.
+ */
+$zone_templ_id = "-1";
+if ((isset($_GET['id'])) && (v_num($_GET['id']))) {
+    $zone_templ_id = $_GET['id'];
+}
+
+$ttl = $dns_ttl;
+if ((isset($_POST['ttl'])) && (v_num($_POST['ttl']))) {
+    $ttl = $_POST['ttl'];
+}
+
+$prio = "";
+if ((isset($_POST['prio'])) && (v_num($_POST['prio']))) {
+    $prio = $_POST['prio'];
+}
+
+if (isset($_POST['name'])) {
+    $name = $_POST['name'];
+} else {
+    $name = "";
+}
+
+if (isset($_POST['type'])) {
+    $type = $_POST['type'];
+} else {
+    $type = "";
+}
+
+if (isset($_POST['content'])) {
+    $content = $_POST['content'];
+} else {
+    $content = "";
+}
+
+if ($zone_templ_id == "-1") {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;
+}
+
+$templ_details = get_zone_templ_details($zone_templ_id);
+$owner = get_zone_templ_is_owner($zone_templ_id, $_SESSION['userid']);
+
+/*
+  If the form as been submitted
+  process it!
+ */
+if (isset($_POST["commit"])) {
+    if (!(verify_permission('zone_master_add')) || !$owner) {
+        error(ERR_PERM_ADD_RECORD);
+    } else {
+        if (add_zone_templ_record($zone_templ_id, $name, $type, $content, $ttl, $prio)) {
+            success(_('The record was successfully added.'));
+            $name = $type = $content = $ttl = $prio = "";
+        }
+    }
+}
+
+/*
+  Display form to add a record
+ */
+echo "    <h2>" . _('Add record to zone template') . " \"" . $templ_details['name'] . "\"</h2>\n";
+
+if (!(verify_permission('zone_master_add')) || !$owner) {
+    error(ERR_PERM_ADD_RECORD);
+} else {
+    echo "     <form method=\"post\">\n";
+    echo "      <input type=\"hidden\" name=\"domain\" value=\"" . $zone_templ_id . "\">\n";
+    echo "      <table border=\"0\" cellspacing=\"4\">\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Name') . "</td>\n";
+    echo "        <td class=\"n\">&nbsp;</td>\n";
+    echo "        <td class=\"n\">" . _('Type') . "</td>\n";
+    echo "        <td class=\"n\">" . _('Content') . "</td>\n";
+    echo "        <td class=\"n\">" . _('Priority') . "</td>\n";
+    echo "        <td class=\"n\">" . _('TTL') . "</td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\"><input type=\"text\" name=\"name\" class=\"input\" value=\"" . $name . "\"></td>\n";
+    echo "        <td class=\"n\">IN</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <select name=\"type\">\n";
+    $found_selected_type = !(isset($type) && $type);
+    foreach (get_record_types() as $record_type) {
+        if (isset($type) && $type) {
+            if ($type == $record_type) {
+                $add = " SELECTED";
+                $found_selected_type = true;
+            } else {
+                $add = "";
+            }
+        } else {
+            // TODO: from where comes $zone_name value and why this check exists here?
+            if (isset($zone_name) && preg_match('/i(p6|n-addr).arpa/i', $zone_name) && strtoupper($record_type) == 'PTR') {
+                $add = " SELECTED";
+            } elseif (strtoupper($record_type) == 'A') {
+                $add = " SELECTED";
+            } else {
+                $add = "";
+            }
+        }
+        echo "          <option" . $add . " value=\"" . $record_type . "\">" . $record_type . "</option>\n";
+    }
+    if (!$found_selected_type)
+        echo "          <option SELECTED value=\"" . htmlspecialchars($type) . "\"><i>" . htmlspecialchars($type) . "</i></option>\n";
+    echo "         </select>\n";
+    echo "        </td>\n";
+    echo "        <td class=\"n\"><input type=\"text\" name=\"content\" class=\"input\" value=\"" . $content . "\"></td>\n";
+    echo "        <td class=\"n\"><input type=\"text\" name=\"prio\" class=\"sinput\" value=\"" . $prio . "\"></td>\n";
+    echo "        <td class=\"n\"><input type=\"text\" name=\"ttl\" class=\"sinput\" value=\"" . $ttl . "\"</td>\n";
+    echo "       </tr>\n";
+    echo "     <tr>\n";
+    echo "      <td colspan=\"6\"><br><b>Hint:</b></td>\n";
+    echo "     </tr>\n";
+    echo "     <tr>\n";
+    echo "      <td colspan=\"6\">" . _('The following placeholders can be used in template records') . "</td>\n";
+    echo "     </tr>\n";
+    echo "     <tr>\n";
+    echo "      <td colspan=\"6\"><br>&nbsp;&nbsp;&nbsp;&nbsp; * [ZONE] - " . _('substituted with current zone name') . "<br>";
+    echo "&nbsp;&nbsp;&nbsp;&nbsp; * [SERIAL] - " . _('substituted with current date and 2 numbers') . " (YYYYMMDD + 00)</td>\n";
+    echo "     </tr>\n";
+    echo "      </table>\n";
+    echo "      <br>\n";
+    echo "      <input type=\"submit\" name=\"commit\" value=\"" . _('Add record') . "\" class=\"button\">\n";
+    echo "     </form>\n";
+}
+
+include_once("inc/footer.inc.php");

+ 9 - 0
devadmin/html/poweradmin-2.1.7/addons/clientip.php

@@ -0,0 +1,9 @@
+<?php
+
+$client_ip = '';
+if (isset($_SERVER['X_HTTP_FORWARDED_FOR'])) {
+    $client_ip = $_SERVER['X_HTTP_FORWARDED_FOR'];
+} else if (isset($_SERVER['REMOTE_ADDR'])) {
+    $client_ip = $_SERVER['REMOTE_ADDR'];
+}
+echo $client_ip;

+ 43 - 0
devadmin/html/poweradmin-2.1.7/addons/dynamic_dns_client.pl

@@ -0,0 +1,43 @@
+#!/usr/bin/env perl
+
+use LWP::Simple;
+
+use strict;
+use warnings;
+
+# change these values
+my $login          = 'username';
+my $password       = 'password';
+my $domain         = 'mydynamicdns.example.com';
+my $poweradmin_url = 'http://www.example.com/poweradmin';
+my $up_update_url  = $poweradmin_url . '/dynamic_update.php';
+my $ip_lookup_url  = $poweradmin_url . '/addons/clientip.php';
+my $verbose        = 1;
+
+my $ip_address = LWP::Simple::get($ip_lookup_url)
+  or die("Error: Could not get your global IP address!\n");
+
+# FIXME: doesn't support IPv6
+if ( $ip_address !~/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ )
+{
+    print
+      "Error: Invalid global IP address! Check if Poweradmin url is correct\n";
+    exit;
+}
+
+print "Updating the IP address ($ip_address) now ... \n" if $verbose;
+
+# insert authentication data to url
+$poweradmin_url =~ s/^(http[s]?:\/\/)/$1$login:$password\@/;
+
+my $response =
+  LWP::Simple::get( "$poweradmin_url/dynamic_update.php"
+      . "?hostname=$domain&myip=$ip_address&verbose=$verbose" )
+  or die($!);
+
+if ( !defined $response || $response eq "" ) {
+    print "Error: Could not contact your poweradmin web server\n";
+    exit(0);
+}
+
+print "Status: $response\n" if $verbose;

+ 164 - 0
devadmin/html/poweradmin-2.1.7/bulk_registration.php

@@ -0,0 +1,164 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles bulk zone registration
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+$owner = "-1";
+if ((isset($_POST['owner'])) && (v_num($_POST['owner']))) {
+    $owner = $_POST['owner'];
+}
+
+$dom_type = "NATIVE";
+if (isset($_POST["dom_type"]) && (in_array($_POST['dom_type'], $server_types))) {
+    $dom_type = $_POST["dom_type"];
+}
+
+if (isset($_POST['domains'])) {
+    $domains = explode("\r\n", $_POST['domains']);
+    foreach ($domains as $key => $domain) {
+        $domain = trim($domain);
+        if ($domain == '') {
+            unset($domains[$key]);
+        } else {
+            $domains[$key] = $domain;
+        }
+    }
+} else {
+    $domains = array();
+}
+
+if (isset($_POST['zone_template'])) {
+    $zone_template = $_POST['zone_template'];
+} else {
+    $zone_template = "none";
+}
+
+/*
+  Check user permissions
+ */
+(verify_permission('zone_master_add')) ? $zone_master_add = "1" : $zone_master_add = "0";
+(verify_permission('user_view_others')) ? $perm_view_others = "1" : $perm_view_others = "0";
+
+if (isset($_POST['submit']) && $zone_master_add == "1") {
+    $error = false;
+    foreach ($domains as $domain) {
+        if (!is_valid_hostname_fqdn($domain, 0)) {
+            error($domain . ' failed - ' . ERR_DNS_HOSTNAME);
+        } elseif (domain_exists($domain)) {
+            error($domain . " failed - " . ERR_DOMAIN_EXISTS);
+            $error = true;
+        } elseif (add_domain($domain, $owner, $dom_type, '', $zone_template)) {
+            success("<a href=\"edit.php?id=" . get_zone_id_from_name($domain) . "\">" . $domain . " - " . SUC_ZONE_ADD . '</a>');
+        }
+    }
+
+    if (false === $error) {
+        unset($domains, $owner, $dom_type, $zone_template);
+    }
+}
+
+if ($zone_master_add != "1") {
+    error(ERR_PERM_ADD_ZONE_MASTER);
+} else {
+    echo "     <h2>" . _('Bulk registration') . "</h2>\n";
+
+    $available_zone_types = array("MASTER", "NATIVE");
+    $users = show_users();
+    $zone_templates = get_list_zone_templ($_SESSION['userid']);
+
+    echo "     <form method=\"post\" action=\"bulk_registration.php\">\n";
+    echo "      <table>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\" width=\"100\">" . _('Owner') . ":</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <select name=\"owner\">\n";
+    /*
+      Display list of users to assign zone to if creating
+      user has the proper permission to do so.
+     */
+    foreach ($users as $user) {
+        if ($user['id'] === $_SESSION['userid']) {
+            echo "          <option value=\"" . $user['id'] . "\" selected>" . $user['fullname'] . "</option>\n";
+        } elseif ($perm_view_others == "1") {
+            echo "          <option value=\"" . $user['id'] . "\">" . $user['fullname'] . "</option>\n";
+        }
+    }
+    echo "         </select>\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Type') . ":</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <select name=\"dom_type\">\n";
+    foreach ($available_zone_types as $type) {
+        echo "          <option value=\"" . $type . "\">" . strtolower($type) . "</option>\n";
+    }
+    echo "         </select>\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Template') . ":</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <select name=\"zone_template\">\n";
+    echo "          <option value=\"none\">none</option>\n";
+    foreach ($zone_templates as $zone_template) {
+        echo "          <option value=\"" . $zone_template['id'] . "\">" . $zone_template['name'] . "</option>\n";
+    }
+    echo "         </select>\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">" . _('Zones') . ":</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <ul id=\"domain_names\" style=\"list-style-type:none; padding:0 \">\n";
+    echo "		<li>" . _('Type one domain per line') . ":</li>\n";
+    echo "          <li><textarea class=\"input\" name=\"domains\" rows=\"10\" cols=\"30\" style=\"width: 500px;\">";
+    if (isset($error) && isset($_POST['domains'])) {
+        echo $_POST['domains'];
+    }
+    echo "</textarea></li>\n";
+    echo "         </ol>\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+
+    echo "       <tr>\n";
+    echo "        <td class=\"n\">&nbsp;</td>\n";
+    echo "        <td class=\"n\">\n";
+    echo "         <input type=\"submit\" class=\"button\" name=\"submit\" value=\"" . _('Add zones') . "\">\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "      </table>\n";
+    echo "     </form>\n";
+}
+
+include_once("inc/footer.inc.php");

+ 64 - 0
devadmin/html/poweradmin-2.1.7/change_password.php

@@ -0,0 +1,64 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles user password changes
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+
+if (isset($_POST['submit']) && $_POST['submit']) {
+    change_user_pass($_POST);
+}
+
+include_once("inc/header.inc.php");
+
+echo "    <h2>" . _('Change password') . "</h2>\n";
+echo "    <form method=\"post\" action=\"change_password.php\">\n";
+echo "     <table border=\"0\" cellspacing=\"4\">\n";
+echo "      <tr>\n";
+echo "       <td class=\"n\">" . _('Current password') . ":</td>\n";
+echo "       <td class=\"n\"><input type=\"password\" class=\"input\" name=\"currentpass\" value=\"\"></td>\n";
+echo "      </tr>\n";
+echo "      <tr>\n";
+echo "       <td class=\"n\">" . _('New password') . ":</td>\n";
+echo "       <td class=\"n\"><input type=\"password\" class=\"input\" name=\"newpass\" value=\"\"></td>\n";
+echo "      </tr>\n";
+echo "      <tr>\n";
+echo "       <td class=\"n\">" . _('New password') . ":</td>\n";
+echo "       <td class=\"n\"><input type=\"password\" class=\"input\" name=\"newpass2\" value=\"\"></td>\n";
+echo "      </tr>\n";
+echo "      <tr>\n";
+echo "       <td class=\"n\">&nbsp;</td>\n";
+echo "       <td class=\"n\">\n";
+echo "        <input type=\"submit\" class=\"button\" name=\"submit\" value=\"" . _('Change password') . "\">\n";
+echo "       </td>\n";
+echo "      </tr>\n";
+echo "     </table>\n";
+echo "    </form>\n";
+
+include_once("inc/footer.inc.php");

+ 103 - 0
devadmin/html/poweradmin-2.1.7/delete_domain.php

@@ -0,0 +1,103 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles zone deletion
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+global $pdnssec_use;
+
+if (verify_permission('zone_content_edit_others')) {
+    $perm_edit = "all";
+} elseif (verify_permission('zone_content_edit_own')) {
+    $perm_edit = "own";
+} else {
+    $perm_edit = "none";
+}
+
+$zone_id = "-1";
+if (isset($_GET['id']) && v_num($_GET['id'])) {
+    $zone_id = $_GET['id'];
+}
+
+$confirm = "-1";
+if (isset($_GET['confirm']) && v_num($_GET['confirm'])) {
+    $confirm = $_GET['confirm'];
+}
+
+$zone_info = get_zone_info_from_id($zone_id);
+if (!$zone_info) {
+    header("Location: list_zones.php");
+    exit;
+}
+$zone_owners = get_fullnames_owners_from_domainid($zone_id);
+$user_is_zone_owner = verify_user_is_owner_zoneid($zone_id);
+
+if ($zone_id == "-1") {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;
+}
+
+echo "     <h2>" . _('Delete zone') . " \"" . $zone_info['name'] . "\"</h2>\n";
+
+if ($confirm == '1') {
+    if ($zone_info['type'] == 'MASTER') {
+        $zone_name = get_zone_name_from_id($zone_id);
+        dnssec_unsecure_zone($zone_name);
+    }
+
+    if (delete_domain($zone_id)) {
+        success(SUC_ZONE_DEL);
+        log_info(sprintf('client_ip:%s user:%s operation:delete_zone zone:%s zone_type:%s',
+                          $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"],
+                          $zone_info['name'], $zone_info['type']));
+    }
+} else {
+    if ($perm_edit == "all" || ( $perm_edit == "own" && $user_is_zone_owner == "1")) {
+        echo "      " . _('Owner') . ": " . $zone_owners . "<br>\n";
+        echo "      " . _('Type') . ": " . $zone_info['type'] . "\n";
+        if ($zone_info['type'] == "SLAVE") {
+            $slave_master = get_domain_slave_master($zone_id);
+            if (supermaster_exists($slave_master)) {
+                echo "        <p>         \n";
+                printf(_('You are about to delete a slave zone of which the master nameserver, %s, is a supermaster. Deleting the zone now, will result in temporary removal only. Whenever the supermaster sends a notification for this zone, it will be added again!'), $slave_master);
+                echo "        </p>\n";
+            }
+        }
+        echo "     <p>" . _('Are you sure?') . "</p>\n";
+        echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='delete_domain.php?id=" . $zone_id . "&amp;confirm=1'\" value=\"" . _('Yes') . "\">\n";
+        echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='index.php'\" value=\"" . _('No') . "\">\n";
+    } else {
+        error(ERR_PERM_DEL_ZONE);
+    }
+}
+
+include_once("inc/footer.inc.php");

+ 103 - 0
devadmin/html/poweradmin-2.1.7/delete_domains.php

@@ -0,0 +1,103 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles zones deletion
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+if (verify_permission('zone_content_edit_others')) {
+    $perm_edit = "all";
+} elseif (verify_permission('zone_content_edit_own')) {
+    $perm_edit = "own";
+} else {
+    $perm_edit = "none";
+}
+
+$confirm = "-1";
+if (isset($_POST['confirm'])) {
+    $confirm = "1";
+}
+
+$zones = $_POST['zone_id'];
+if (!$zones) {
+    header("Location: list_zones.php");
+    exit;
+}
+
+echo "     <h2>" . _('Delete zones') . "</h2>\n";
+
+if ($confirm == '1') {
+    //Fetch information about zones before deleting them
+    $deleted_zones = array();
+    foreach ($zones as $zone) {
+        $zone_info = get_zone_info_from_id($zone);
+        array_push($deleted_zones,$zone_info);
+    }
+    $delete_domains = delete_domains($zones);
+    if ($delete_domains) {
+        count($deleted_zones) == 1 ? success(SUC_ZONE_DEL) : success(SUC_ZONES_DEL);
+        //Zones successfully deleted so generate log messages from information retrieved earlier
+        foreach ($deleted_zones as $zone_info) {
+            log_info(sprintf('client_ip:%s user:%s operation:delete_zone zone:%s zone_type:%s',
+                              $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"],
+                              $zone_info['name'], $zone_info['type']));
+        }
+    }
+} else {
+    echo "     <form method=\"post\" action=\"delete_domains.php\">\n";
+    foreach ($zones as $zone) {
+        $zone_owners = get_fullnames_owners_from_domainid($zone);
+        $user_is_zone_owner = verify_user_is_owner_zoneid($zone);
+        $zone_info = get_zone_info_from_id($zone);
+        if ($perm_edit == "all" || ( $perm_edit == "own" && $user_is_zone_owner == "1")) {
+            echo "      <input type=\"hidden\" name=\"zone_id[]\" value=\"" . $zone . "\">\n";
+            echo "      " . _('Name') . ": " . $zone_info['name'] . "<br>\n";
+            echo "      " . _('Owner') . ": " . $zone_owners . "<br>\n";
+            echo "      " . _('Type') . ": " . $zone_info['type'] . "\n";
+            if ($zone_info['type'] == "SLAVE") {
+                $slave_master = get_domain_slave_master($zone);
+                if (supermaster_exists($slave_master)) {
+                    echo "        <p>         \n";
+                    printf(_('You are about to delete a slave zone of which the master nameserver, %s, is a supermaster. Deleting the zone now, will result in temporary removal only. Whenever the supermaster sends a notification for this zone, it will be added again!'), $slave_master);
+                    echo "        </p>\n";
+                }
+            }
+            echo "     <br><br>\n";
+        } else {
+            error(ERR_PERM_DEL_ZONE);
+        }
+    }
+    echo "                     <p>" . _('Are you sure?') . "</p>\n";
+    echo "                     <input type=\"submit\" name=\"confirm\" value=\"" . _('Yes') . "\" class=\"button\">\n";
+    echo "                     <input type=\"button\" class=\"button\" OnClick=\"location.href='list_zones.php'\" value=\"" . _('No') . "\">\n";
+    echo "     </form>\n";
+}
+
+include_once("inc/footer.inc.php");

+ 67 - 0
devadmin/html/poweradmin-2.1.7/delete_perm_templ.php

@@ -0,0 +1,67 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles deletion of zone templates
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+$perm_templ = "-1";
+if (isset($_GET['id']) && (v_num($_GET['id']))) {
+    $perm_templ = $_GET['id'];
+}
+
+$confirm = "-1";
+if ((isset($_GET['confirm'])) && v_num($_GET['confirm'])) {
+    $confirm = $_GET['confirm'];
+}
+
+if ($perm_templ == "-1") {
+    error(ERR_INV_INPUT);
+} else {
+    if (!(verify_permission('user_edit_templ_perm'))) {
+        error(ERR_PERM_DEL_PERM_TEMPL);
+    } else {
+        $templ_details = get_permission_template_details($perm_templ);
+        echo "     <h2>" . _('Delete permission template') . " \"" . $templ_details['name'] . "\"</h2>\n";
+
+        if (isset($_GET['confirm']) && $_GET["confirm"] == '1') {
+            if (delete_perm_templ($perm_templ)) {
+                success(SUC_PERM_TEMPL_DEL);
+            }
+        } else {
+            echo "     <p>" . _('Are you sure?') . "</p>\n";
+            echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='delete_perm_templ.php?id=" . $perm_templ . "&amp;confirm=1'\" value=\"" . _('Yes') . "\">\n";
+            echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='index.php'\" value=\"" . _('No') . "\">\n";
+        }
+    }
+}
+
+include_once("inc/footer.inc.php");
+

+ 134 - 0
devadmin/html/poweradmin-2.1.7/delete_record.php

@@ -0,0 +1,134 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles record deletions from zones
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+global $pdnssec_use;
+
+$record_id = "-1";
+if (isset($_GET['id']) && v_num($_GET['id'])) {
+    $record_id = $_GET['id'];
+}
+
+$confirm = "-1";
+if (isset($_GET['confirm']) && v_num($_GET['confirm'])) {
+    $confirm = $_GET['confirm'];
+}
+
+if (verify_permission('zone_content_edit_others')) {
+    $perm_content_edit = "all";
+} elseif (verify_permission('zone_content_edit_own')) {
+    $perm_content_edit = "own";
+} else {
+    $perm_content_edit = "none";
+}
+
+$zid = get_zone_id_from_record_id($_GET['id']);
+if ($zid == NULL) {
+    header("Location: list_zones.php");
+    exit;
+}
+$user_is_zone_owner = verify_user_is_owner_zoneid($zid);
+
+$zone_info = get_zone_info_from_id($zid);
+
+if ($record_id == "-1") {
+    error(ERR_INV_INPUT);
+} else {
+    if ($confirm == '1') {
+        $record_info = get_record_from_id($record_id);
+        if (delete_record($record_id)) {
+            success("<a href=\"edit.php?id=" . $zid . "\">" . SUC_RECORD_DEL . "</a>");
+            if (isset($record_info['prio'])) {
+                log_info(sprintf('client_ip:%s user:%s operation:delete_record record_type:%s record:%s content:%s ttl:%s priority:%s',
+                     $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"],
+                     $record_info['type'], $record_info['name'], $record_info['content'], $record_info['ttl'], $record_info['prio'] ));
+            } else {
+                log_info(sprintf('client_ip:%s user:%s operation:delete_record record_type:%s record:%s content:%s ttl:%s',
+                     $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"],
+                     $record_info['type'], $record_info['name'], $record_info['content'], $record_info['ttl'] ));
+
+            }
+
+            delete_record_zone_templ($record_id);
+
+            // update serial after record deletion
+            update_soa_serial($zid);
+
+            if ($pdnssec_use) {
+                // do also rectify-zone
+                if (dnssec_rectify_zone($zid)) {
+                    success(SUC_EXEC_PDNSSEC_RECTIFY_ZONE);
+                }
+            }
+        }
+    } else {
+        $zone_id = recid_to_domid($record_id);
+        $zone_name = get_zone_name_from_id($zone_id);
+        $user_is_zone_owner = verify_user_is_owner_zoneid($zone_id);
+        $record_info = get_record_from_id($record_id);
+
+        echo "     <h2>" . _('Delete record in zone') . " \"<a href=\"edit.php?id=" . $zid . "\">" . $zone_name . "</a>\"</h2>\n";
+
+        if ($zone_info['type'] == "SLAVE" || $perm_content_edit == "none" || $perm_content_edit == "own" && $user_is_zone_owner == "0") {
+            error(ERR_PERM_EDIT_RECORD);
+        } else {
+            echo "     <table>\n";
+            echo "      <tr>\n";
+            echo "       <th>Name</th>\n";
+            echo "       <th>Type</th>\n";
+            echo "       <th>Content</th>\n";
+            if (isset($record_info['prio'])) {
+                echo "       <th>Priority</th>\n";
+            }
+            echo "       <th>TTL</th>\n";
+            echo "      </tr>\n";
+            echo "      <tr>\n";
+            echo "       <td>" . $record_info['name'] . "</td>\n";
+            echo "       <td>" . $record_info['type'] . "</td>\n";
+            echo "       <td>" . $record_info['content'] . "</td>\n";
+            if (isset($record_info['prio'])) {
+                echo "       <td>" . $record_info['prio'] . "</td>\n";
+            }
+            echo "       <td>" . $record_info['ttl'] . "</td>\n";
+            echo "      </tr>\n";
+            echo "     </table>\n";
+            if (($record_info['type'] == 'NS' && $record_info['name'] == $zone_name) || $record_info['type'] == 'SOA') {
+                echo "     <p>" . _('You are trying to delete a record that is needed for this zone to work.') . "</p>\n";
+            }
+            echo "     <p>" . _('Are you sure?') . "</p>\n";
+            echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='delete_record.php?id=" . $record_id . "&amp;confirm=1'\" value=\"" . _('Yes') . "\">\n";
+            echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='edit.php?id=" . $zid . "'\" value=\"" . _('No') . "\">\n";
+        }
+    }
+}
+include_once("inc/footer.inc.php");

+ 82 - 0
devadmin/html/poweradmin-2.1.7/delete_supermaster.php

@@ -0,0 +1,82 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles deletion of supermasters
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+$master_ip = "-1";
+if (isset($_GET['master_ip']) && (is_valid_ipv4($_GET['master_ip']) || is_valid_ipv6($_GET['master_ip']))) {
+    $master_ip = $_GET['master_ip'];
+}
+
+$ns_name = "-1";
+if (isset($_GET['ns_name']) && (is_valid_hostname_fqdn($_GET['ns_name'], 0))) {
+    $ns_name = $_GET['ns_name'];
+}
+
+$confirm = "-1";
+if ((isset($_GET['confirm'])) && (v_num($_GET['confirm']))) {
+    $confirm = $_GET['confirm'];
+}
+
+if ($master_ip == "-1" || $ns_name == "-1") {
+    error(ERR_INV_INPUT);
+} else {
+    (verify_permission('supermaster_edit')) ? $perm_sm_edit = "1" : $perm_sm_edit = "0";
+    if ($perm_sm_edit == "0") {
+        error(ERR_PERM_DEL_SM);
+    } else {
+        $info = get_supermaster_info_from_ip($master_ip);
+
+        echo "     <h2>" . _('Delete supermaster') . " \"" . $master_ip . "\"</h2>\n";
+
+        if (isset($_GET['confirm']) && $_GET["confirm"] == '1') {
+            if (!supermaster_ip_name_exists($master_ip, $ns_name)) {
+                header("Location: list_supermasters.php");
+                exit;
+            }
+
+            if (delete_supermaster($master_ip, $ns_name)) {
+                success(SUC_SM_DEL);
+            }
+        } else {
+            echo "     <p>\n";
+            echo "      " . _('Hostname in NS record') . ": " . $info['ns_name'] . "<br>\n";
+            echo "      " . _('Account') . ": " . $info['account'] . "\n";
+            echo "     </p>\n";
+            echo "     <p>" . _('Are you sure?') . "</p>\n";
+            echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='delete_supermaster.php?master_ip=" . $master_ip . "&amp;ns_name=" . $info['ns_name'] . "&amp;confirm=1'\" value=\"" . _('Yes') . "\">\n";
+            echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='index.php'\" value=\"" . _('No') . "\">\n";
+        }
+    }
+}
+
+include_once("inc/footer.inc.php");

+ 127 - 0
devadmin/html/poweradmin-2.1.7/delete_user.php

@@ -0,0 +1,127 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles user deletion
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+verify_permission('user_edit_own') ? $perm_edit_own = "1" : $perm_edit_own = "0";
+verify_permission('user_edit_others') ? $perm_edit_others = "1" : $perm_edit_others = "0";
+verify_permission('user_is_ueberuser') ? $perm_is_godlike = "1" : $perm_is_godlike = "0";
+
+if (!(isset($_GET['id']) && v_num($_GET['id']))) {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;
+} else {
+    $uid = $_GET['id'];
+}
+
+if (isset($_POST['commit'])) {
+
+    if (is_valid_user($uid)) {
+        $zones = array();
+        if (isset($_POST['zone'])) {
+            $zones = $_POST['zone'];
+        }
+
+        if (delete_user($uid, $zones)) {
+            success(SUC_USER_DEL);
+        }
+    } else {
+        header("Location: users.php");
+        exit;
+    }
+} else {
+
+    if (($uid != $_SESSION['userid'] && $perm_edit_others == "0") || ($uid == $_SESSION['userid'] && $perm_is_godlike == "0")) {
+        error(ERR_PERM_DEL_USER);
+        include_once("inc/footer.inc.php");
+        exit;
+    } else {
+        $fullname = get_fullname_from_userid($uid);
+        $zones = get_zones("own", $uid);
+
+        echo "     <h2>" . _('Delete user') . " \"" . $fullname . "\"</h2>\n";
+        echo "     <form method=\"post\" action=\"\">\n";
+        echo "      <table>\n";
+
+        if (count($zones) > 0) {
+
+            $users = show_users();
+
+            echo "       <tr>\n";
+            echo "        <td colspan=\"5\">\n";
+
+            echo "         " . _('You are about to delete a user. This user is owner for a number of zones. Please decide what to do with these zones.') . "\n";
+            echo "        </td>\n";
+            echo "       </tr>\n";
+
+            echo "       <tr>\n";
+            echo "        <th>" . _('Zone') . "</th>\n";
+            echo "        <th>" . _('Delete') . "</th>\n";
+            echo "        <th>" . _('Leave') . "</th>\n";
+            echo "        <th>" . _('Add new owner') . "</th>\n";
+            echo "        <th>" . _('Owner to be added') . "</th>\n";
+            echo "       </tr>\n";
+
+            foreach ($zones as $zone) {
+                echo "       <input type=\"hidden\" name=\"zone[" . $zone['id'] . "][zid]\" value=\"" . $zone['id'] . "\">\n";
+                echo "       <tr>\n";
+                echo "        <td>" . $zone['name'] . "</td>\n";
+                echo "        <td><input type=\"radio\" name=\"zone[" . $zone['id'] . "][target]\" value=\"delete\"></td>\n";
+                echo "        <td><input type=\"radio\" name=\"zone[" . $zone['id'] . "][target]\" value=\"leave\" CHECKED></td>\n";
+                echo "        <td><input type=\"radio\" name=\"zone[" . $zone['id'] . "][target]\" value=\"new_owner\"></td>\n";
+                echo "        <td>\n";
+                echo "         <select name=\"zone[" . $zone['id'] . "][newowner]\">\n";
+
+                foreach ($users as $user) {
+                    echo "          <option value=\"" . $user["id"] . "\">" . $user["fullname"] . "</option>\n";
+                }
+
+                echo "         </select>\n";
+                echo "        </td>\n";
+                echo "       </tr>\n";
+            }
+        }
+        echo "       <tr>\n";
+        echo "        <td colspan=\"5\">\n";
+
+        echo "         " . _('Really delete this user?') . "\n";
+        echo "        </td>\n";
+        echo "       </tr>\n";
+
+        echo "      </table>\n";
+        echo "     <input type=\"submit\" class=\"button\" name=\"commit\" value=\"" . _('Commit changes') . "\">\n";
+        echo "     </form>\n";
+    }
+}
+
+include_once("inc/footer.inc.php");

+ 66 - 0
devadmin/html/poweradmin-2.1.7/delete_zone_templ.php

@@ -0,0 +1,66 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles zone template deletion
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+$zone_templ_id = "-1";
+if (isset($_GET['id']) && (v_num($_GET['id']))) {
+    $zone_templ_id = $_GET['id'];
+}
+
+$confirm = "-1";
+if ((isset($_GET['confirm'])) && v_num($_GET['confirm'])) {
+    $confirm = $_GET['confirm'];
+}
+
+$owner = get_zone_templ_is_owner($zone_templ_id, $_SESSION['userid']);
+if ($zone_templ_id == "-1") {
+    error(ERR_INV_INPUT);
+} else {
+    if (!verify_permission('zone_master_add') || !$owner) {
+        error(ERR_PERM_DEL_ZONE_TEMPL);
+    } else {
+        $templ_details = get_zone_templ_details($zone_templ_id);
+        echo "     <h2>" . _('Delete zone template') . " \"" . $templ_details['name'] . "\"</h2>\n";
+
+        if (isset($_GET['confirm']) && $_GET["confirm"] == '1') {
+            delete_zone_templ($zone_templ_id);
+            success(SUC_ZONE_TEMPL_DEL);
+        } else {
+            echo "     <p>" . _('Are you sure?') . "</p>\n";
+            echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='delete_zone_templ.php?id=" . $zone_templ_id . "&amp;confirm=1'\" value=\"" . _('Yes') . "\">\n";
+            echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='index.php'\" value=\"" . _('No') . "\">\n";
+        }
+    }
+}
+
+include_once("inc/footer.inc.php");

+ 89 - 0
devadmin/html/poweradmin-2.1.7/delete_zone_templ_record.php

@@ -0,0 +1,89 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that record deletion from zone template
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+$record_id = "-1";
+if (isset($_GET['id']) && v_num($_GET['id'])) {
+    $record_id = $_GET['id'];
+}
+
+$zone_templ_id = "-1";
+if (isset($_GET['zone_templ_id']) && v_num($_GET['zone_templ_id'])) {
+    $zone_templ_id = $_GET['zone_templ_id'];
+}
+
+$confirm = "-1";
+if (isset($_GET['confirm']) && v_num($_GET['confirm'])) {
+    $confirm = $_GET['confirm'];
+}
+
+if ($record_id == "-1" || $zone_templ_id == "-1") {
+    error(ERR_INV_INPUT);
+} else {
+    $owner = get_zone_templ_is_owner($zone_templ_id, $_SESSION['userid']);
+    if ($confirm == '1' && $owner) {
+        if (delete_zone_templ_record($record_id)) {
+            success(SUC_RECORD_DEL);
+        }
+    } else {
+        $templ_details = get_zone_templ_details($zone_templ_id);
+        $record_info = get_zone_templ_record_from_id($record_id);
+
+        echo "     <h2>" . _('Delete record in zone') . " \"" . $templ_details['name'] . "\"</h2>\n";
+
+        if (!(verify_permission('zone_master_add')) || !$owner) {
+            error(ERR_PERM_DEL_RECORD);
+        } else {
+            echo "     <table>\n";
+            echo "      <tr>\n";
+            echo "       <th>Name</th>\n";
+            echo "       <th>Type</th>\n";
+            echo "       <th>Content</th>\n";
+            echo "       <th>Priority</th>\n";
+            echo "       <th>TTL</th>\n";
+            echo "      </tr>\n";
+            echo "      <tr>\n";
+            echo "       <td>" . $record_info['name'] . "</td>\n";
+            echo "       <td>" . $record_info['type'] . "</td>\n";
+            echo "       <td>" . $record_info['content'] . "</td>\n";
+            echo "       <td>" . $record_info['prio'] . "</td>\n";
+            echo "       <td>" . $record_info['ttl'] . "</td>\n";
+            echo "      </tr>\n";
+            echo "     </table>\n";
+            echo "     <p>" . _('Are you sure?') . "</p>\n";
+            echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='delete_zone_templ_record.php?id=" . $record_id . "&amp;zone_templ_id=" . $zone_templ_id . "&amp;confirm=1'\" value=\"" . _('Yes') . "\">\n";
+            echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='index.php'\" value=\"" . _('No') . "\">\n";
+        }
+    }
+}
+include_once("inc/footer.inc.php");

+ 113 - 0
devadmin/html/poweradmin-2.1.7/dnssec.php

@@ -0,0 +1,113 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Script that handles editing of zone records
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+global $pdnssec_use;
+
+$zone_id = "-1";
+if (isset($_GET['id']) && v_num($_GET['id'])) {
+    $zone_id = $_GET['id'];
+}
+
+if ($zone_id == "-1") {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;
+}
+
+/*
+  Check permissions
+ */
+$user_is_zone_owner = verify_user_is_owner_zoneid($zone_id);
+if ($perm_meta_edit == "all" || ( $perm_meta_edit == "own" && $user_is_zone_owner == "1")) {
+    $meta_edit = "1";
+} else {
+    $meta_edit = "0";
+}
+
+(verify_permission('user_view_others')) ? $perm_view_others = "1" : $perm_view_others = "0";
+
+if ($perm_view == "none" || $perm_view == "own" && $user_is_zone_owner == "0") {
+    error(ERR_PERM_VIEW_ZONE);
+    include_once("inc/footer.inc.php");
+    exit();
+}
+
+if (zone_id_exists($zone_id) == "0") {
+    error(ERR_ZONE_NOT_EXIST);
+    include_once("inc/footer.inc.php");
+    exit();
+}
+
+$domain_type = get_domain_type($zone_id);
+$domain_name = get_zone_name_from_id($zone_id);
+$record_count = count_zone_records($zone_id);
+$zone_templates = get_list_zone_templ($_SESSION['userid']);
+$zone_template_id = get_zone_template($zone_id);
+
+echo "   <h2>" . _('DNSSEC keys for zone') . " \"" . get_zone_name_from_id($zone_id) . "\"</h2>\n";
+
+echo "     <table>\n";
+echo "      <tr>\n";
+echo "       <th>&nbsp;</th>\n";
+echo "       <th>" . _('ID') . "</th>\n";
+echo "       <th>" . _('Type') . "</th>\n";
+echo "       <th>" . _('Tag') . "</th>\n";
+echo "       <th>" . _('Algorithm') . "</th>\n";
+echo "       <th>" . _('Bits') . "</th>\n";
+echo "       <th>" . _('Active') . "</th>\n";
+echo "      </tr>\n";
+
+$keys = dnssec_get_keys($domain_name);
+
+foreach ($keys as $item) {
+    echo "<tr>\n";
+    echo "<td width=\"60\" class=\"actions\">&nbsp;\n";
+    echo "<a href=\"dnssec_edit_key.php?id=" . $zone_id . "&key_id=" . $item[0] . "\"><img src=\"images/edit.gif\" title=\"" . _('Edit zone key') . " " . $item[0] . "\" alt=\"[ " . _('Edit zone key') . " " . $domain_name . " ]\"></a>\n";
+    echo "<a href=\"dnssec_delete_key.php?id=" . $zone_id . "&key_id=" . $item[0] . "\"><img src=\"images/delete.gif\" title=\"" . _('Delete zone key') . " " . $item[0] . "\" alt=\"[ " . _('Delete zone key') . " " . $domain_name . " ]\"></a>\n";
+    echo "</td>";
+    echo "<td class=\"cell\">".$item[0]."</td>\n";
+    echo "<td class=\"cell\">".$item[1]."</td>\n";
+    echo "<td class=\"cell\">".$item[2]."</td>\n";
+    echo "<td class=\"cell\">".dnssec_algorithm_to_name($item[3])."</td>\n";
+    echo "<td class=\"cell\">".$item[4]."</td>\n";
+    echo "<td class=\"cell\">".($item[5] ? _('Yes') : _('No'))."</td>\n";
+    echo "</tr>\n";
+}
+
+echo "     </table>\n";
+echo "      <input type=\"button\" class=\"button\" onclick=\"location.href = 'dnssec_add_key.php?id=".$zone_id."';\" value=\"" . _('Add new key') . "\">\n";
+echo "      <input type=\"button\" class=\"button\" onclick=\"location.href = 'dnssec_ds_dnskey.php?id=".$zone_id."';\" value=\"" . _('Show DS and DNSKEY') . "\">\n";
+
+include_once("inc/footer.inc.php");

+ 150 - 0
devadmin/html/poweradmin-2.1.7/dnssec_add_key.php

@@ -0,0 +1,150 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles requests to add new supermaster servers
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+$zone_id = "-1";
+if (isset($_GET['id']) && v_num($_GET['id'])) {
+    $zone_id = $_GET['id'];
+}
+
+$user_is_zone_owner = verify_user_is_owner_zoneid($zone_id);
+
+if ($user_is_zone_owner == "0") {
+    error(ERR_PERM_VIEW_ZONE);
+    include_once("inc/footer.inc.php");
+    exit();
+}
+
+if (zone_id_exists($zone_id) == "0") {
+    error(ERR_ZONE_NOT_EXIST);
+    include_once("inc/footer.inc.php");
+    exit();
+}
+
+$key_type = "";
+if (isset($_POST['key_type'])) {
+    $key_type = $_POST['key_type'];
+
+    if ($key_type != 'ksk' && $key_type != 'zsk') {
+        error(ERR_INV_INPUT);
+        include_once("inc/footer.inc.php");
+        exit;
+    }
+}
+
+$bits = "";
+if (isset($_POST["bits"])) {
+    $bits = $_POST["bits"];
+
+    $valid_values = array('2048', '1024', '768', '384', '256');
+    if (!in_array($bits, $valid_values)) {
+        error(ERR_INV_INPUT);
+        include_once("inc/footer.inc.php");
+        exit;
+    }
+}
+
+$algorithm = "";
+if (isset($_POST["algorithm"])) {
+    $algorithm = $_POST["algorithm"];
+
+    $valid_algorithm = array('rsasha1', 'rsasha256', 'rsasha512', 'gost', 'ecdsa256', 'ecdsa384');
+    if (!in_array($algorithm, $valid_algorithm)) {
+        error(ERR_INV_INPUT);
+        include_once("inc/footer.inc.php");
+        exit;
+    }
+}
+
+$domain_name = get_zone_name_from_id($zone_id);
+if (isset($_POST["submit"])) {
+    if (dnssec_add_zone_key($domain_name, $key_type, $bits, $algorithm)) {
+        success(SUC_EXEC_PDNSSEC_ADD_ZONE_KEY);
+    } else {
+        error(ERR_EXEC_PDNSSEC_ADD_ZONE_KEY);
+    }
+}
+
+echo "     <h2>" . _('Add key for zone '). $domain_name . "</h2>\n";
+
+echo "     <form method=\"post\" action=\"dnssec_add_key.php?id=".$zone_id."\">\n";
+echo "      <table>\n";
+echo "       <tr>\n";
+echo "        <td width=\"100\" class=\"n\">" . _('Key type') . "</td>\n";
+echo "        <td class=\"n\">\n";
+echo "         <select name=\"key_type\">\n";
+echo "          <option value=\"\"></option>\n";
+echo "          <option value=\"ksk\">KSK</option>\n";
+echo "          <option value=\"zsk\">ZSK</option>\n";
+echo "         </select>\n";
+echo "        </td>\n";
+echo "       </tr>\n";
+echo "       <tr>\n";
+echo "        <td class=\"n\">" . _('Bits in length') . "</td>\n";
+echo "        <td class=\"n\">\n";
+echo "         <select name=\"bits\">\n";
+echo "          <option value=\"\"></option>\n";
+echo "          <option value=\"2048\">2048</option>\n";
+echo "          <option value=\"1024\">1024</option>\n";
+echo "          <option value=\"768\">768</option>\n";
+echo "          <option value=\"384\">384</option>\n";
+echo "          <option value=\"256\">256</option>\n";
+echo "         </select>\n";
+echo "        </td>\n";
+echo "       </tr>\n";
+echo "       <tr>\n";
+echo "        <td class=\"n\">" . _('Algorithm') . "</td>\n";
+echo "        <td class=\"n\">\n";
+
+echo "         <select name=\"algorithm\">\n";
+echo "          <option value=\"\"></option>\n";
+echo "          <option value=\"rsasha1\">".dnssec_shorthand_to_algorithm_name('rsasha1')."</option>\n";
+echo "          <option value=\"rsasha256\">".dnssec_shorthand_to_algorithm_name('rsasha256')."</option>\n";
+echo "          <option value=\"rsasha512\">".dnssec_shorthand_to_algorithm_name('rsasha512')."</option>\n";
+echo "          <option value=\"gost\">".dnssec_shorthand_to_algorithm_name('gost')."</option>\n";
+echo "          <option value=\"ecdsa256\">".dnssec_shorthand_to_algorithm_name('ecdsa256')."</option>\n";
+echo "          <option value=\"ecdsa384\">".dnssec_shorthand_to_algorithm_name('ecdsa384')."</option>\n";
+echo "         </select>\n";
+
+echo "        </td>\n";
+echo "       </tr>\n";
+echo "       <tr>\n";
+echo "        <td class=\"n\">&nbsp;</td>\n";
+echo "        <td class=\"n\">\n";
+echo "         <input type=\"submit\" class=\"button\" name=\"submit\" value=\"" . _('Add key') . "\">\n";
+echo "        </td>\n";
+echo "       </tr>\n";
+echo "      </table>\n";
+echo "     </form>\n";
+
+include_once("inc/footer.inc.php");

+ 98 - 0
devadmin/html/poweradmin-2.1.7/dnssec_delete_key.php

@@ -0,0 +1,98 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles zone deletion
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+global $pdnssec_use;
+
+$zone_id = "-1";
+if (isset($_GET['id']) && v_num($_GET['id'])) {
+    $zone_id = $_GET['id'];
+}
+
+$key_id = "-1";
+if (isset($_GET['key_id']) && v_num($_GET['key_id'])) {
+    $key_id = (int) $_GET['key_id'];
+}
+
+$confirm = "-1";
+if (isset($_GET['confirm']) && v_num($_GET['confirm'])) {
+    $confirm = $_GET['confirm'];
+}
+
+$user_is_zone_owner = verify_user_is_owner_zoneid($zone_id);
+
+if ($zone_id == "-1") {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;
+}
+
+$domain_name = get_zone_name_from_id($zone_id);
+
+if ($key_id == "-1") {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;
+}
+
+if (!dnssec_zone_key_exists($domain_name, $key_id)) {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;    
+}
+
+echo "     <h2>" . _('Delete zone key') . "</h2>\n";
+
+if ($confirm == '1') {
+    if (dnssec_remove_zone_key($domain_name, $key_id)) {
+        success(SUC_EXEC_PDNSSEC_REMOVE_ZONE_KEY);
+    }
+} else {
+    if ($user_is_zone_owner == "1") {
+        $key_info = dnssec_get_zone_key($domain_name, $key_id);
+        echo "      " . _('Domain') . ": " . $domain_name . "<br>\n";
+        echo "      " . _('Id') . ": " . $key_info[0] . "<br>\n";
+        echo "      " . _('Type') . ": " . $key_info[1] . "<br>\n";
+        echo "      " . _('Tag') . ": " . $key_info[2] . "<br>\n";
+        echo "      " . _('Algorithm') . ": " . dnssec_algorithm_to_name($key_info[3]) . "<br>\n";
+        echo "      " . _('Bits') . ": " . $key_info[4] . "<br>\n";
+        echo "      " . _('Active') . ": " . ($key_info[5] ? _('Yes') : _('No')) . "\n";
+        echo "     <p>" . _('Are you sure?') . "</p>\n";
+        echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='dnssec_delete_key.php?id=" . $zone_id . "&amp;key_id=$key_id&amp;confirm=1'\" value=\"" . _('Yes') . "\">\n";
+        echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='index.php'\" value=\"" . _('No') . "\">\n";
+    } else {
+        error(ERR_PDNSSEC_DEL_ZONE_KEY);
+    }
+}
+
+include_once("inc/footer.inc.php");

+ 95 - 0
devadmin/html/poweradmin-2.1.7/dnssec_ds_dnskey.php

@@ -0,0 +1,95 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Script that handles editing of zone records
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+global $pdnssec_use;
+
+$zone_id = "-1";
+if (isset($_GET['id']) && v_num($_GET['id'])) {
+    $zone_id = $_GET['id'];
+}
+
+if ($zone_id == "-1") {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;
+}
+
+/*
+  Check permissions
+ */
+$user_is_zone_owner = verify_user_is_owner_zoneid($zone_id);
+if ($perm_meta_edit == "all" || ( $perm_meta_edit == "own" && $user_is_zone_owner == "1")) {
+    $meta_edit = "1";
+} else {
+    $meta_edit = "0";
+}
+
+(verify_permission('user_view_others')) ? $perm_view_others = "1" : $perm_view_others = "0";
+
+if ($perm_view == "none" || $perm_view == "own" && $user_is_zone_owner == "0") {
+    error(ERR_PERM_VIEW_ZONE);
+    include_once("inc/footer.inc.php");
+    exit();
+}
+
+if (zone_id_exists($zone_id) == "0") {
+    error(ERR_ZONE_NOT_EXIST);
+    include_once("inc/footer.inc.php");
+    exit();
+}
+
+$domain_type = get_domain_type($zone_id);
+$domain_name = get_zone_name_from_id($zone_id);
+$record_count = count_zone_records($zone_id);
+$zone_templates = get_list_zone_templ($_SESSION['userid']);
+$zone_template_id = get_zone_template($zone_id);
+
+echo "   <h2>" . _('DNSSEC public records for zone') . " \"" . get_zone_name_from_id($zone_id) . "\"</h2>\n";
+
+echo "   <h3>" . _('DNSKEY') . "</h3>\n";
+$dnskey_record = dnssec_dnskey_record($domain_name);
+echo $dnskey_record."<br>\n";
+
+echo "<br>";
+
+echo "   <h3>" . _('DS record') . "</h3>\n";
+$ds_records = dnssec_ds_records($domain_name);
+foreach ($ds_records as $record) {
+    echo $record."<br>\n";
+}
+
+echo "<br>";
+
+include_once("inc/footer.inc.php");

+ 108 - 0
devadmin/html/poweradmin-2.1.7/dnssec_edit_key.php

@@ -0,0 +1,108 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles zone deletion
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+global $pdnssec_use;
+
+$zone_id = "-1";
+if (isset($_GET['id']) && v_num($_GET['id'])) {
+    $zone_id = $_GET['id'];
+}
+
+$key_id = "-1";
+if (isset($_GET['key_id']) && v_num($_GET['key_id'])) {
+    $key_id = (int) $_GET['key_id'];
+}
+
+$confirm = "-1";
+if (isset($_GET['confirm']) && v_num($_GET['confirm'])) {
+    $confirm = $_GET['confirm'];
+}
+
+$user_is_zone_owner = verify_user_is_owner_zoneid($zone_id);
+
+if ($zone_id == "-1") {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;
+}
+
+$domain_name = get_zone_name_from_id($zone_id);
+
+if ($key_id == "-1") {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;
+}
+
+if (!dnssec_zone_key_exists($domain_name, $key_id)) {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;
+}
+
+$key_info = dnssec_get_zone_key($domain_name, $key_id);
+if ($key_info[5]) {
+    echo "     <h2>" . _('Deactivate zone key') . "</h2>\n";
+} else {
+    echo "     <h2>" . _('Activate zone key') . "</h2>\n";
+}
+
+if ($confirm == '1') {
+    if ($key_info[5]) {
+        if (dnssec_deactivate_zone_key($domain_name, $key_id)) {
+            success(SUC_EXEC_PDNSSEC_DEACTIVATE_ZONE_KEY);
+        }
+    } else {
+        if (dnssec_activate_zone_key($domain_name, $key_id)) {
+            success(SUC_EXEC_PDNSSEC_ACTIVATE_ZONE_KEY);
+        }
+    }
+} else {
+    if ($user_is_zone_owner == "1") {
+        echo "      " . _('Domain') . ": " . $domain_name . "<br>\n";
+        echo "      " . _('Id') . ": " . $key_info[0] . "<br>\n";
+        echo "      " . _('Type') . ": " . $key_info[1] . "<br>\n";
+        echo "      " . _('Tag') . ": " . $key_info[2] . "<br>\n";
+        echo "      " . _('Algorithm') . ": " . dnssec_algorithm_to_name($key_info[3]) . "<br>\n";
+        echo "      " . _('Bits') . ": " . $key_info[4] . "<br>\n";
+        echo "      " . _('Active') . ": " . ($key_info[5] ? _('Yes') : _('No')) . "\n";
+        echo "     <p>" . _('Are you sure?') . "</p>\n";
+        echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='dnssec_edit_key.php?id=" . $zone_id . "&amp;key_id=$key_id&amp;confirm=1'\" value=\"" . _('Yes') . "\">\n";
+        echo "     <input type=\"button\" class=\"button\" OnClick=\"location.href='index.php'\" value=\"" . _('No') . "\">\n";
+    } else {
+        error(ERR_PDNSSEC_DEL_ZONE_KEY);
+    }
+}
+
+include_once("inc/footer.inc.php");

+ 182 - 0
devadmin/html/poweradmin-2.1.7/dynamic_update.php

@@ -0,0 +1,182 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles requests to update DNS records, required for clients
+ * with dynamic ip addresses
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require('inc/config.inc.php');
+require('inc/database.inc.php');
+
+$db = dbConnect();
+
+/** Make sql query safe
+ *
+ * @param mixed $value Unsafe Value
+ *
+ * @return mixed $value Safe Value
+ */
+function safe($value) {
+    global $db, $db_type, $db_layer;
+
+    if ($db_type == 'mysql') {
+        if ($db_layer == 'MDB2') {
+            $value = mysql_real_escape_string($value);
+        } elseif ($db_layer == 'PDO') {
+            $value = $db->quote($value, 'text');
+            $value = substr($value, 1, -1); // remove quotes
+        }
+    } else {
+        return status_exit('baddbtype');
+    }
+
+    return $value;
+}
+
+/** Get exit status message
+ *
+ * Print verbose status message for request
+ *
+ * @param string $status Short status message
+ *
+ * @return boolean false
+ */
+function status_exit($status) {
+    $verbose_codes = array(
+        'badagent' => 'Your user agent is not valid.',
+        'badauth' => 'Invalid username or password.  Authentication failed.',
+        'notfqdn' => 'The hostname you specified was not valid.',
+        'dnserr' => 'A DNS error has occurred on our end.  We apologize for any inconvenience.',
+        '!yours' => 'The specified hostname does not belong to you.',
+        'nohost' => 'The specified hostname does not exist.',
+        'good' => 'Your hostname has been updated.',
+        '911' => 'A critical error has occurred on our end.  We apologize for any inconvenience.',
+        'nochg' => 'This update was identical to your last update, so no changes were made to your hostname configuration.',
+        'baddbtype' => 'Unsupported database type',
+    );
+
+    if (isset($_REQUEST['verbose'])) {
+        $pieces = preg_split('/\s/', $status);
+        $status = $verbose_codes[$pieces[0]];
+    }
+    echo "$status\n";
+    return false;
+}
+
+if (!(isset($_SERVER)) && !$_SERVER['HTTP_USER_AGENT']) {
+    return status_exit('badagent');
+}
+
+// Grab username & password based on HTTP auth, alternatively the query string
+if (isset($_SERVER['PHP_AUTH_USER'])) {
+	$auth_username = $_SERVER['PHP_AUTH_USER'];
+} elseif (isset($_REQUEST['username'])) {
+	$auth_username = $_REQUEST['username'];
+}
+if (isset($_SERVER['PHP_AUTH_PW'])) {
+	$auth_password = $_SERVER['PHP_AUTH_PW'];
+} elseif (isset($_REQUEST['password'])) {
+	$auth_password = $_REQUEST['password'];
+}
+
+// If we still don't have a username, throw up
+if (!isset($auth_username)) {
+    header('WWW-Authenticate: Basic realm="DNS Update"');
+    header('HTTP/1.0 401 Unauthorized');
+    return status_exit('badauth');
+}
+
+$username = safe($auth_username);
+// FIXME: supports only md5 hashes
+$password = md5(safe($auth_password));
+$hostname = safe($_REQUEST['hostname']);
+
+// Grab IP to use
+$given_ip = "";
+if (!empty($_REQUEST['myip'])) {
+	$given_ip = $_REQUEST['myip'];
+
+} elseif (!empty($_REQUEST['ip'])) {
+	$given_ip = $_REQUEST['ip'];
+
+}
+// Look for tag tograb the IP we coming from
+if ($given_ip == "whatismyip") {
+	$given_ip = $_SERVER['REMOTE_ADDR'];
+}
+// Finally get save version of the IP
+$ip = safe($given_ip);
+// Check its ok...
+if (!preg_match('/^((?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/i', $ip)) {
+    return status_exit('dnserr');
+}
+
+if (!strlen($hostname)) {
+    return status_exit('notfqdn');
+}
+
+$user_query = "
+	SELECT
+		users.id
+	FROM
+		users, perm_templ, perm_templ_items, perm_items
+	WHERE
+		users.username = '$username'
+		AND users.password = '$password'
+		AND users.active = 1
+		AND perm_templ.id = users.perm_templ
+		AND perm_templ_items.templ_id = perm_templ.id
+		AND perm_items.id = perm_templ_items.perm_id
+		AND (
+				perm_items.name = 'zone_content_edit_own'
+				OR perm_items.name = 'zone_content_edit_others'
+		)
+";
+$user = $db->queryRow($user_query);
+if (!$user) {
+    return status_exit('badauth');
+}
+
+$zones_query = "SELECT domain_id FROM zones WHERE owner='{$user["id"]}'";
+$zones_result = $db->query($zones_query);
+$was_updated = false;
+
+while ($zone = $zones_result->fetchRow()) {
+    $name_query = "SELECT name FROM records WHERE domain_id='{$zone["domain_id"]}' and type = 'A'";
+    $result = $db->query($name_query);
+
+    while ($record = $result->fetchRow()) {
+        if ($hostname == $record['name']) {
+            $update_query = "UPDATE records SET content ='{$ip}' where name='{$record["name"]}' and type='A'";
+            $update_result = $db->query($update_query);
+            $was_updated = true;
+        }
+    }
+}
+
+return ($was_updated ? status_exit('good') : status_exit('!yours'));

+ 516 - 0
devadmin/html/poweradmin-2.1.7/edit.php

@@ -0,0 +1,516 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Script that handles editing of zone records
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+global $pdnssec_use;
+
+$zone_id = "-1";
+if (isset($_GET['id']) && v_num($_GET['id'])) {
+    $zone_id = $_GET['id'];
+}
+
+if ($zone_id == "-1") {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;
+}
+
+if (isset($_POST['commit'])) {
+    $error = false;
+    if (isset($_POST['record'])) {
+        foreach ($_POST['record'] as $record) {
+            $old_record_info = get_record_from_id($record['rid']);
+            $edit_record = edit_record($record);
+            if (false === $edit_record) {
+                $error = true;
+            } else {
+               $new_record_info = get_record_from_id($record["rid"]);
+               //Figure out if record was updated
+               unset($new_record_info["change_date"]);
+               unset($old_record_info["change_date"]);
+               if ($new_record_info != $old_record_info){
+                 //The record was changed, so log the edit_record operation
+                 log_info(sprintf('client_ip:%s user:%s operation:edit_record'
+                                  .' old_record_type:%s old_record:%s old_content:%s old_ttl:%s old_priority:%s'
+                                  .' record_type:%s record:%s content:%s ttl:%s priority:%s',
+                                  $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"],
+                              $old_record_info['type'], $old_record_info['name'],
+                              $old_record_info['content'], $old_record_info['ttl'], $old_record_info['prio'],
+                              $new_record_info['type'], $new_record_info['name'],
+                              $new_record_info['content'], $new_record_info['ttl'], $new_record_info['prio']));
+               }
+            }
+        }
+    }
+
+    edit_zone_comment($_GET['id'], $_POST['comment']);
+
+    if (false === $error) {
+        update_soa_serial($_GET['id']);
+        success(SUC_ZONE_UPD);
+
+        if ($pdnssec_use) {
+            if (dnssec_rectify_zone($_GET['id'])) {
+                success(SUC_EXEC_PDNSSEC_RECTIFY_ZONE);
+            }
+        }
+    } else {
+        error(ERR_ZONE_UPD);
+    }
+}
+
+if (isset($_POST['save_as'])) {
+    if (zone_templ_name_exists($_POST['templ_name'])) {
+        error(ERR_ZONE_TEMPL_EXIST);
+    } elseif ($_POST['templ_name'] == '') {
+        error(ERR_ZONE_TEMPL_IS_EMPTY);
+    } else {
+        success(SUC_ZONE_TEMPL_ADD);
+        $records = get_records_from_domain_id($zone_id);
+        add_zone_templ_save_as($_POST['templ_name'], $_POST['templ_descr'], $_SESSION['userid'], $records, get_zone_name_from_id($zone_id));
+    }
+}
+
+/*
+  Check permissions
+ */
+if (verify_permission('zone_content_view_others')) {
+    $perm_view = "all";
+} elseif (verify_permission('zone_content_view_own')) {
+    $perm_view = "own";
+} else {
+    $perm_view = "none";
+}
+
+if (verify_permission('zone_content_edit_others')) {
+    $perm_content_edit = "all";
+} elseif (verify_permission('zone_content_edit_own')) {
+    $perm_content_edit = "own";
+} else {
+    $perm_content_edit = "none";
+}
+
+if (verify_permission('zone_meta_edit_others')) {
+    $perm_meta_edit = "all";
+} elseif (verify_permission('zone_meta_edit_own')) {
+    $perm_meta_edit = "own";
+} else {
+    $perm_meta_edit = "none";
+}
+
+verify_permission('zone_master_add') ? $perm_zone_master_add = "1" : $perm_zone_master_add = "0";
+verify_permission('zone_slave_add') ? $perm_zone_slave_add = "1" : $perm_zone_slave_add = "0";
+
+$user_is_zone_owner = verify_user_is_owner_zoneid($zone_id);
+if ($perm_meta_edit == "all" || ( $perm_meta_edit == "own" && $user_is_zone_owner == "1")) {
+    $meta_edit = "1";
+} else {
+    $meta_edit = "0";
+}
+
+(verify_permission('user_view_others')) ? $perm_view_others = "1" : $perm_view_others = "0";
+
+if (isset($_POST['slave_master_change']) && is_numeric($_POST["domain"])) {
+    change_zone_slave_master($_POST['domain'], $_POST['new_master']);
+}
+if (isset($_POST['type_change']) && in_array($_POST['newtype'], $server_types)) {
+    change_zone_type($_POST['newtype'], $zone_id);
+}
+if (isset($_POST["newowner"]) && is_numeric($_POST["domain"]) && is_numeric($_POST["newowner"])) {
+    add_owner_to_zone($_POST["domain"], $_POST["newowner"]);
+}
+if (isset($_POST["delete_owner"]) && is_numeric($_POST["delete_owner"])) {
+    delete_owner_from_zone($zone_id, $_POST["delete_owner"]);
+}
+if (isset($_POST["template_change"])) {
+    if (!isset($_POST['zone_template']) || "none" == $_POST['zone_template']) {
+        $new_zone_template = 0;
+    } else {
+        $new_zone_template = $_POST['zone_template'];
+    }
+    if ($_POST['current_zone_template'] != $new_zone_template) {
+        update_zone_records($zone_id, $new_zone_template);
+    }
+}
+
+if ($perm_view == "none" || $perm_view == "own" && $user_is_zone_owner == "0") {
+    error(ERR_PERM_VIEW_ZONE);
+    include_once("inc/footer.inc.php");
+    exit();
+}
+
+if (zone_id_exists($zone_id) == "0") {
+    error(ERR_ZONE_NOT_EXIST);
+    include_once("inc/footer.inc.php");
+    exit();
+}
+
+if (isset($_POST['sign_zone'])) {
+    $zone_name = get_zone_name_from_id($zone_id);
+    update_soa_serial($zone_id);
+    dnssec_secure_zone($zone_name);
+    dnssec_rectify_zone($zone_id);
+}
+
+if (isset($_POST['unsign_zone'])) {
+    $zone_name = get_zone_name_from_id($zone_id);
+    dnssec_unsecure_zone($zone_name);
+    update_soa_serial($zone_id);
+}
+
+$domain_type = get_domain_type($zone_id);
+$record_count = count_zone_records($zone_id);
+$zone_templates = get_list_zone_templ($_SESSION['userid']);
+$zone_template_id = get_zone_template($zone_id);
+
+echo "   <h2>" . _('Edit zone') . " \"" . get_zone_name_from_id($zone_id) . "\"</h2>\n";
+
+echo "   <div class=\"showmax\">\n";
+show_pages($record_count, $iface_rowamount, $zone_id);
+echo "   </div>\n";
+
+$records = get_records_from_domain_id($zone_id, ROWSTART, $iface_rowamount, RECORD_SORT_BY);
+if ($records == "-1") {
+    echo " <p>" . _("This zone does not have any records. Weird.") . "</p>\n";
+} else {
+    echo "   <form method=\"post\" action=\"\">\n";
+    echo "   <table>\n";
+    echo "    <tr>\n";
+    echo "     <th>&nbsp;</th>\n";
+    echo "     <th><a href=\"edit.php?id=" . $zone_id . "&amp;record_sort_by=id\">" . _('Id') . "</a></th>\n";
+    echo "     <th><a href=\"edit.php?id=" . $zone_id . "&amp;record_sort_by=name\">" . _('Name') . "</a></th>\n";
+    echo "     <th><a href=\"edit.php?id=" . $zone_id . "&amp;record_sort_by=type\">" . _('Type') . "</a></th>\n";
+    echo "     <th><a href=\"edit.php?id=" . $zone_id . "&amp;record_sort_by=content\">" . _('Content') . "</a></th>\n";
+    echo "     <th><a href=\"edit.php?id=" . $zone_id . "&amp;record_sort_by=prio\">" . _('Priority') . "</a></th>\n";
+    echo "     <th><a href=\"edit.php?id=" . $zone_id . "&amp;record_sort_by=ttl\">" . _('TTL') . "</a></th>\n";
+    echo "    </tr>\n";
+    foreach ($records as $r) {
+        if ($r['type'] != "SOA") {
+            echo "    <input type=\"hidden\" name=\"record[" . $r['id'] . "][rid]\" value=\"" . $r['id'] . "\">\n";
+            echo "    <input type=\"hidden\" name=\"record[" . $r['id'] . "][zid]\" value=\"" . $zone_id . "\">\n";
+        }
+        echo "    <tr>\n";
+
+        if ($domain_type == "SLAVE" || $perm_content_edit == "none" || $perm_content_edit == "own" && $user_is_zone_owner == "0") {
+            echo "     <td class=\"n\">&nbsp;</td>\n";
+        } else {
+            echo "     <td class=\"n\">\n";
+            echo "      <a href=\"edit_record.php?id=" . $r['id'] . "&amp;domain=" . $zone_id . "\">
+                                                <img src=\"images/edit.gif\" alt=\"[ " . _('Edit record') . " ]\"></a>\n";
+            echo "      <a href=\"delete_record.php?id=" . $r['id'] . "&amp;domain=" . $zone_id . "\">
+                                                <img src=\"images/delete.gif\" ALT=\"[ " . _('Delete record') . " ]\" BORDER=\"0\"></a>\n";
+            echo "     </td>\n";
+        }
+        echo "     <td class=\"n\">{$r['id']}</td>\n";
+        if ($r['type'] == "SOA") {
+            echo "     <td class=\"n\">" . $r['name'] . "</td>\n";
+            echo "     <td class=\"n\">" . $r['type'] . "</td>\n";
+            echo "     <td class=\"n\">" . $r['content'] . "</td>\n";
+            echo "     <td class=\"n\">&nbsp;</td>\n";
+            echo "     <td class=\"n\">" . $r['ttl'] . "</td>\n";
+        } else {
+            echo "      <td class=\"u\"><input class=\"wide\" name=\"record[" . $r['id'] . "][name]\" value=\"" . htmlspecialchars($r['name']) . "\"></td>\n";
+            echo "      <td class=\"u\">\n";
+            echo "       <select name=\"record[" . $r['id'] . "][type]\">\n";
+            $found_selected_type = false;
+            foreach (get_record_types() as $type_available) {
+                if ($type_available == $r['type']) {
+                    $add = " SELECTED";
+                    $found_selected_type = true;
+                } else {
+                    $add = "";
+                }
+                echo "         <option" . $add . " value=\"" . htmlspecialchars($type_available) . "\" >" . $type_available . "</option>\n";
+            }
+            if (!$found_selected_type)
+                echo "         <option SELECTED value=\"" . htmlspecialchars($r['type']) . "\"><i>" . $r['type'] . "</i></option>\n";
+            /*
+              Sanitize content due to SPF record quoting in PowerDNS
+             */
+            if ($r['type'] == "SRV" || $r['type'] == "SPF" || $r['type'] == "TXT") {
+                $clean_content = trim($r['content'], "\x22\x27");
+            } else {
+                $clean_content = $r['content'];
+            }
+            echo "       </select>\n";
+            echo "      </td>\n";
+            echo "      <td class=\"u\"><input class=\"wide\" name=\"record[" . $r['id'] . "][content]\" value=\"" . htmlspecialchars($clean_content) . "\"></td>\n";
+            echo "      <td class=\"u\"><input size=\"4\" id=\"priority_field_" . $r['id'] . "\" name=\"record[" . $r['id'] . "][prio]\" value=\"" . htmlspecialchars($r['prio']) . "\"></td>\n";
+            echo "      <td class=\"u\"><input size=\"4\" name=\"record[" . $r['id'] . "][ttl]\" value=\"" . htmlspecialchars($r['ttl']) . "\"></td>\n";
+        }
+        echo "     </tr>\n";
+    }
+    echo "    <tr>\n";
+    echo "     <td colspan=\"6\">&nbsp;</td>\n";
+    echo "    </tr>\n";
+    echo "    <tr>\n";
+    echo "     <td>&nbsp;</td><td colspan=\"5\">Comments:</td>\n";
+    echo "    </tr>\n";
+    echo "    <tr>\n";
+    echo "     <td class=\"n\">\n";
+    echo "      <a href=\"edit_comment.php?domain=" . $zone_id . "\">
+                            <img src=\"images/edit.gif\" alt=\"[ " . _('Edit comment') . " ]\"></a>\n";
+    echo "     </td>\n";
+    echo "     <td colspan=\"4\"><textarea rows=\"5\" cols=\"80\" name=\"comment\">" . htmlspecialchars(get_zone_comment($zone_id)) . "</textarea></td>\n";
+    echo "     <td>&nbsp;</td>\n";
+
+    echo "     <tr>\n";
+    echo "      <th colspan=\"6\"><br>Save as new template:</th>\n";
+    echo "     </tr>\n";
+    echo "     <tr>\n";
+    echo "       <td colspan=\"2\">" . _('Template Name') . "</td>\n";
+    echo "       <td><input class=\"wide\" type=\"text\" name=\"templ_name\" value=\"\"></td>\n";
+    echo "      </tr>\n";
+    echo "      <tr>\n";
+    echo "       <td colspan=\"2\">" . _('Template Description') . "</td>\n";
+    echo "       <td><input class=\"wide\" type=\"text\" name=\"templ_descr\" value=\"\"></td>\n";
+    echo "      </tr>\n";
+    echo "    </table>\n";
+    echo "     <input type=\"submit\" class=\"button\" name=\"commit\" value=\"" . _('Commit changes') . "\">\n";
+    echo "     <input type=\"reset\" class=\"button\" name=\"reset\" value=\"" . _('Reset changes') . "\">\n";
+    echo "     <input type=\"submit\" class=\"button\" name=\"save_as\" value=\"" . _('Save as template') . "\">\n";
+
+    if ($pdnssec_use) {
+        $zone_name = get_zone_name_from_id($zone_id);
+
+        if (dnssec_is_zone_secured($zone_name)) {
+            echo "     <input type=\"button\" class=\"button\" name=\"dnssec\" onclick=\"location.href = 'dnssec.php?id=".$zone_id."';\" value=\"" . _('DNSSEC') . "\">\n";
+            echo "     <input type=\"submit\" class=\"button\" name=\"unsign_zone\" value=\"" . _('Unsign this zone') . "\">\n";
+        } else {
+            echo "     <input type=\"submit\" class=\"button\" name=\"sign_zone\" value=\"" . _('Sign this zone') . "\">\n";
+        }
+    }
+
+    echo "    </form>\n";
+}
+
+if ($perm_content_edit == "all" || $perm_content_edit == "own" && $user_is_zone_owner == "1") {
+    if ($domain_type != "SLAVE") {
+        $zone_name = get_zone_name_from_id($zone_id);
+        echo "     <form method=\"post\" action=\"add_record.php?id=" . $zone_id . "\">\n";
+        echo "      <input type=\"hidden\" name=\"domain\" value=\"" . $zone_id . "\">\n";
+        echo "      <table border=\"0\" cellspacing=\"4\">\n";
+        echo "       <tr>\n";
+        echo "        <td class=\"n\">" . _('Name') . "</td>\n";
+        echo "        <td class=\"n\">&nbsp;</td>\n";
+        echo "        <td class=\"n\">" . _('Type') . "</td>\n";
+        echo "        <td class=\"n\">" . _('Content') . "</td>\n";
+        echo "        <td class=\"n\">" . _('Priority') . "</td>\n";
+        echo "        <td class=\"n\">" . _('TTL') . "</td>\n";
+        echo "       </tr>\n";
+        echo "       <tr>\n";
+        echo "        <td class=\"n\"><input type=\"text\" name=\"name\" class=\"input\" value=\"\">." . $zone_name . "</td>\n";
+        echo "        <td class=\"n\">IN</td>\n";
+        echo "        <td class=\"n\">\n";
+        echo "         <select name=\"type\">\n";
+        $found_selected_type = !(isset($type) && $type);
+        foreach (get_record_types() as $record_type) {
+            if (isset($type) && $type) {
+                if ($type == $record_type) {
+                    $add = " SELECTED";
+                    $found_selected_type = true;
+                } else {
+                    $add = "";
+                }
+            } else {
+                if (preg_match('/i(p6|n-addr).arpa/i', $zone_name) && strtoupper($record_type) == 'PTR') {
+                    $add = " SELECTED";
+                    $rev = "";
+                } else if ((strtoupper($record_type) == 'A') && $iface_add_reverse_record) {
+                    $add = " SELECTED";
+                    $rev = "<input type=\"checkbox\" name=\"reverse\"><span class=\"normaltext\">" . _('Add also reverse record') . "</span>\n";
+                } else {
+                    $add = "";
+                }
+            }
+            echo "          <option" . $add . " value=\"" . htmlspecialchars($record_type) . "\">" . $record_type . "</option>\n";
+        }
+        if (!$found_selected_type)
+            echo "         <option SELECTED value=\"" . htmlspecialchars($type) . "\"><i>" . htmlspecialchars($type) . "</i></option>\n";
+        echo "         </select>\n";
+        echo "        </td>\n";
+        echo "        <td class=\"n\"><input type=\"text\" name=\"content\" class=\"input\" value=\"\"></td>\n";
+        echo "        <td class=\"n\"><input type=\"text\" name=\"prio\" class=\"sinput\" value=\"\"></td>\n";
+        echo "        <td class=\"n\"><input type=\"text\" name=\"ttl\" class=\"sinput\" value=\"\"></td>\n";
+        echo "       </tr>\n";
+        echo "      </table>\n";
+        echo "      <input type=\"submit\" name=\"commit\" value=\"" . _('Add record') . "\" class=\"button\">\n";
+        echo "      $rev";
+        echo "     </form>\n";
+    }
+}
+
+echo "   <div id=\"meta\">\n";
+echo "    <table>\n";
+echo "     <tr>\n";
+echo "      <th colspan=\"2\">" . _('Owner of zone') . "</th>\n";
+echo "     </tr>\n";
+
+$owners = get_users_from_domain_id($zone_id);
+
+if ($owners == "-1") {
+    echo "      <tr><td>" . _('No owner set for this zone.') . "</td></tr>";
+} else {
+    if ($meta_edit) {
+        foreach ($owners as $owner) {
+            echo "       <tr>\n";
+            echo "        <form method=\"post\" action=\"edit.php?id=" . $zone_id . "\">\n";
+            echo "        <td>" . $owner["fullname"] . "</td>\n";
+            echo "        <td>\n";
+            echo "         <input type=\"hidden\" name=\"delete_owner\" value=\"" . $owner["id"] . "\">\n";
+            echo "         <input type=\"submit\" class=\"sbutton\" name=\"co\" value=\"" . _('Delete') . "\">\n";
+            echo "        </td>\n";
+            echo "        </form>\n";
+            echo "       </tr>\n";
+        }
+    } else {
+        foreach ($owners as $owner) {
+            echo "    <tr><td>" . $owner["fullname"] . "</td><td>&nbsp;</td></tr>";
+        }
+    }
+}
+if ($meta_edit) {
+    echo "      <form method=\"post\" action=\"edit.php?id=" . $zone_id . "\">\n";
+    echo "       <input type=\"hidden\" name=\"domain\" value=\"" . $zone_id . "\">\n";
+    echo "       <tr>\n";
+    echo "        <td>\n";
+    echo "         <select name=\"newowner\">\n";
+    /*
+      Show list of users to add as owners of this domain, only if we have permission to do so.
+     */
+    $users = show_users();
+    foreach ($users as $user) {
+        $add = '';
+        if ($user["id"] == $_SESSION["userid"]) {
+            echo "          <option" . $add . " value=\"" . $user["id"] . "\">" . $user["fullname"] . "</option>\n";
+        } elseif ($perm_view_others == "1") {
+            echo "          <option  value=\"" . $user["id"] . "\">" . $user["fullname"] . "</option>\n";
+        }
+    }
+    echo "         </select>\n";
+    echo "        </td>\n";
+    echo "        <td>\n";
+    echo "         <input type=\"submit\" class=\"sbutton\" name=\"co\" value=\"" . _('Add') . "\">\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "      </form>\n";
+}
+echo "      <tr>\n";
+echo "       <th colspan=\"2\">" . _('Type') . "</th>\n";
+echo "      </tr>\n";
+
+if ($meta_edit) {
+    echo "      <form action=\"" . htmlentities($_SERVER['PHP_SELF'], ENT_QUOTES) . "?id=" . $zone_id . "\" method=\"post\">\n";
+    echo "       <input type=\"hidden\" name=\"domain\" value=\"" . $zone_id . "\">\n";
+    echo "       <tr>\n";
+    echo "        <td>\n";
+    echo "         <select name=\"newtype\">\n";
+    foreach ($server_types as $type) {
+        $add = '';
+        if ($type == $domain_type) {
+            $add = " SELECTED";
+        }
+
+        if (($perm_zone_master_add == "0" && $type == "MASTER") || ($perm_zone_slave_add == "0" && $type == "SLAVE")) {
+            continue;
+        }
+        echo "          <option" . $add . " value=\"" . $type . "\">" . strtolower($type) . "</option>\n";
+    }
+    echo "         </select>\n";
+    echo "        </td>\n";
+    echo "        <td>\n";
+    echo "         <input type=\"submit\" class=\"sbutton\" name=\"type_change\" value=\"" . _('Change') . "\">\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "      </form>\n";
+} else {
+    echo "      <tr><td>" . strtolower($domain_type) . "</td><td>&nbsp;</td></tr>\n";
+}
+
+echo "      <tr>\n";
+echo "       <th colspan=\"2\">" . _('Template') . "</th>\n";
+echo "      </tr>\n";
+
+if ($meta_edit) {
+    echo "      <form action=\"" . htmlentities($_SERVER['PHP_SELF'], ENT_QUOTES) . "?id=" . $zone_id . "\" method=\"post\">\n";
+    echo "       <input type=\"hidden\" name=\"current_zone_template\" value=\"" . $zone_template_id . "\">\n";
+    echo "       <tr>\n";
+    echo "        <td>\n";
+    echo "         <select name=\"zone_template\">\n";
+    echo "          <option value=\"none\">none</option>\n";
+    foreach ($zone_templates as $zone_template) {
+        $add = '';
+        if ($zone_template['id'] == $zone_template_id) {
+            $add = " SELECTED";
+        }
+        echo "          <option .  $add . value=\"" . $zone_template['id'] . "\">" . $zone_template['name'] . "</option>\n";
+    }
+    echo "         </select>\n";
+    echo "        </td>\n";
+    echo "        <td>\n";
+    echo "         <input type=\"submit\" class=\"sbutton\" name=\"template_change\" value=\"" . _('Change') . "\">\n";
+    echo "        </td>\n";
+    echo "       </tr>\n";
+    echo "      </form>\n";
+} else {
+    $zone_template_details = get_zone_templ_details($zone_template_id);
+    echo "      <tr><td>" . (isset($zone_template_details) ? strtolower($zone_template_details['name']) : "none" ) . "</td><td>&nbsp;</td></tr>\n";
+}
+
+if ($domain_type == "SLAVE") {
+    $slave_master = get_domain_slave_master($zone_id);
+    echo "      <tr>\n";
+    echo "       <th colspan=\"2\">" . _('IP address of master NS') . "</th>\n";
+    echo "      </tr>\n";
+
+    if ($meta_edit) {
+        echo "      <form action=\"" . htmlentities($_SERVER['PHP_SELF'], ENT_QUOTES) . "?id=" . $zone_id . "\" method=\"post\">\n";
+        echo "       <input type=\"hidden\" name=\"domain\" value=\"" . $zone_id . "\">\n";
+        echo "       <tr>\n";
+        echo "        <td>\n";
+        echo "         <input type=\"text\" name=\"new_master\" value=\"" . $slave_master . "\" class=\"input\">\n";
+        echo "        </td>\n";
+        echo "        <td>\n";
+        echo "         <input type=\"submit\" class=\"sbutton\" name=\"slave_master_change\" value=\"" . _('Change') . "\">\n";
+        echo "        </td>\n";
+        echo "       </tr>\n";
+        echo "      </form>\n";
+    } else {
+        echo "      <tr><td>" . $slave_master . "</td><td>&nbsp;</td></tr>\n";
+    }
+}
+echo "     </table>\n";
+echo "   </div>\n"; // eo div meta
+
+include_once("inc/footer.inc.php");

+ 115 - 0
devadmin/html/poweradmin-2.1.7/edit_comment.php

@@ -0,0 +1,115 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles editing of zone comments
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+if (verify_permission('zone_content_view_others')) {
+    $perm_view = "all";
+} elseif (verify_permission('zone_content_view_own')) {
+    $perm_view = "own";
+} else {
+    $perm_view = "none";
+}
+
+if (verify_permission('zone_content_edit_others')) {
+    $perm_content_edit = "all";
+} elseif (verify_permission('zone_content_edit_own')) {
+    $perm_content_edit = "own";
+} else {
+    $perm_content_edit = "none";
+}
+
+if (verify_permission('zone_meta_edit_others')) {
+    $perm_meta_edit = "all";
+} elseif (verify_permission('zone_meta_edit_own')) {
+    $perm_meta_edit = "own";
+} else {
+    $perm_meta_edit = "none";
+}
+
+$zid = $_GET['domain'];
+
+$user_is_zone_owner = verify_user_is_owner_zoneid($zid);
+$zone_type = get_domain_type($zid);
+$zone_name = get_zone_name_from_id($zid);
+
+if (isset($_POST["commit"])) {
+    if ($zone_type == "SLAVE" || $perm_content_edit == "none" || $perm_content_edit == "own" && $user_is_zone_owner == "0") {
+        error(ERR_PERM_EDIT_COMMENT);
+    } else {
+        edit_zone_comment($_GET['domain'], $_POST['comment']);
+        success(SUC_COMMENT_UPD);
+    }
+}
+
+echo "    <h2>" . _('Edit comment in zone') . " " . $zone_name . "</h2>\n";
+
+if ($perm_view == "none" || $perm_view == "own" && $user_is_zone_owner == "0") {
+    error(ERR_PERM_VIEW_COMMENT);
+} else {
+    $comment = get_zone_comment($zid);
+    echo "     <form method=\"post\" action=\"edit_comment.php?domain=" . $zid . "\">\n";
+    echo "      <table>\n";
+    echo "      <tr>\n";
+    echo "       <td colspan=\"6\">&nbsp;</td>\n";
+    echo "      </tr>\n";
+    echo "      <tr>\n";
+    echo "       <td>&nbsp;</td><td colspan=\"5\">Comments:</td>\n";
+    echo "      </tr>\n";
+
+    if ($zone_type == "SLAVE" || $perm_content_edit == "none" || $perm_content_edit == "own" && $user_is_zone_owner == "0") {
+        echo "    <tr>\n";
+        echo "     <td class=\"n\">\n";
+        echo "      &nbsp;\n";
+        echo "     </td>\n";
+        echo "     <td colspan=\"4\"><textarea rows=\"15\" name=\"comment\" disabled>" . $comment . "</textarea></td>\n";
+        echo "     <td>&nbsp;</td>\n";
+        echo "    </tr>\n";
+    } else {
+        echo "    <tr>\n";
+        echo "     <td class=\"n\">\n";
+        echo "      &nbsp;\n";
+        echo "     </td>\n";
+        echo "     <td colspan=\"4\"><textarea rows=\"15\" name=\"comment\">" . $comment . "</textarea></td>\n";
+        echo "     <td>&nbsp;</td>\n";
+        echo "    </tr>\n";
+    }
+    echo "      </table>\n";
+    echo "      <p>\n";
+    echo "       <input type=\"submit\" name=\"commit\" value=\"" . _('Commit changes') . "\" class=\"button\">&nbsp;&nbsp;\n";
+    echo "       <input type=\"reset\" name=\"reset\" value=\"" . _('Reset changes') . "\" class=\"button\">&nbsp;&nbsp;\n";
+    echo "      </p>\n";
+    echo "     </form>\n";
+}
+
+
+include_once("inc/footer.inc.php");

+ 99 - 0
devadmin/html/poweradmin-2.1.7/edit_perm_templ.php

@@ -0,0 +1,99 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles editing of permission templates
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+$id = "-1";
+if ((isset($_GET['id'])) || (v_num($_GET['id']))) {
+    $id = $_GET['id'];
+}
+
+if ($id == "-1") {
+    error(ERR_INV_INPUT);
+} elseif (!verify_permission('templ_perm_edit')) {
+    error(ERR_PERM_EDIT_PERM_TEMPL);
+} else {
+    $id = $_GET['id'];
+
+    if (isset($_POST['commit'])) {
+        update_perm_templ_details($_POST);
+        success(SUC_RECORD_UPD);
+    }
+
+    $templ = get_permission_template_details($id);
+    $perms_templ = get_permissions_by_template_id($id);
+    $perms_avail = get_permissions_by_template_id();
+
+    echo "    <h2>" . _('Edit permission template') . "</h2>\n";
+    echo "    <form method=\"post\" action=\"\">\n";
+    echo "    <input type=\"hidden\" name=\"templ_id\" value=\"" . $id . "\">\n";
+
+    echo "     <table>\n";
+    echo "      <tr>\n";
+    echo "       <th>" . _('Name') . "</th>\n";
+    echo "       <td><input class=\"wide\" type=\"text\" name=\"templ_name\" value=\"" . $templ['name'] . "\"></td>\n";
+    echo "      </tr>\n";
+    echo "      <tr>\n";
+    echo "       <th>" . _('Description') . "</th>\n";
+    echo "       <td><input class=\"wide\" type=\"text\" name=\"templ_descr\" value=\"" . $templ['descr'] . "\"></td>\n";
+    echo "      </tr>\n";
+    echo "     </table>\n";
+
+    echo "     <table>\n";
+    echo "      <tr>\n";
+    echo "       <th>&nbsp;</th>\n";
+    echo "       <th>" . _('Name') . "</th>\n";
+    echo "       <th>" . _('Description') . "</th>\n";
+    echo "      </tr>\n";
+
+    foreach ($perms_avail as $perm_a) {
+
+        echo "      <tr>\n";
+
+        $has_perm = "";
+        foreach ($perms_templ as $perm_t) {
+            if (in_array($perm_a['id'], $perm_t)) {
+                $has_perm = "checked";
+            }
+        }
+
+        echo "       <td><input type=\"checkbox\" name=\"perm_id[]\" value=\"" . $perm_a['id'] . "\" " . $has_perm . "></td>\n";
+        echo "       <td>" . $perm_a['name'] . "</td>\n";
+        echo "       <td>" . _($perm_a['descr']) . "</td>\n";
+        echo "      </tr>\n";
+    }
+    echo "     </table>\n";
+    echo "     <input type=\"submit\" class=\"button\" name=\"commit\" value=\"" . _('Commit changes') . "\">\n";
+    echo "     </form>\n";
+}
+
+include_once("inc/footer.inc.php");

+ 164 - 0
devadmin/html/poweradmin-2.1.7/edit_record.php

@@ -0,0 +1,164 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles requests to edit zone records
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+global $pdnssec_use;
+
+if (verify_permission('zone_content_view_others')) {
+    $perm_view = "all";
+} elseif (verify_permission('zone_content_view_own')) {
+    $perm_view = "own";
+} else {
+    $perm_view = "none";
+}
+
+if (verify_permission('zone_content_edit_others')) {
+    $perm_content_edit = "all";
+} elseif (verify_permission('zone_content_edit_own')) {
+    $perm_content_edit = "own";
+} else {
+    $perm_content_edit = "none";
+}
+
+if (verify_permission('zone_meta_edit_others')) {
+    $perm_meta_edit = "all";
+} elseif (verify_permission('zone_meta_edit_own')) {
+    $perm_meta_edit = "own";
+} else {
+    $perm_meta_edit = "none";
+}
+
+$zid = get_zone_id_from_record_id($_GET['id']);
+
+$user_is_zone_owner = verify_user_is_owner_zoneid($zid);
+$zone_type = get_domain_type($zid);
+$zone_name = get_zone_name_from_id($zid);
+
+if (isset($_POST["commit"])) {
+    if ($zone_type == "SLAVE" || $perm_content_edit == "none" || $perm_content_edit == "own" && $user_is_zone_owner == "0") {
+        error(ERR_PERM_EDIT_RECORD);
+    } else {
+        $old_record_info = get_record_from_id($_POST["rid"]);
+        $ret_val = edit_record($_POST);
+        if ($ret_val == "1") {
+            if ($_POST['type'] != "SOA") {
+                update_soa_serial($zid);
+            }
+            success(SUC_RECORD_UPD);
+            $new_record_info = get_record_from_id($_POST["rid"]);
+            log_info(sprintf('client_ip:%s user:%s operation:edit_record'
+                             .' old_record_type:%s old_record:%s old_content:%s old_ttl:%s old_priority:%s'
+                             .' record_type:%s record:%s content:%s ttl:%s priority:%s',
+                              $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"],
+                              $old_record_info['type'], $old_record_info['name'], $old_record_info['content'], $old_record_info['ttl'], $old_record_info['prio'], 
+                              $new_record_info['type'], $new_record_info['name'], $new_record_info['content'], $new_record_info['ttl'], $new_record_info['prio']));
+
+            if ($pdnssec_use) {
+                if (dnssec_rectify_zone($zid)) {
+                    success(SUC_EXEC_PDNSSEC_RECTIFY_ZONE);
+                }
+            }
+        }
+    }
+}
+
+echo "    <h2>" . _('Edit record in zone') . " \"<a href=\"edit.php?id=" . $zid . "\">" . $zone_name . "</a>\"</h2>\n";
+
+if ($perm_view == "none" || $perm_view == "own" && $user_is_zone_owner == "0") {
+    error(ERR_PERM_VIEW_RECORD);
+} else {
+    $record = get_record_from_id($_GET["id"]);
+    echo "     <form method=\"post\" action=\"edit_record.php?domain=" . $zid . "&amp;id=" . $_GET["id"] . "\">\n";
+    echo "      <table>\n";
+    echo "       <tr>\n";
+    echo "        <th>" . _('Name') . "</th>\n";
+    echo "        <th>&nbsp;</th>\n";
+    echo "        <th>" . _('Type') . "</th>\n";
+    echo "        <th>" . _('Content') . "</th>\n";
+    echo "        <th>" . _('Priority') . "</th>\n";
+    echo "        <th>" . _('TTL') . "</th>\n";
+    echo "       </tr>\n";
+
+    /*
+      Sanitize content due to SPF record quoting in PowerDNS
+     */
+    if ($record['type'] == "SRV" || $record['type'] == "SPF" || $record['type'] == "TXT") {
+        $clean_content = trim($record['content'], "\x22\x27");
+    } else {
+        $clean_content = $record['content'];
+    }
+
+    if ($zone_type == "SLAVE" || $perm_content_edit == "none" || $perm_content_edit == "own" && $user_is_zone_owner == "0") {
+        echo "      <tr>\n";
+        echo "       <td>" . $record["name"] . "</td>\n";
+        echo "       <td>IN</td>\n";
+        echo "       <td>" . htmlspecialchars($record["type"]) . "</td>\n";
+        echo "       <td>" . htmlspecialchars($clean_content) . "</td>\n";
+        echo "       <td>" . htmlspecialchars($record["prio"]) . "</td>\n";
+        echo "       <td>" . htmlspecialchars($record["ttl"]) . "</td>\n";
+        echo "      </tr>\n";
+    } else {
+        echo "      <tr>\n";
+        echo "       <td><input type=\"hidden\" name=\"rid\" value=\"" . $_GET["id"] . "\">\n";
+        echo "       <input type=\"hidden\" name=\"zid\" value=\"" . $zid . "\">\n";
+        echo "       <input type=\"text\" name=\"name\" value=\"" . htmlspecialchars(trim(str_replace($zone_name, '', $record["name"]), '.')) . "\" class=\"input\">." . $zone_name . "</td>\n";
+        echo "       <td>IN</td>\n";
+        echo "       <td>\n";
+        echo "        <select name=\"type\">\n";
+        $found_selected_type = false;
+        foreach (get_record_types() as $type_available) {
+            if ($type_available == $record["type"]) {
+                $add = " SELECTED";
+                $found_selected_type = true;
+            } else {
+                $add = "";
+            }
+            echo "         <option" . $add . " value=\"" . htmlspecialchars($type_available) . "\" >" . $type_available . "</option>\n";
+        }
+        if (!$found_selected_type)
+            echo "         <option SELECTED value=\"" . htmlspecialchars($record['type']) . "\"><i>" . $record['type'] . "</i></option>\n";
+        echo "        </select>\n";
+        echo "       </td>\n";
+        echo "       <td><input type=\"text\" name=\"content\" value=\"" . htmlspecialchars($clean_content) . "\" class=\"input\"></td>\n";
+        echo "       <td><input type=\"text\" name=\"prio\" value=\"" . htmlspecialchars($record["prio"]) . "\" class=\"sinput\"></td>\n";
+        echo "       <td><input type=\"text\" name=\"ttl\" value=\"" . htmlspecialchars($record["ttl"]) . "\" class=\"sinput\"></td>\n";
+        echo "      </tr>\n";
+    }
+    echo "      </table>\n";
+    echo "       <input type=\"submit\" name=\"commit\" value=\"" . _('Commit changes') . "\" class=\"button\">&nbsp;&nbsp;\n";
+    echo "       <input type=\"reset\" name=\"reset\" value=\"" . _('Reset changes') . "\" class=\"button\">&nbsp;&nbsp;\n";
+    echo "     </form>\n";
+}
+
+
+include_once("inc/footer.inc.php");

+ 172 - 0
devadmin/html/poweradmin-2.1.7/edit_user.php

@@ -0,0 +1,172 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles user editing requests
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+$edit_id = "-1";
+if (isset($_GET['id']) && v_num($_GET['id'])) {
+    $edit_id = $_GET['id'];
+}
+
+verify_permission('user_edit_own') ? $perm_edit_own = "1" : $perm_edit_own = "0";
+verify_permission('user_edit_others') ? $perm_edit_others = "1" : $perm_edit_others = "0";
+
+if ($edit_id == "-1") {
+    error(ERR_INV_INPUT);
+} elseif (($edit_id == $_SESSION["userid"] && $perm_edit_own == "1") || ($edit_id != $_SESSION["userid"] && $perm_edit_others == "1" )) {
+
+    if (isset($_POST["commit"])) {
+
+        $i_username = "-1";
+        $i_fullname = "-1";
+        $i_email = "-1";
+        $i_description = "-1";
+        $i_password = "-1";
+        $i_perm_templ = "0";
+        $i_active = "0";
+
+        if (isset($_POST['username'])) {
+            $i_username = $_POST['username'];
+        }
+
+        if (isset($_POST['fullname'])) {
+            $i_fullname = $_POST['fullname'];
+        }
+
+        if (isset($_POST['email'])) {
+            $i_email = $_POST['email'];
+        }
+
+        if (isset($_POST['description'])) {
+            $i_description = $_POST['description'];
+        }
+
+        if (isset($_POST['password'])) {
+            $i_password = $_POST['password'];
+        }
+
+        if (isset($_POST['perm_templ']) && v_num($_POST['perm_templ'])) {
+            $i_perm_templ = $_POST['perm_templ'];
+        }
+
+        if (isset($_POST['active']) && v_num($_POST['active'])) {
+            $i_active = $_POST['active'];
+        }
+
+        if ($i_username == "-1" || $i_fullname == "-1" || $i_email < "1" || $i_description == "-1" || $i_password == "-1") {
+            error(ERR_INV_INPUT);
+        } else {
+            if ($i_username != "" && $i_perm_templ > "0" && $i_fullname) {
+                if (!isset($i_active)) {
+                    $active = 0;
+                } else {
+                    $active = 1;
+                }
+                if (edit_user($edit_id, $i_username, $i_fullname, $i_email, $i_perm_templ, $i_description, $active, $i_password)) {
+                    success(SUC_USER_UPD);
+                }
+            }
+        }
+    }
+
+    $users = get_user_detail_list($edit_id);
+
+    foreach ($users as $user) {
+
+        (($user['active']) == "1") ? $check = " CHECKED" : $check = "";
+
+        echo "     <h2>" . _('Edit user') . " \"" . $user['fullname'] . "\"</h2>\n";
+        echo "     <form method=\"post\" action=\"\">\n";
+        echo "      <input type=\"hidden\" name=\"number\" value=\"" . $edit_id . "\">\n";
+        echo "      <table>\n";
+        echo "       <tr>\n";
+        echo "        <td class=\"n\">" . _('Username') . "</td>\n";
+        echo "        <td class=\"n\"><input type=\"text\" class=\"input\" name=\"username\" value=\"" . $user['username'] . "\"></td>\n";
+        echo "       </tr>\n";
+        echo "       <tr>\n";
+        echo "        <td class=\"n\">" . _('Fullname') . "</td>\n";
+        echo "        <td class=\"n\"><input type=\"text\" class=\"input\" name=\"fullname\" value=\"" . $user['fullname'] . "\"></td>\n";
+        echo "       </tr>\n";
+        echo "       <tr>\n";
+        echo "        <td class=\"n\">" . _('Password') . "</td>\n";
+        echo "        <td class=\"n\"><input type=\"password\" class=\"input\" name=\"password\"></td>\n";
+        echo "       </tr>\n";
+        echo "       <tr>\n";
+        echo "        <td class=\"n\">" . _('Email address') . "</td>\n";
+        echo "        <td class=\"n\"><input type=\"text\" class=\"input\" name=\"email\" value=\"" . $user['email'] . "\"></td>\n";
+        echo "       </tr>\n";
+        if (verify_permission('user_edit_templ_perm')) {
+            echo "       <tr>\n";
+            echo "        <td class=\"n\">" . _('Permission template') . "</td>\n";
+            echo "        <td class=\"n\">\n";
+            echo "         <select name=\"perm_templ\">\n";
+            foreach (list_permission_templates() as $template) {
+                ($template['id'] == $user['tpl_id']) ? $select = " SELECTED" : $select = "";
+                echo "          <option value=\"" . $template['id'] . "\"" . $select . ">" . $template['name'] . "</option>\n";
+            }
+            echo "         </select>\n";
+            echo "       </td>\n";
+        }
+        echo "       </tr>\n";
+        echo "       <tr>\n";
+        echo "        <td class=\"n\">" . _('Description') . "</td>\n";
+        echo "        <td class=\"n\"><textarea rows=\"4\" cols=\"30\" class=\"inputarea\" name=\"description\">" . $user['descr'] . "</textarea></td>\n";
+        echo "       </tr>\n";
+        echo "       <tr>\n";
+        echo "        <td class=\"n\">" . _('Enabled') . "</td>\n";
+        echo "        <td class=\"n\"><input type=\"checkbox\" class=\"input\" name=\"active\" value=\"1\"" . $check . "></td>\n";
+        echo "       </tr>\n";
+        echo "       <tr>\n";
+        echo "        <td class=\"n\">&nbsp;</td>\n";
+        echo "        <td class=\"n\"><input type=\"submit\" class=\"button\" name=\"commit\" value=\"" . _('Commit changes') . "\">\n";
+        echo "        <input type=\"reset\" class=\"button\" name=\"reset\" value=\"" . _('Reset changes') . "\"></td>\n";
+        echo "      </table>\n";
+        echo "     </form>\n";
+
+        echo "     <p>\n";
+        printf(_('This user has been assigned the permission template "%s".'), $user['tpl_name']);
+        if ($user['tpl_descr'] != "") {
+            echo " " . _('The description for this template is') . ": \"" . $user['tpl_descr'] . "\".";
+        }
+        echo " " . _('Based on this template, this user has the following permissions') . ":";
+        echo "     </p>\n";
+        echo "     <ul>\n";
+        foreach (get_permissions_by_template_id($user['tpl_id']) as $item) {
+            echo "      <li>" . _($item['descr']) . " (" . $item['name'] . ")</li>\n";
+        }
+        echo "     </ul>\n";
+    }
+} else {
+    error(ERR_PERM_EDIT_USER);
+}
+
+include_once("inc/footer.inc.php");

+ 201 - 0
devadmin/html/poweradmin-2.1.7/edit_zone_templ.php

@@ -0,0 +1,201 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles zone templates editing
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+$zone_templ_id = "-1";
+if (isset($_GET['id']) && v_num($_GET['id'])) {
+    $zone_templ_id = $_GET['id'];
+}
+
+if ($zone_templ_id == "-1") {
+    error(ERR_INV_INPUT);
+    include_once("inc/footer.inc.php");
+    exit;
+}
+
+/*
+  Check permissions
+ */
+$owner = get_zone_templ_is_owner($zone_templ_id, $_SESSION['userid']);
+
+if (isset($_POST['commit']) && $owner) {
+    success(SUC_ZONE_TEMPL_UPD);
+    foreach ($_POST['record'] as $record) {
+        edit_zone_templ_record($record);
+    }
+}
+
+if (isset($_POST['edit']) && $owner) {
+    edit_zone_templ($_POST, $zone_templ_id);
+}
+
+if (isset($_POST['save_as'])) {
+    if (zone_templ_name_exists($_POST['templ_name'])) {
+        error(ERR_ZONE_TEMPL_EXIST);
+    } elseif ($_POST['templ_name'] == '') {
+        error(ERR_ZONE_TEMPL_IS_EMPTY);
+    } else {
+        success(SUC_ZONE_TEMPL_ADD);
+        $templ_details = get_zone_templ_details($zone_templ_id);
+        add_zone_templ_save_as($_POST['templ_name'], $_POST['templ_descr'], $_SESSION['userid'], $_POST['record']);
+    }
+}
+
+if (isset($_POST['update_zones'])) {
+    $zones = get_list_zone_use_templ($zone_templ_id, $_SESSION['userid']);
+    success(SUC_ZONES_UPD);
+    foreach ($zones as $zone) {
+        update_zone_records($zone['id'], $zone_templ_id);
+    }
+}
+
+if (!(verify_permission('zone_master_add')) || !$owner) {
+    error(ERR_PERM_EDIT_ZONE_TEMPL);
+} else {
+    if (zone_templ_id_exists($zone_templ_id) == "0") {
+        error(ERR_ZONE_TEMPL_NOT_EXIST);
+    } else {
+        $record_count = count_zone_templ_records($zone_templ_id);
+        $templ_details = get_zone_templ_details($zone_templ_id);
+        echo "   <h2>" . _('Edit zone template') . " \"" . $templ_details['name'] . "\"</h2>\n";
+
+        echo "   <div class=\"showmax\">\n";
+        show_pages($record_count, $iface_rowamount, $zone_templ_id);
+        echo "   </div>\n";
+
+        $records = get_zone_templ_records($zone_templ_id, ROWSTART, $iface_rowamount, RECORD_SORT_BY);
+        if ($records == "-1") {
+            echo " <p>" . _("This template zone does not have any records yet.") . "</p>\n";
+        } else {
+            echo "   <form method=\"post\" action=\"\">\n";
+            echo "   <table>\n";
+            echo "    <tr>\n";
+            echo "     <th>&nbsp;</th>\n";
+            echo "     <th><a href=\"edit_zone_templ.php?id=" . $zone_templ_id . "&amp;record_sort_by=name\">" . _('Name') . "</a></th>\n";
+            echo "     <th><a href=\"edit_zone_templ.php?id=" . $zone_templ_id . "&amp;record_sort_by=type\">" . _('Type') . "</a></th>\n";
+            echo "     <th><a href=\"edit_zone_templ.php?id=" . $zone_templ_id . "&amp;record_sort_by=content\">" . _('Content') . "</a></th>\n";
+            echo "     <th><a href=\"edit_zone_templ.php?id=" . $zone_templ_id . "&amp;record_sort_by=prio\">" . _('Priority') . "</a></th>\n";
+            echo "     <th><a href=\"edit_zone_templ.php?id=" . $zone_templ_id . "&amp;record_sort_by=ttl\">" . _('TTL') . "</a></th>\n";
+            echo "    </tr>\n";
+            foreach ($records as $r) {
+                echo "    <tr>\n";
+                echo "     <td class=\"n\">\n";
+                echo "    <input type=\"hidden\" name=\"record[" . $r['id'] . "][rid]\" value=\"" . $r['id'] . "\">\n";
+                echo "      <a href=\"edit_zone_templ_record.php?id=" . $r['id'] . "&amp;zone_templ_id=" . $zone_templ_id . "\">
+						<img src=\"images/edit.gif\" alt=\"[ " . _('Edit record') . " ]\"></a>\n";
+                echo "      <a href=\"delete_zone_templ_record.php?id=" . $r['id'] . "&amp;zone_templ_id=" . $zone_templ_id . "\">
+						<img src=\"images/delete.gif\" ALT=\"[ " . _('Delete record') . " ]\" BORDER=\"0\"></a>\n";
+                echo "     </td>\n";
+                echo "      <td class=\"u\"><input class=\"wide\" name=\"record[" . $r['id'] . "][name]\" value=\"" . $r['name'] . "\"></td>\n";
+                echo "      <td class=\"u\">\n";
+                echo "       <select name=\"record[" . $r['id'] . "][type]\">\n";
+                $found_selected_type = false;
+                foreach (get_record_types() as $type_available) {
+                    if ($type_available == $r['type']) {
+                        $add = " SELECTED";
+                        $found_selected_type = true;
+                    } else {
+                        $add = "";
+                    }
+                    echo "         <option" . $add . " value=\"" . $type_available . "\" >" . $type_available . "</option>\n";
+                }
+                if (!$found_selected_type) {
+                    echo "         <option SELECTED value=\"" . htmlspecialchars($r['type']) . "\"><i>" . $r['type'] . "</i></option>\n";
+                }
+                /*
+                  Sanitize content due to SPF record quoting in PowerDNS
+                 */
+                if ($r['type'] == "SRV" || $r['type'] == "SPF") {
+                    $clean_content = trim($r['content'], "\x22\x27");
+                } else {
+                    $clean_content = $r['content'];
+                }
+                echo "       </select>\n";
+                echo "      </td>\n";
+                echo "      <td class=\"u\"><input class=\"wide\" name=\"record[" . $r['id'] . "][content]\" value='" . $clean_content . "'></td>\n";
+                if ($r['type'] == "MX" || $r['type'] == "SRV") {
+                    echo "      <td class=\"u\"><input name=\"record[" . $r['id'] . "][prio]\" value=\"" . $r['prio'] . "\"></td>\n";
+                } else {
+                    echo "      <td class=\"n\">&nbsp;</td>\n";
+                }
+                echo "      <td class=\"u\"><input name=\"record[" . $r['id'] . "][ttl]\" value=\"" . $r['ttl'] . "\"></td>\n";
+                echo "     </tr>\n";
+            }
+            echo "     <tr>\n";
+            echo "      <td colspan=\"6\"><br><b>Hint:</b></td>\n";
+            echo "     </tr>\n";
+            echo "     <tr>\n";
+            echo "      <td colspan=\"6\">" . _('The following placeholders can be used in template records') . "</td>\n";
+            echo "     </tr>\n";
+            echo "     <tr>\n";
+            echo "      <td colspan=\"6\"><br>&nbsp;&nbsp;&nbsp;&nbsp; * [ZONE] - " . _('substituted with current zone name') . "<br>";
+            echo "&nbsp;&nbsp;&nbsp;&nbsp; * [SERIAL] - " . _('substituted with current date and 2 numbers') . " (YYYYMMDD + 00)</td>\n";
+            echo "     </tr>\n";
+            echo "     <tr>\n";
+            echo "      <td colspan=\"6\"><br>Save as new template:</td>\n";
+            echo "     </tr>\n";
+            echo "      <tr>\n";
+            echo "       <th>" . _('Template Name') . "</th>\n";
+            echo "       <td><input class=\"wide\" type=\"text\" name=\"templ_name\" value=\"\"></td>\n";
+            echo "      </tr>\n";
+            echo "      <tr>\n";
+            echo "       <th>" . _('Template Description') . "</th>\n";
+            echo "       <td><input class=\"wide\" type=\"text\" name=\"templ_descr\" value=\"\"></td>\n";
+            echo "      </tr>\n";
+            echo "    </table>\n";
+            echo "     <input type=\"submit\" class=\"button\" name=\"commit\" value=\"" . _('Commit changes') . "\">\n";
+            echo "     <input type=\"reset\" class=\"button\" name=\"reset\" value=\"" . _('Reset changes') . "\">\n";
+            echo "     <input type=\"submit\" class=\"button\" name=\"save_as\" value=\"" . _('Save as template') . "\">\n";
+            echo "     <input type=\"submit\" class=\"button\" name=\"update_zones\" value=\"" . _('Update zones') . "\">\n";
+            echo "    </form>";
+        }
+
+        echo "    <form method=\"post\" action=\"\">\n";
+        echo "     <table>\n";
+        echo "      <tr>\n";
+        echo "       <th>" . _('Name') . "</th>\n";
+        echo "       <td><input class=\"wide\" type=\"text\" name=\"templ_name\" value=\"" . $templ_details['name'] . "\"></td>\n";
+        echo "      </tr>\n";
+        echo "      <tr>\n";
+        echo "       <th>" . _('Description') . "</th>\n";
+        echo "       <td><input class=\"wide\" type=\"text\" name=\"templ_descr\" value=\"" . $templ_details['descr'] . "\"></td>\n";
+        echo "      </tr>\n";
+        echo "     </table>\n";
+        echo "     <input type=\"submit\" class=\"button\" name=\"edit\" value=\"" . _('Commit changes') . "\">\n";
+        echo "     </form>\n";
+        echo "    <input type=\"button\" class=\"button\" OnClick=\"location.href='add_zone_templ_record.php?id=" . $zone_templ_id . "'\" value=\"" . _('Add record') . "\">&nbsp;&nbsp\n";
+        echo "    <input type=\"button\" class=\"button\" OnClick=\"location.href='delete_zone_templ.php?id=" . $zone_templ_id . "'\" value=\"" . _('Delete zone template') . "\">\n";
+    }
+}
+
+include_once("inc/footer.inc.php");

+ 118 - 0
devadmin/html/poweradmin-2.1.7/edit_zone_templ_record.php

@@ -0,0 +1,118 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that handles records editing in zone templates
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+$record_id = "-1";
+if (isset($_GET['id']) && v_num($_GET['id'])) {
+    $record_id = $_GET['id'];
+}
+
+$zone_templ_id = "-1";
+if (isset($_GET['zone_templ_id']) && v_num($_GET['zone_templ_id'])) {
+    $zone_templ_id = $_GET['zone_templ_id'];
+}
+
+$owner = get_zone_templ_is_owner($zone_templ_id, $_SESSION['userid']);
+
+if (isset($_POST["commit"])) {
+    if (!(verify_permission('zone_master_add')) || !$owner) {
+        error(ERR_PERM_EDIT_RECORD);
+    } else {
+        $ret_val = edit_zone_templ_record($_POST);
+        if ($ret_val == "1") {
+            success(SUC_RECORD_UPD);
+        } else {
+            echo "     <div class=\"error\">" . $ret_val . "</div>\n";
+        }
+    }
+}
+
+$templ_details = get_zone_templ_details($zone_templ_id);
+echo "    <h2>" . _('Edit record in zone template') . " \"" . $templ_details['name'] . "\"</h2>\n";
+
+if (!(verify_permission('zone_master_add')) || !$owner) {
+    error(ERR_PERM_VIEW_RECORD);
+} else {
+    $record = get_zone_templ_record_from_id($record_id);
+    echo "     <form method=\"post\" action=\"edit_zone_templ_record.php?zone_templ_id=" . $zone_templ_id . "&id=" . $record_id . "\">\n";
+    echo "      <table>\n";
+    echo "       <tr>\n";
+    echo "        <th>" . _('Name') . "</td>\n";
+    echo "        <th>&nbsp;</td>\n";
+    echo "        <th>" . _('Type') . "</td>\n";
+    echo "        <th>" . _('Content') . "</td>\n";
+    echo "        <th>" . _('Priority') . "</td>\n";
+    echo "        <th>" . _('TTL') . "</td>\n";
+    echo "       </tr>\n";
+    echo "      <input type=\"hidden\" name=\"rid\" value=\"" . $record_id . "\">\n";
+    echo "      <input type=\"hidden\" name=\"zid\" value=\"" . $zone_templ_id . "\">\n";
+    echo "      <tr>\n";
+    echo "       <td><input type=\"text\" name=\"name\" value=\"" . htmlspecialchars($record["name"]) . "\" class=\"input\"></td>\n";
+    echo "       <td>IN</td>\n";
+    echo "       <td>\n";
+    echo "        <select name=\"type\">\n";
+    $found_selected_type = false;
+    foreach (get_record_types() as $type_available) {
+        if ($type_available == $record["type"]) {
+            $add = " SELECTED";
+            $found_selected_type = true;
+        } else {
+            $add = "";
+        }
+        echo "         <option" . $add . " value=\"" . $type_available . "\" >" . $type_available . "</option>\n";
+    }
+    if (!$found_selected_type)
+        echo "         <option SELECTED value=\"" . htmlspecialchars($record['type']) . "\"><i>" . $record['type'] . "</i></option>\n";
+    /*
+      Sanitize content due to SPF record quoting in PowerDNS
+     */
+    if ($record['type'] == "SRV" || $record['type'] == "SPF" || $record['type'] == "TXT") {
+        $clean_content = trim($record['content'], "\x22\x27");
+    } else {
+        $clean_content = $record['content'];
+    }
+    echo "        </select>\n";
+    echo "       </td>\n";
+    echo "       <td><input type=\"text\" name=\"content\" value=\"" . htmlspecialchars($clean_content) . "\" class=\"input\"></td>\n";
+    echo "       <td><input type=\"text\" name=\"prio\" value=\"" . htmlspecialchars($record["prio"]) . "\" class=\"sinput\"></td>\n";
+    echo "       <td><input type=\"text\" name=\"ttl\" value=\"" . htmlspecialchars($record["ttl"]) . "\" class=\"sinput\"></td>\n";
+    echo "      </tr>\n";
+    echo "      </table>\n";
+    echo "      <p>\n";
+    echo "       <input type=\"submit\" name=\"commit\" value=\"" . _('Commit changes') . "\" class=\"button\">&nbsp;&nbsp;\n";
+    echo "       <input type=\"reset\" name=\"reset\" value=\"" . _('Reset changes') . "\" class=\"button\">&nbsp;&nbsp;\n";
+    echo "      </p>\n";
+    echo "     </form>\n";
+}
+
+include_once("inc/footer.inc.php");

BIN
devadmin/html/poweradmin-2.1.7/favicon.ico


BIN
devadmin/html/poweradmin-2.1.7/images/arrow.png


BIN
devadmin/html/poweradmin-2.1.7/images/background.jpg


BIN
devadmin/html/poweradmin-2.1.7/images/delete.gif


BIN
devadmin/html/poweradmin-2.1.7/images/edit.gif


BIN
devadmin/html/poweradmin-2.1.7/images/logo.png


BIN
devadmin/html/poweradmin-2.1.7/images/switch_user.png


+ 249 - 0
devadmin/html/poweradmin-2.1.7/inc/PDOCommon.class.php

@@ -0,0 +1,249 @@
+<?php
+
+/*
+  Copyright 2011 Aldo Gonzalez. All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without modification, are
+  permitted provided that the following conditions are met:
+
+  1. Redistributions of source code must retain the above copyright notice, this list of
+  conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright notice, this list
+  of conditions and the following disclaimer in the documentation and/or other materials
+  provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY Aldo Gonzalez ''AS IS'' AND ANY EXPRESS OR IMPLIED
+  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <copyright HOLDER> OR
+  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+  The views and conclusions contained in the software and documentation are those of the
+  authors and should not be interpreted as representing official policies, either expressed
+  or implied, of Aldo Gonzalez.
+ */
+
+/**
+ * Extends PDO to ensure compatibility with some used functionality from PEAR::MDB2
+ *
+ * @package     Poweradmin
+ * @copyright   2011 Aldo Gonzalez
+ * @license     http://opensource.org/licenses/BSD-2-Clause BSD
+ */
+
+/**
+ * MDB2 over PDO
+ */
+class PDOStatementCommon {
+
+    /**
+     * Internal resource
+     * @var mixed
+     */
+    private $pdoStatement;
+
+    /**
+     * Class constructor
+     *
+     * @param mixed $obj
+     */
+    public function __construct($obj) {
+        $this->pdoStatement = $obj;
+    }
+
+    /**
+     * Returns the number of rows in a result object
+     *
+     * @return int
+     */
+    public function numRows() {
+        // NOTE: Doesn't work properly with PDO and SQLite3
+        return $this->pdoStatement->rowCount();
+    }
+
+    /**
+     * Fetch and return a row of data
+     *
+     * @param int $fetch_style
+     * @return mixed
+     */
+    public function fetch($fetch_style = PDO::FETCH_ASSOC) {
+        return $this->pdoStatement->fetch($fetch_style);
+    }
+
+    /**
+     * Fetch and return a row of data
+     *
+     * @param int $fetch_style
+     * @return mixed
+     */
+    public function fetchRow($fetch_style = PDO::FETCH_ASSOC) {
+        $row = $this->pdoStatement->fetch($fetch_style);
+        return $row;
+    }
+
+}
+
+/**
+ * Implements common PDO methods
+ */
+class PDOCommon extends PDO {
+
+    /**
+     * result limit used in the next query
+     * @var int
+     */
+    private $limit = 0;
+
+    /**
+     * result offset used in the next query
+     * @var int
+     */
+    private $from = 0;
+
+    /**
+     * PDOCommon constructor
+     *
+     * @param string $dsn
+     * @param string $username
+     * @param string $password
+     * @param array $driver_options
+     * @param boolean $isQuiet
+     */
+    public function __construct($dsn, $username = '', $password = '', $driver_options = array(), $isQuiet = false) {
+        try {
+            parent::__construct($dsn, $username, $password, $driver_options);
+        } catch (Exception $e) {
+            error_log($e->getMessage());
+            if ($isQuiet) {
+                die();
+            } else {
+                die("Unable to connect to the database server. " .
+                        "Please report the problem to an Administrator.");
+            }
+        }
+        $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+        // only allow one statement per query
+        // should check that this attribute is only set on
+        // mysql databases
+        if ($this->getAttribute(PDO::ATTR_DRIVER_NAME) == "mysql") {
+            $this->setAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY, false);
+        }
+    }
+
+    /**
+     * Send a query to the database and return any results
+     *
+     * @param string $str
+     * @return \PDOStatementCommon
+     */
+    public function query($str) {
+        // check if limit has been specified. if so, modify the query
+        if (!empty($this->limit)) {
+            $str .= " LIMIT " . $this->limit;
+            if (!empty($this->from)) {
+                $str .= " OFFSET " . $this->from;
+            }
+
+            // after a query is executed the limits are reset, so that
+            // other queries may be performed with the same object
+            $this->limit = 0;
+            $this->from = 0;
+        }
+
+        try {
+            $obj_pdoStatement = parent::query($str);
+        } catch (Exception $e) {
+            error_log("[* SQL ERROR MESSAGE FOLLOWS:\n" .
+                    $e->getTraceAsString() .
+                    "\n" . $e->getMessage() .
+                    "\nFull SQL Statement:" . $str .
+                    "\n*]");
+            die("<b>An error occurred while executing the SQL statement. " .
+                    "Please contact an Administrator and report the problem.</b>" .
+                    "<br /><hr />The following query generated an error:<br />" .
+                    "<pre>" .
+                    $this->formatSQLforHTML($str) .
+                    "\n\n" . $e->getMessage() .
+                    "</pre>");
+        }
+
+        $obj_pdoStatementCommon = new PDOStatementCommon($obj_pdoStatement);
+
+        return $obj_pdoStatementCommon;
+    }
+
+    /**
+     * Return an HTML formatted SQL string
+     *
+     * @param string $str
+     * @return string
+     */
+    protected function formatSQLforHTML($str) {
+        $Keyword = array("SELECT ", "WHERE ", " ON ", "AND ", "OR ",
+            "FROM ", "LIMIT ", "UNION ",
+            "INNER ", "LEFT ", "RIGHT ", "JOIN ", ",",
+            "GROUP BY ", "ORDER BY ", "HAVING ");
+        foreach ($Keyword as $key => $value) {
+            if ($value == ",") {
+                $Replace[$key] = "<b>" . $value . "</b>\n";
+            } else {
+                $Replace[$key] = "\n<b>" . $value . "</b>";
+            }
+        }
+
+        return str_replace($Keyword, $Replace, $str);
+    }
+
+    /**
+     * Execute the specified query, fetch the value from the first column of
+     * the the first result row
+     *
+     * @param string $str
+     * @return array
+     */
+    public function queryOne($str) {
+        $result = $this->query($str);
+        $row = $result->fetch(PDO::FETCH_NUM);
+
+        return $row[0];
+    }
+
+    /**
+     * Execute the specified query, fetch values from first result row
+     *
+     * @param string $str
+     * @return mixed
+     */
+    public function queryRow($str) {
+        $obj_pdoStatement = parent::query($str);
+        return $obj_pdoStatement->fetch(PDO::FETCH_ASSOC);
+    }
+
+    /**
+     * Set the range of the next query
+     *
+     * @param int $limit
+     * @param int $from
+     */
+    public function setLimit($limit, $from = 0) {
+        $this->limit = $limit;
+        $this->from = $from;
+    }
+
+    /**
+     * Quotes a string so it can be safely used in a query.
+     *
+     * @param string $str
+     * @return string
+     */
+    public function escape($str) {
+        return $this->quote($str);
+    }
+
+}

+ 242 - 0
devadmin/html/poweradmin-2.1.7/inc/PDOLayer.php

@@ -0,0 +1,242 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * PDO DB access layer
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+include_once "PDOCommon.class.php";
+
+/**
+ * Overrided PEAR class
+ */
+class PEAR {
+
+    /**
+     * Overrided isError method
+     */
+    public static function isError() {
+        
+    }
+
+}
+
+/**
+ * Fake PDO Extended module
+ */
+class PDOExtended {
+
+    /**
+     * Does several execute() calls on the same statement handle
+     *
+     * @link http://pear.php.net/package/MDB2/docs/2.5.0b3/MDB2/MDB2_Extended.html#methodexecuteMultiple
+     * @param resource $stmt Statement handle
+     * @param array $params numeric array containing the data to insert into the query
+     */
+    public function executeMultiple($stmt, $params) {
+        foreach ($params as $values) {
+            $stmt->execute($values);
+        }
+    }
+
+}
+
+/**
+ * PDO access layer
+ */
+class PDOLayer extends PDOCommon {
+
+    /**
+     * Enables/disables debugging
+     * @var boolean
+     */
+    private $debug = false;
+
+    /**
+     * Internal storage for queries
+     * @var array
+     */
+    private $queries = array();
+
+    /**
+     * Quotes a string
+     *
+     * @param string $string
+     * @param string $paramtype
+     * @return string Returns quoted string
+     */
+    public function quote($string, $paramtype = NULL) {
+        if ($paramtype == 'integer') {
+            $paramtype = PDO::PARAM_INT;
+        } elseif ($paramtype == 'text') {
+            $paramtype = PDO::PARAM_STR;
+        }
+        return parent::quote($string, $paramtype);
+    }
+
+    /**
+     * Set execution options
+     *
+     * @param string $option Option name
+     * @param int $value Option value
+     */
+    public function setOption($option, $value) {
+        if ($option == 'debug' && $value == 1) {
+            $this->debug = true;
+        }
+    }
+
+    /**
+     * Return debug output
+     *
+     * @param string Debug output
+     */
+    public function getDebugOutput() {
+        echo join("<br>", $this->queries);
+    }
+
+    /**
+     * Executes SQL query
+     *
+     * @param string $str SQL query
+     * @return PDOStatement
+     */
+    public function query($str) {
+        if ($this->debug) {
+            $this->queries[] = $str;
+        }
+
+        return parent::query($str);
+    }
+
+    /**
+     * Dummy method
+     */
+    public function disconnect() {
+        
+    }
+
+    /**
+     * Load PDO module
+     *
+     * @param string $name Module name to load
+     */
+    public function loadModule($name) {
+        if ($name == 'Extended') {
+            $this->extended = new PDOExtended();
+        }
+    }
+
+    /**
+     * List all tables in the current database
+     *
+     * @link http://pear.php.net/package/MDB2/docs/2.5.0b3/MDB2/MDB2_Driver_Manager_Common.html#methodlistTables
+     */
+    public function listTables() {
+        // TODO: addapt this function also to pgsql & sqlite
+
+        $tables = array();
+        $db_type = $this->getAttribute(PDO::ATTR_DRIVER_NAME);
+        $query = '';
+
+        if ($db_type == 'mysql') {
+            $query = 'SHOW TABLES';
+        } elseif ($db_type == 'pgsql') {
+            $query = "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'";
+        } elseif ($db_type == 'sqlite') {
+            $query = "SELECT name FROM sqlite_master WHERE type='table'";
+        } else {
+            die(ERR_DB_UNK_TYPE);
+        }
+
+        $result = $this->query($query);
+        while ($row = $result->fetch(PDO::FETCH_NUM)) {
+            $tables[] = $row[0];
+        }
+        return $tables;
+    }
+
+    /**
+     * Create a new table
+     *
+     * @link http://pear.php.net/package/MDB2/docs/2.5.0b3/MDB2/MDB2_Driver_Manager_Common.html#methodcreateTable
+     * @param string $name Name of the table that should be created
+     * @param mixed[] $fields Associative array that contains the definition of each field of the new table
+     * @param mixed[] $options An associative array of table options
+     */
+    public function createTable($name, $fields, $options = array()) {
+        $db_type = $this->getAttribute(PDO::ATTR_DRIVER_NAME);
+        $query_fields = array();
+
+        foreach ($fields as $key => $arr) {
+            if ($arr['type'] == 'text' and isset($arr['length'])) {
+                $arr['type'] = 'VARCHAR';
+            }
+
+            if ($db_type == 'pgsql' && isset($arr['autoincrement'])) {
+                $line = $key . ' SERIAL';
+            } elseif ($db_type == 'pgsql' && $arr['type'] == 'integer') {
+                $line = $key . ' ' . $arr['type'];
+            } else {
+                $line = $key . ' ' . $arr['type'] . (isset($arr['length']) ? '(' . $arr['length'] . ')' : '');
+            }
+
+            if ($arr['notnull'] && $db_type != 'pgsql' && !isset($arr['autoincrement'])) {
+                $line .= ' NOT NULL';
+            }
+
+            if ($db_type == 'mysql' && isset($arr['autoincrement'])) {
+                $line .= ' AUTO_INCREMENT';
+            }
+
+            if ($arr['flags'] == 'primary_keynot_null') {
+                $line .= ' PRIMARY KEY';
+            }
+
+            $query_fields[] = $line;
+        }
+
+        $query = "CREATE TABLE $name (" . implode(', ', $query_fields) . ')';
+
+        if ($db_type == 'mysql' && isset($options['type'])) {
+            $query .= ' ENGINE=' . $options['type'];
+        }
+        $this->exec($query);
+    }
+
+    /**
+     * Drop an existing table
+     *
+     * @link http://pear.php.net/package/MDB2/docs/2.5.0b3/MDB2/MDB2_Driver_Manager_Common.html#methoddropTable
+     * @param string $name name of the table that should be dropped
+     */
+    public function dropTable($name) {
+        $query = "DROP TABLE $name";
+        $this->exec($query);
+    }
+
+}

+ 313 - 0
devadmin/html/poweradmin-2.1.7/inc/auth.inc.php

@@ -0,0 +1,313 @@
+<?php
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Authentication functions
+ *
+ * @package Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+
+/** Authenticate Session
+ *
+ * Checks if user is logging in, logging out, or session expired and performs
+ * actions accordingly
+ *
+ * @return null
+ */
+function doAuthenticate() {
+    global $iface_expire;
+    global $session_key;
+    global $ldap_use;
+
+    if (isset($_SESSION['userid']) && isset($_SERVER["QUERY_STRING"]) && $_SERVER["QUERY_STRING"] == "logout") {
+        logout(_('You have logged out.'), 'success');
+    }
+
+    // If a user had just entered his/her login && password, store them in our session.
+    if (isset($_POST["authenticate"])) {
+        $_SESSION["userpwd"] = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($session_key), $_POST['password'], MCRYPT_MODE_CBC, md5(md5($session_key))));
+
+        $_SESSION["userlogin"] = $_POST["username"];
+        $_SESSION["userlang"] = $_POST["userlang"];
+    }
+
+    // Check if the session hasnt expired yet.
+    if ((isset($_SESSION["userid"])) && ($_SESSION["lastmod"] != "") && ((time() - $_SESSION["lastmod"]) > $iface_expire)) {
+        logout(_('Session expired, please login again.'), 'error');
+    }
+
+    // If the session hasn't expired yet, give our session a fresh new timestamp.
+    $_SESSION["lastmod"] = time();
+
+    if ($ldap_use && userUsesLDAP()) {
+        LDAPAuthenticate();
+    } else {
+        SQLAuthenticate();
+    }
+}
+
+function userUsesLDAP() {
+    global $db;
+
+    $rowObj = $db->queryRow("SELECT id FROM users WHERE username=" . $db->quote($_SESSION["userlogin"], 'text') . " AND use_ldap=1");
+    if ($rowObj) {
+        return true;
+    }
+    return false;
+}
+
+function LDAPAuthenticate() {
+    global $db;
+    global $session_key;
+    global $ldap_uri;
+    global $ldap_debug;
+    global $ldap_basedn;
+    global $ldap_binddn;
+    global $ldap_bindpw;
+    global $ldap_proto;
+    global $ldap_user_attribute;
+
+    if (isset($_SESSION["userlogin"]) && isset($_SESSION["userpwd"])) {
+        if ($ldap_debug) {
+            ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
+        }
+        $ldapconn = ldap_connect($ldap_uri);
+        if (!$ldapconn) {
+            if (isset($_POST["authenticate"]))
+                log_error(sprintf('Failed LDAP authentication attempt from [%s] Reason: ldap_connect failed', $_SERVER['REMOTE_ADDR']));
+            logout(_('Failed to connect to LDAP server!'), 'error');
+            return;
+        }
+
+        $ldapbind = ldap_bind($ldapconn, $ldap_binddn, $ldap_bindpw);
+        ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, $ldap_proto);
+        if (!$ldapbind) {
+            if (isset($_POST["authenticate"])) 
+                log_error(sprintf('Failed LDAP authentication attempt from [%s] Reason: ldap_bind failed', $_SERVER['REMOTE_ADDR']));
+            logout(_('Failed to bind to LDAP server!'), 'error');
+            return;
+        }
+
+        $attributes = array($ldap_user_attribute, 'dn');
+        $filter = "(" . $ldap_user_attribute . "=" . $_SESSION["userlogin"] . ")";
+        $ldapsearch = ldap_search($ldapconn, $ldap_basedn, $filter, $attributes);
+        if (!$ldapsearch) {
+            if (isset($_POST["authenticate"]) ) 
+                log_error(sprintf('Failed LDAP authentication attempt from [%s] Reason: ldap_search failed', $_SERVER['REMOTE_ADDR']));
+            logout(_('Failed to search LDAP.'), 'error');
+            return;
+        }
+
+        //Checking first that we only found exactly 1 user, get the DN of this user.  We'll use this to perform the actual authentication.
+        $entries = ldap_get_entries($ldapconn, $ldapsearch);
+        if ($entries["count"] != 1) {
+            if (isset($_POST["authenticate"])) {
+                if ($entries["count"] == 0 ){ 
+                    log_warn(sprintf('Failed LDAP authentication attempt from [%s] for user \'%s\' Reason: No such user', $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"])); 
+                } else {
+                    log_error(sprintf('Failed LDAP authentication attempt from [%s] for user \'%s\' Reason: Duplicate usernames detected', $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"]));
+                }
+            }
+            logout(_('Failed to authenticate against LDAP.'), 'error');
+            return;
+        }
+        $user_dn = $entries[0]["dn"];
+
+        $session_pass = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($session_key), base64_decode($_SESSION["userpwd"]), MCRYPT_MODE_CBC, md5(md5($session_key))), "\0");
+        $ldapbind = ldap_bind($ldapconn, $user_dn, $session_pass);
+        if (!$ldapbind) {
+            if (isset($_POST["authenticate"]) ) 
+                log_warn(sprintf('Failed LDAP authentication attempt from [%s] for user \'%s\' Reason: Incorrect password', $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"]));
+            auth(_('LDAP Authentication failed!'), "error");
+            return;
+        }
+        //LDAP AUTH SUCCESSFUL
+        //Make sure the user is 'active' and fetch id and name.
+        $rowObj = $db->queryRow("SELECT id, fullname FROM users WHERE username=" . $db->quote($_SESSION["userlogin"], 'text') . " AND active=1");
+        if (!$rowObj) {
+            if (isset($_POST["authenticate"]) )
+                log_warn(sprintf('Failed LDAP authentication attempt from [%s] for user \'%s\' Reason: User is inactive', $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"]));
+            auth(_('LDAP Authentication failed!'), "error");
+            return;
+        }
+        $_SESSION["userid"] = $rowObj["id"];
+        $_SESSION["name"] = $rowObj["fullname"];
+        $_SESSION["auth_used"] = "ldap";
+
+        if (isset($_POST["authenticate"])) {
+            log_notice( sprintf('Successful LDAP authentication attempt from [%s] for user \'%s\'', $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"]) );
+            //If a user has just authenticated, redirect him to requested page
+            session_write_close();
+            $redirect_url = ($_POST["query_string"] ? $_SERVER['SCRIPT_NAME'] . "?" . $_POST["query_string"] : $_SERVER['SCRIPT_NAME']);
+            clean_page($redirect_url);
+            exit;
+        }
+    } else {
+        //No username and password set, show auth form (again).
+        auth();
+    }
+}
+
+function SQLAuthenticate() {
+    global $db;
+    global $password_encryption;
+    global $session_key;
+
+    if (isset($_SESSION["userlogin"]) && isset($_SESSION["userpwd"])) {
+        //Username and password are set, lets try to authenticate.
+        $session_pass = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($session_key), base64_decode($_SESSION["userpwd"]), MCRYPT_MODE_CBC, md5(md5($session_key))), "\0");
+
+        $rowObj = $db->queryRow("SELECT id, fullname, password FROM users WHERE username=" . $db->quote($_SESSION["userlogin"], 'text') . " AND active=1");
+
+        if ($rowObj) {
+            if ($password_encryption == 'md5salt') {
+                $session_password = mix_salt(extract_salt($rowObj["password"]), $session_pass);
+            } else {
+                $session_password = md5($session_pass);
+            }
+
+            if ($session_password == $rowObj["password"]) {
+
+                $_SESSION["userid"] = $rowObj["id"];
+                $_SESSION["name"] = $rowObj["fullname"];
+                $_SESSION["auth_used"] = "internal";
+
+                if (isset($_POST["authenticate"])) {
+                    log_notice(sprintf('Successful authentication attempt from [%s] for user \'%s\'', $_SERVER['REMOTE_ADDR'], $_SESSION["userlogin"]));
+                    //If a user has just authenticated, redirect him to requested page
+                    session_write_close();
+                    $redirect_url = ($_POST["query_string"] ? $_SERVER['SCRIPT_NAME'] . "?" . $_POST["query_string"] : $_SERVER['SCRIPT_NAME']);
+                    clean_page($redirect_url);
+                    exit;
+                }
+            } else if (isset($_POST['authenticate'])) {
+//				auth( _('Authentication failed! - <a href="reset_password.php">(forgot password)</a>'),"error");
+                auth(_('Authentication failed!'), "error");
+            } else {
+                auth();
+            }
+        } else if (isset($_POST['authenticate'])) {
+            log_warn(sprintf('Failed authentication attempt from [%s]', $_SERVER['REMOTE_ADDR']));
+
+            //Authentication failed, retry.
+//			auth( _('Authentication failed! - <a href="reset_password.php">(forgot password)</a>'),"error");
+            auth(_('Authentication failed!'), "error");
+        } else {
+            unset($_SESSION["userpwd"]);
+            unset($_SESSION["userlogin"]);
+            auth();
+        }
+    } else {
+        //No username and password set, show auth form (again).
+        auth();
+    }
+}
+
+/** Print the login form
+ *
+ * @param string $msg Error Message
+ * @param string $type Message type [default='success', 'error']
+ *
+ * @return null
+ */
+function auth($msg = "", $type = "success") {
+    include_once('inc/header.inc.php');
+    include('inc/config.inc.php');
+
+    if ($msg) {
+        print "<div class=\"$type\">$msg</div>\n";
+    }
+    ?>
+    <h2><?php echo _('Log in'); ?></h2>
+    <form method="post" action="<?php echo htmlentities($_SERVER["PHP_SELF"], ENT_QUOTES); ?>">
+        <input type="hidden" name="query_string" value="<?php echo htmlentities($_SERVER["QUERY_STRING"]); ?>">
+        <table border="0">
+            <tr>
+                <td class="n" width="100"><?php echo _('Username'); ?>:</td>
+                <td class="n"><input type="text" class="input" name="username" id="username"></td>
+            </tr>
+            <tr>
+                <td class="n"><?php echo _('Password'); ?>:</td>
+                <td class="n"><input type="password" class="input" name="password"></td>
+            </tr>
+            <tr>
+                <td class="n"><?php echo _('Language'); ?>:</td>
+                <td class="n">
+                    <select class="input" name="userlang">
+                        <?php
+                        // List available languages (sorted alphabetically)
+                        include_once('inc/countrycodes.inc.php');
+                        $locales = scandir('locale/');
+                        foreach ($locales as $locale) {
+                            if (strlen($locale) == 5) {
+                                $locales_fullname[$locale] = $countrycodes[substr($locale, 0, 2)];
+                            }
+                        }
+                        asort($locales_fullname);
+                        foreach ($locales_fullname as $locale => $language) {
+                            if ($locale == $iface_lang) {
+                                echo _('<option selected value="' . $locale . '">' . $language);
+                            } else {
+                                echo _('<option value="' . $locale . '">' . $language);
+                            }
+                        }
+                        ?>
+                    </select>
+                </td>
+            </tr>
+            <tr>
+                <td class="n">&nbsp;</td>
+                <td class="n">
+                    <input type="submit" name="authenticate" class="button" value=" <?php echo _('Go'); ?> ">
+                </td>
+            </tr>
+        </table>
+    </form>
+    <script type="text/javascript">
+        <!--
+      document.getElementById('username').focus();
+    //-->
+    </script>
+    <?php
+    include_once('inc/footer.inc.php');
+    exit;
+}
+
+/** Logout the user
+ *
+ * Logout the user and kickback to login form
+ *
+ * @param string $msg Error Message
+ * @param string $type Message type [default='']
+ *
+ * @return null
+ */
+function logout($msg = "", $type = "") {
+    session_unset();
+    session_destroy();
+    session_write_close();
+    auth($msg, $type);
+    exit;
+}

+ 44 - 0
devadmin/html/poweradmin-2.1.7/inc/benchmark.php

@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * Benchmarking functions
+ *
+ * @package Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+$start_memory = memory_get_usage();
+$start_time = microtime(true);
+
+/** Get Human Readable Size
+ *
+ * Convert size to human readable units
+ *
+ * @param int $size Size to convert
+ *
+ * @return string $result Human readable size
+ */
+function get_human_readable_usage($size) {
+    $units = array('B', 'KB', 'MB', 'GB');
+    $result = $size . ' B';
+
+    if ($size < 1024)
+        return $result;
+
+    $index = floor(log($size, 1024));
+    if ($index < sizeof($units)) {
+        $result = round($size / pow(1024, ($index)), 2) . ' ' . $units[$index];
+    }
+
+    return $result;
+}
+
+/** Print Current Memory and Runtime Stats
+ */
+function display_current_stats() {
+    global $start_time, $start_memory;
+    $memory_usage = get_human_readable_usage(memory_get_usage() - $start_memory);
+    $elapsed_time = sprintf("%.5f", microtime(true) - $start_time);
+    echo "Memory usage: " . $memory_usage . ", elapsed time: " . $elapsed_time;
+}

+ 75 - 0
devadmin/html/poweradmin-2.1.7/inc/config-me.inc.php

@@ -0,0 +1,75 @@
+<?php
+
+/**
+ * Sample configuration file with default values
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+// NOTE: Do not edit this file, otherwise it's very likely your changes 
+// will be overwritten with an upgrade.  
+// Instead, create the file "inc/config.inc.php" and set the variables you
+// want to set there. Your changes will override the defaults provided by us.
+// Better description of available configuration settings you can find here:
+// <https://github.com/poweradmin/poweradmin/wiki/Configuration-File>
+// Database settings
+$db_host = '';
+$db_port = '';
+$db_user = '';
+$db_pass = '';
+$db_name = '';
+$db_type = '';
+//$db_file		= '';		# used only for SQLite, provide full path to database file
+//$db_debug		= false;	# show all SQL queries
+$db_layer		= 'PDO';	# or MDB2
+//$db_ssl_ca            = '';
+// Security settings
+// This should be changed upon install
+$session_key = 'p0w3r4dm1n';
+$password_encryption = 'md5'; // or md5salt
+
+// Interface settings
+$iface_lang = 'en_EN';
+$iface_style = 'example';
+$iface_rowamount = 50;
+$iface_expire = 1800;
+$iface_zonelist_serial = false;
+$iface_title = 'Poweradmin';
+$iface_add_reverse_record = true;
+
+// Predefined DNS settings
+$dns_hostmaster = '';
+$dns_ns1 = '';
+$dns_ns2 = '';
+$dns_ttl = 86400;
+$dns_fancy = false;
+$dns_strict_tld_check = false;
+$dns_top_level_tld_check = false;     // Don't allow to create top level TLDs
+$dns_third_level_check = false;
+// Timezone settings
+// See <http://www.php.net/manual/en/timezones.php> for help.
+//$timezone		= 'UTC';
+// Logging settings
+// Syslog usage - writes authentication attempts to syslog
+// This facility could be used in combination with fail2ban to
+// ban IPs with break-in attempts
+$syslog_use = false;
+$syslog_ident = 'poweradmin';
+// On Windows usually only LOG_USER is available
+$syslog_facility = LOG_USER;
+
+// PowerDNSSEC settings
+$pdnssec_use = false;
+$pdnssec_command = '/usr/bin/pdnssec';
+
+// LDAP settings
+$ldap_use = false;
+$ldap_debug = false;
+$ldap_uri = 'ldap://domaincontroller.example.com';
+$ldap_basedn = 'OU=Users,DC=example,DC=com';
+$ldap_binddn = 'GROUP\lookupuser';
+$ldap_bindpw = 'some_password';
+$ldap_user_attribute = 'sAMAccountName';
+$ldap_proto = 3;

+ 188 - 0
devadmin/html/poweradmin-2.1.7/inc/countrycodes.inc.php

@@ -0,0 +1,188 @@
+<?php
+
+$countrycodes = array(
+    'aa' => 'Afar',
+    'ab' => 'Abkhaz',
+    'ae' => 'Avestan',
+    'af' => 'Afrikaans',
+    'ak' => 'Akan',
+    'am' => 'Amharic',
+    'an' => 'Aragonese',
+    'ar' => 'Arabic',
+    'as' => 'Assamese',
+    'av' => 'Avaric',
+    'ay' => 'Aymara',
+    'az' => 'Azerbaijani',
+    'ba' => 'Bashkir',
+    'be' => 'Belarusian',
+    'bg' => 'Bulgarian',
+    'bh' => 'Bihari',
+    'bi' => 'Bislama',
+    'bm' => 'Bambara',
+    'bn' => 'Bengali',
+    'bo' => 'Tibetan Standard, Tibetan, Central',
+    'br' => 'Breton',
+    'bs' => 'Bosnian',
+    'ca' => 'Catalan; Valencian',
+    'ce' => 'Chechen',
+    'ch' => 'Chamorro',
+    'co' => 'Corsican',
+    'cr' => 'Cree',
+    'cs' => 'Czech',
+    'cu' => 'Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic',
+    'cv' => 'Chuvash',
+    'cy' => 'Welsh',
+    'da' => 'Danish',
+    'de' => 'German',
+    'dv' => 'Divehi; Dhivehi; Maldivian;',
+    'dz' => 'Dzongkha',
+    'ee' => 'Ewe',
+    'el' => 'Greek, Modern',
+    'en' => 'English',
+    'eo' => 'Esperanto',
+    'es' => 'Spanish; Castilian',
+    'et' => 'Estonian',
+    'eu' => 'Basque',
+    'fa' => 'Persian',
+    'ff' => 'Fula; Fulah; Pulaar; Pular',
+    'fi' => 'Finnish',
+    'fj' => 'Fijian',
+    'fo' => 'Faroese',
+    'fr' => 'French',
+    'fy' => 'Western Frisian',
+    'ga' => 'Irish',
+    'gd' => 'Scottish Gaelic; Gaelic',
+    'gl' => 'Galician',
+    'gn' => 'GuaranÃ',
+    'gu' => 'Gujarati',
+    'gv' => 'Manx',
+    'ha' => 'Hausa',
+    'he' => 'Hebrew',
+    'hi' => 'Hindi',
+    'ho' => 'Hiri Motu',
+    'hr' => 'Croatian',
+    'ht' => 'Haitian; Haitian Creole',
+    'hu' => 'Hungarian',
+    'hy' => 'Armenian',
+    'hz' => 'Herero',
+    'ia' => 'Interlingua',
+    'id' => 'Indonesian',
+    'ie' => 'Interlingue',
+    'ig' => 'Igbo',
+    'ii' => 'Nuosu',
+    'ik' => 'Inupiaq',
+    'io' => 'Ido',
+    'is' => 'Icelandic',
+    'it' => 'Italian',
+    'iu' => 'Inuktitut',
+    'ja' => 'Japanese',
+    'jv' => 'Javanese',
+    'ka' => 'Georgian',
+    'kg' => 'Kongo',
+    'ki' => 'Kikuyu, Gikuyu',
+    'kj' => 'Kwanyama, Kuanyama',
+    'kk' => 'Kazakh',
+    'kl' => 'Kalaallisut, Greenlandic',
+    'km' => 'Khmer',
+    'kn' => 'Kannada',
+    'ko' => 'Korean',
+    'kr' => 'Kanuri',
+    'ks' => 'Kashmiri',
+    'ku' => 'Kurdish',
+    'kv' => 'Komi',
+    'kw' => 'Cornish',
+    'ky' => 'Kirghiz, Kyrgyz',
+    'la' => 'Latin',
+    'lb' => 'Luxembourgish, Letzeburgesch',
+    'lg' => 'Luganda',
+    'li' => 'Limburgish, Limburgan, Limburger',
+    'ln' => 'Lingala',
+    'lo' => 'Lao',
+    'lt' => 'Lithuanian',
+    'lu' => 'Luba-Katanga',
+    'lv' => 'Latvian',
+    'mg' => 'Malagasy',
+    'mh' => 'Marshallese',
+    'mi' => 'Maori',
+    'mk' => 'Macedonian',
+    'ml' => 'Malayalam',
+    'mn' => 'Mongolian',
+    'mr' => 'Marathi (Mara?hi)',
+    'ms' => 'Malay',
+    'mt' => 'Maltese',
+    'my' => 'Burmese',
+    'na' => 'Nauru',
+    'nb' => 'Norwegian Bokmål',
+    'nd' => 'North Ndebele',
+    'ne' => 'Nepali',
+    'ng' => 'Ndonga',
+    'nl' => 'Dutch',
+    'nn' => 'Norwegian Nynorsk',
+    'no' => 'Norwegian',
+    'nr' => 'South Ndebele',
+    'nv' => 'Navajo, Navaho',
+    'ny' => 'Chichewa; Chewa; Nyanja',
+    'oc' => 'Occitan',
+    'oj' => 'Ojibwe, Ojibwa',
+    'om' => 'Oromo',
+    'or' => 'Oriya',
+    'os' => 'Ossetian, Ossetic',
+    'pa' => 'Panjabi, Punjabi',
+    'pi' => 'Pali',
+    'pl' => 'Polish',
+    'ps' => 'Pashto, Pushto',
+    'pt' => 'Portuguese',
+    'qu' => 'Quechua',
+    'rm' => 'Romansh',
+    'rn' => 'Kirundi',
+    'ro' => 'Romanian, Moldavian, Moldovan',
+    'ru' => 'Russian',
+    'rw' => 'Kinyarwanda',
+    'sa' => 'Sanskrit',
+    'sc' => 'Sardinian',
+    'sd' => 'Sindhi',
+    'se' => 'Northern Sami',
+    'sg' => 'Sango',
+    'si' => 'Sinhala, Sinhalese',
+    'sk' => 'Slovak',
+    'sl' => 'Slovene',
+    'sm' => 'Samoan',
+    'sn' => 'Shona',
+    'so' => 'Somali',
+    'sq' => 'Albanian',
+    'sr' => 'Serbian',
+    'ss' => 'Swati',
+    'st' => 'Southern Sotho',
+    'su' => 'Sundanese',
+    'sv' => 'Swedish',
+    'sw' => 'Swahili',
+    'ta' => 'Tamil',
+    'te' => 'Telugu',
+    'tg' => 'Tajik',
+    'th' => 'Thai',
+    'ti' => 'Tigrinya',
+    'tk' => 'Turkmen',
+    'tl' => 'Tagalog',
+    'tn' => 'Tswana',
+    'to' => 'Tonga (Tonga Islands)',
+    'tr' => 'Turkish',
+    'ts' => 'Tsonga',
+    'tt' => 'Tatar',
+    'tw' => 'Twi',
+    'ty' => 'Tahitian',
+    'ug' => 'Uighur, Uyghur',
+    'uk' => 'Ukrainian',
+    'ur' => 'Urdu',
+    'uz' => 'Uzbek',
+    've' => 'Venda',
+    'vi' => 'Vietnamese',
+    'vo' => 'Volapük',
+    'wa' => 'Walloon',
+    'wo' => 'Wolof',
+    'xh' => 'Xhosa',
+    'yi' => 'Yiddish',
+    'yo' => 'Yoruba',
+    'za' => 'Zhuang, Chuang',
+    'zh' => 'Chinese',
+    'zu' => 'Zulu'
+);

+ 228 - 0
devadmin/html/poweradmin-2.1.7/inc/database.inc.php

@@ -0,0 +1,228 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Database functions
+ *
+ * @package Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+global $db_layer;
+
+// if DB abstraction layer is not defined in configuration file then try to
+// auto-configure otherwise fail gracefully
+
+if (!isset($db_layer)) {
+    // Use MDB2 by default because PDO support is quite experimental
+    if (@include_once 'MDB2.php') {
+        $db_layer = 'MDB2';
+    } elseif (class_exists('PDO', false)) {
+        $db_layer = 'PDO';
+        include_once 'PDOLayer.php';
+    } else {
+        die(error('You have to install MDB2 or PDO library!'));
+    }
+} else {
+    if ($db_layer == 'MDB2') {
+        (@include_once 'MDB2.php') or die(error('You have to install MDB2 library!'));
+    }
+
+    if ($db_layer == 'PDO') {
+        if (class_exists('PDO', false)) {
+            include_once 'PDOLayer.php';
+        } else {
+            die(error('You have to install PDO library!'));
+        }
+    }
+}
+
+/** Print database error message
+ *
+ * @param object $msg Database error object
+ */
+function dbError($msg) {
+    $debug = $msg->getDebugInfo();
+
+    if (preg_match("/Unknown column 'zone_templ_id'/", $debug)) {
+        $debug = ERR_DB_NO_DB_UPDATE;
+    }
+
+    echo "     <div class=\"error\">Error: " . $debug . "</div>\n";
+    include_once("footer.inc.php");
+    die();
+}
+
+if (isset($db_layer) && $db_layer == 'MDB2') {
+    @PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'dbError');
+}
+
+/**  Connect to Database
+ *
+ * @return object $db Database object
+ */
+function dbConnect() {
+    // XXX: one day all globals will die, I promise
+    global $db_type;
+    global $db_user;
+    global $db_pass;
+    global $db_host;
+    global $db_port;
+    global $db_name;
+    global $db_file;
+    global $db_layer;
+    global $db_debug;
+    global $db_ssl_ca;
+
+    global $sql_regexp;
+
+    if (!(isset($db_type) && $db_type == 'mysql' || $db_type == 'mysqli' || $db_type == 'pgsql' || $db_type == 'sqlite' || $db_type == 'sqlite3' || $db_type == 'oci8')) {
+        include_once("header.inc.php");
+        error(ERR_DB_NO_DB_TYPE);
+        include_once("footer.inc.php");
+        exit;
+    }
+
+    if ($db_type != 'sqlite' && $db_type != 'sqlite3' && !(isset($db_user) && $db_user != "")) {
+        include_once("header.inc.php");
+        error(ERR_DB_NO_DB_USER);
+        include_once("footer.inc.php");
+        exit;
+    }
+
+    if ($db_type != 'sqlite' && $db_type != 'sqlite3' && !(isset($db_pass) && $db_pass != '')) {
+        include_once("header.inc.php");
+        error(ERR_DB_NO_DB_PASS);
+        include_once("footer.inc.php");
+        exit;
+    }
+
+    if ($db_type != 'sqlite' && $db_type != 'sqlite3' && !(isset($db_host) && $db_host != '')) {
+        include_once("header.inc.php");
+        error(ERR_DB_NO_DB_HOST);
+        include_once("footer.inc.php");
+        exit;
+    }
+
+    if ($db_type != 'sqlite' && $db_type != 'sqlite3' && !(isset($db_name) && $db_name != '')) {
+        include_once("header.inc.php");
+        error(ERR_DB_NO_DB_NAME);
+        include_once("footer.inc.php");
+        exit;
+    }
+
+    if ($db_type != 'sqlite' && $db_type != 'sqlite3' && !(isset($db_port)) || $db_port == '') {
+        if ($db_type == "mysql" || $db_type == "mysqli") {
+            $db_port = 3306;
+        } else if ($db_type == 'oci8') {
+            $db_port = 1521;
+        } else {
+            $db_port = 5432;
+        }
+    }
+
+    if (($db_type == 'sqlite' || $db_type == 'sqlite3') && (!(isset($db_file) && $db_file != ''))) {
+        include_once("header.inc.php");
+        error(ERR_DB_NO_DB_FILE);
+        include_once("footer.inc.php");
+        exit;
+    }
+
+    if ($db_layer == 'MDB2') {
+        if ($db_type == 'sqlite') {
+            $dsn = "$db_type:///$db_file";
+        } else if ($db_type == 'sqlite3') {
+            $dsn = "pdoSqlite:///$db_file";
+        } else {
+            if ($db_type == 'oci8') {
+                $db_name = '?service=' . $db_name;
+            }
+            $dsn = "$db_type://$db_user:$db_pass@$db_host:$db_port/$db_name";
+            if (($db_type == 'mysqli') && (isset($db_ssl_ca))) {
+                $dsn .= "?ca=$db_ssl_ca";
+            }
+        }
+    }
+
+    if ($db_layer == 'PDO') {
+        if ($db_type == 'sqlite' || $db_type == 'sqlite3') {
+            $dsn = "$db_type:$db_file";
+        } else {
+            if ($db_type == 'oci8') {
+                $db_name = '?service=' . $db_name;
+            }
+            $dsn = "$db_type:host=$db_host;port=$db_port;dbname=$db_name";
+        }
+    }
+
+    if ($db_layer == 'MDB2') {
+        $options = array(
+            'portability' => MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_EMPTY_TO_NULL,
+        );
+
+        if (($db_type == 'mysqli') && (isset($db_ssl_ca))) {
+            $options['ssl'] = true;
+        }
+
+        $db = MDB2::connect($dsn, $options);
+    }
+
+    if ($db_layer == 'PDO') {
+        $db = new PDOLayer($dsn, $db_user, $db_pass);
+    }
+
+    if (isset($db_debug) && $db_debug) {
+        $db->setOption('debug', 1);
+    }
+
+    // FIXME - it's strange, but this doesn't work, perhaps bug in MDB2 library
+    if (@PEAR::isError($db)) {
+        // Error handling should be put.
+        error(MYSQL_ERROR_FATAL, $db->getMessage());
+    }
+
+    // Do an ASSOC fetch. Gives us the ability to use ["id"] fields.
+    if ($db_layer == 'MDB2') {
+        $db->setFetchMode(MDB2_FETCHMODE_ASSOC);
+    }
+
+    /* erase info */
+    $dsn = '';
+
+    // Add support for regular expressions in both MySQL and PostgreSQL
+    if ($db_type == 'mysql' || $db_type == 'mysqli' || $db_type == 'sqlite' || $db_type == 'sqlite3') {
+        $sql_regexp = "REGEXP";
+    } elseif ($db_type == "oci8") {
+        # TODO: what is regexp syntax in Oracle?
+        $sql_regexp = "";
+    } elseif ($db_type == "pgsql") {
+        $sql_regexp = "~";
+    } else {
+        include_once("header.inc.php");
+        error(ERR_DB_NO_DB_TYPE);
+        include_once("footer.inc.php");
+        exit;
+    }
+    return $db;
+}

Diferenças do arquivo suprimidas por serem muito extensas
+ 860 - 0
devadmin/html/poweradmin-2.1.7/inc/dns.inc.php


+ 580 - 0
devadmin/html/poweradmin-2.1.7/inc/dnssec.inc.php

@@ -0,0 +1,580 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * DNSSEC functions
+ *
+ * @package Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+
+/** Check if it's possible to execute dnssec command
+ *
+ * @return boolean true on success, false on failure
+ */
+function is_pdnssec_callable() {
+    global $pdnssec_command;
+
+    if (!function_exists('exec')) {
+        error(ERR_EXEC_NOT_ALLOWED);
+        return false;
+    }
+
+    if (!file_exists($pdnssec_command) || !is_executable($pdnssec_command)) {
+        error(ERR_EXEC_PDNSSEC);
+        return false;
+    }
+
+    return true;
+}
+
+/** Execute dnssec utility
+ *
+ * @return mixed[] Array with output from command execution and error code
+ */
+function call_dnssec($command, $args) {
+    global $pdnssec_command;
+    $output = '';
+    $return_code = -1;
+
+    if (!is_pdnssec_callable()) {
+        return array($output, $return_code);
+    }
+
+    $command = join(' ', array(
+        $pdnssec_command,
+        $command,
+        $args)
+    );
+
+    exec($command, $output, $return_code);
+
+    return array($output, $return_code);
+}
+
+/** Execute PDNSSEC rectify-zone command for Domain ID
+ *
+ * If a Domain is dnssec enabled, or uses features as
+ * e.g. ALSO-NOTIFY, ALLOW-AXFR-FROM, TSIG-ALLOW-AXFR
+ * following has to be executed
+ * pdnssec rectify-zone $domain
+ *
+ * @param int $domain_id Domain ID
+ *
+ * @return boolean true on success, false on failure or unnecessary
+ */
+function dnssec_rectify_zone($domain_id) {
+    global $db;
+    global $pdnssec_command;
+
+    $output = array();
+
+    /* if pdnssec_command is set we perform ``pdnssec rectify-zone $domain`` on all zones,
+     * as pdns needs the "auth" column for all zones if dnssec is enabled
+     *
+     * If there is any entry at domainmetadata table for this domain,
+     * it is an error if pdnssec_command is not set */
+    $query = "SELECT COUNT(id) FROM domainmetadata WHERE domain_id = " . $db->quote($domain_id, 'integer');
+    $count = $db->queryOne($query);
+
+    if (PEAR::isError($count)) {
+        error($count->getMessage());
+        return false;
+    }
+
+    if (isset($pdnssec_command)) {
+        $domain = get_zone_name_from_id($domain_id);
+        $command = $pdnssec_command . " rectify-zone " . $domain;
+
+        if (!is_pdnssec_callable()) {
+            return false;
+        }
+
+        exec($command, $output, $return_code);
+        if ($return_code != 0) {
+            error(ERR_EXEC_PDNSSEC_RECTIFY_ZONE);
+            return false;
+        }
+
+        return true;
+    } else if ($count >= 1) {
+        error(ERR_EXEC_PDNSSEC);
+        return false;
+    }
+
+    return false;
+}
+
+/** Execute PDNSSEC secure-zone command for Domain Name
+ *
+ * @param string $domain_name Domain Name
+ *
+ * @return boolean true on success, false on failure or unnecessary
+ */
+function dnssec_secure_zone($domain_name) {
+    $call_result = call_dnssec('secure-zone', $domain_name);
+    $return_code = $call_result[1];
+
+    if ($return_code != 0) {
+        error(ERR_EXEC_PDNSSEC_SECURE_ZONE);
+        return false;
+    }
+
+    return true;
+}
+
+/** Execute PDNSSEC disable-dnssec command for Domain Name
+ *
+ * @param string $domain_name Domain Name
+ *
+ * @return boolean true on success, false on failure or unnecessary
+ */
+function dnssec_unsecure_zone($domain_name) {
+    $call_result = call_dnssec('disable-dnssec', $domain_name);
+    $return_code = $call_result[1];
+
+    if ($return_code != 0) {
+        error(ERR_EXEC_PDNSSEC_DISABLE_ZONE);
+        return false;
+    }
+
+    return true;
+}
+
+/** Check if zone is secured
+ *
+ * @param string $domain_name Domain Name
+ *
+ * @return boolean true on success, false on failure
+ */
+function dnssec_is_zone_secured($domain_name) {
+    $call_result = call_dnssec('show-zone', $domain_name);
+    $output = $call_result[0];
+    $return_code = $call_result[1];
+
+    if ($return_code != 0) {
+        error(ERR_EXEC_PDNSSEC_SHOW_ZONE);
+        return false;
+    }
+
+    return (count($output) == 0 ? false : true);
+}
+
+/** Use presigned RRSIGs from storage
+ *
+ * @param string $domain_name Domain Name
+ */
+function dnssec_set_nsec3($domain_name) {
+    call_dnssec('set-nsec3', $domain_name);
+}
+
+/** Switch back to NSEC
+ *
+ * @param string $domain_name Domain Name
+ */
+function dnssec_unset_nsec3($domain_name) {
+    call_dnssec('unset-nsec3', $domain_name);
+}
+
+/** Return nsec type
+ *
+ * @param string $domain_name Domain Name
+ *
+ * @return string nsec or nsec3
+ */
+function dnssec_get_nsec_type($domain_name) {
+    $call_result = call_dnssec('show-zone', $domain_name);
+    $output = $call_result[0];
+
+    return ($output[0] == 'Zone has NSEC semantics' ? 'nsec' : 'nsec3');
+}
+
+/** Use presigned RRSIGs from storage
+ *
+ * @param string $domain_name Domain Name
+ */
+function dnssec_set_presigned($domain_name) {
+    call_dnssec('set-presigned', $domain_name);
+}
+
+/** No longer use presigned RRSIGs
+ *
+ * @param string $domain_name Domain Name
+ */
+function dnssec_unset_presigned($domain_name) {
+    call_dnssec('unset-presigned', $domain_name);
+}
+
+/** Return presigned status
+ *
+ * @param string $domain_name Domain Name
+ *
+ * @return boolean true if zone is presigned, otherwise false
+ */
+function dnssec_get_presigned_status($domain_name) {
+    $call_result = call_dnssec('show-zone', $domain_name);
+    $output = $call_result[0];
+
+    return ($output[1] == 'Zone is presigned' ? true : false);
+}
+
+/** Rectify all zones.
+ */
+function dnssec_rectify_all_zones() {
+    call_dnssec('rectify-all-zones', '');
+}
+
+/** Return DS records
+ *
+ * @param string $domain_name Domain Name
+ *
+ * @return mixed[] DS records
+ */
+function dnssec_ds_records($domain_name) {
+    $call_result = call_dnssec('show-zone', $domain_name);
+    $output = $call_result[0];
+    $return_code = $call_result[1];
+
+    if ($return_code != 0) {
+        error(ERR_EXEC_PDNSSEC_SHOW_ZONE);
+        return false;
+    }
+
+    $ds_records = array();
+    foreach ($output as $line) {
+        if (substr($line, 0, 2) == 'DS') {
+            $items = explode(' ', $line);
+            $ds_line = join(" ", array_slice($items, 2));
+            $ds_records[] = $ds_line;
+        }
+    }
+
+    return $ds_records;
+}
+
+/** Return algorithm name for given number
+ *
+ * @param int $algo Algorithm id
+ *
+ * @return string algorithm name
+ */
+function dnssec_algorithm_to_name($algo) {
+    $name = 'Unallocated/Reserved';
+
+    switch ($algo) {
+        case 0:
+            $name = 'Reserved';
+            break;
+        case 1:
+            $name = 'RSAMD5';
+            break;
+        case 2:
+            $name = 'DH';
+            break;
+        case 3:
+            $name = 'DSA';
+            break;
+        case 4:
+            $name = 'ECC';
+            break;
+        case 5:
+            $name = 'RSASHA1';
+            break;
+        case 6:
+            $name = 'DSA-NSEC3-SHA1';
+            break;
+        case 7:
+            $name = 'RSASHA1-NSEC3-SHA1';
+            break;
+        case 8:
+            $name = 'RSASHA256';
+            break;
+        case 9:
+            $name = 'Reserved';
+            break;
+        case 10:
+            $name = 'RSASHA512';
+            break;
+        case 11:
+            $name = 'Reserved';
+            break;
+        case 12:
+            $name = 'ECC-GOST';
+            break;
+        case 13:
+            $name = 'ECDSAP256SHA256';
+            break;
+        case 14:
+            $name = 'ECDSAP384SHA384';
+            break;
+        case 252:
+            $name = 'INDIRECT';
+            break;
+        case 253:
+            $name = 'PRIVATEDNS';
+            break;
+        case 254:
+            $name = 'PRIVATEOID';
+            break;
+    }
+
+    return $name;
+}
+
+/** Return algorihtm name for given short name
+ *
+ * @param string $short_name Short algorithm name
+ */
+function dnssec_shorthand_to_algorithm_name($short_name) {
+    $name = 'Unknown';
+
+    switch ($short_name) {
+        case "rsamd5":
+            $name = dnssec_algorithm_to_name(1);
+            break;
+        case "dh":
+            $name = dnssec_algorithm_to_name(2);
+            break;
+        case "dsa":
+            $name = dnssec_algorithm_to_name(3);
+            break;
+        case "ecc":
+            $name = dnssec_algorithm_to_name(4);
+            break;
+        case "rsasha1":
+            $name = dnssec_algorithm_to_name(5);
+            break;
+        case "rsasha256":
+            $name = dnssec_algorithm_to_name(8);
+            break;
+        case "rsasha512":
+            $name = dnssec_algorithm_to_name(10);
+            break;
+        case "gost":
+            $name = dnssec_algorithm_to_name(12);
+            break;
+        case "ecdsa256":
+            $name = dnssec_algorithm_to_name(13);
+            break;
+        case "ecdsa384":
+            $name = dnssec_algorithm_to_name(14);
+            break;
+        case "ed25519":
+            $name = dnssec_algorithm_to_name(250);
+            break;
+    }
+
+    return $name;
+}
+
+/** Get name of digest type
+ *
+ * @param int $type Digest type id
+ *
+ * @return string digest name
+ */
+function dnssec_get_digest_name($type) {
+    $name = 'Unknown';
+
+    switch ($type) {
+        case 1:
+            $name = 'SHA-1';
+            break;
+        case 2:
+            $name = 'SHA-256 ';
+            break;
+    }
+
+    return $name;
+}
+
+/** Check if zone is secured
+ *
+ * @param string $domain_name Domain Name
+ *
+ * @return string string containing dns key
+ */
+function dnssec_dnskey_record($domain_name) {
+    $call_result = call_dnssec('show-zone', $domain_name);
+    $output = $call_result[0];
+    $return_code = $call_result[1];
+
+    if ($return_code != 0) {
+        error(ERR_EXEC_PDNSSEC_SHOW_ZONE);
+        return false;
+    }
+
+    $dns_key = '';
+    foreach ($output as $line) {
+        if (substr($line, 0, 3) == 'KSK') {
+            $items = explode(' ', $line);
+            $dns_key = join(" ", array_slice($items, 3));
+        }
+    }
+
+    return $dns_key;
+}
+
+/** Activate zone key
+ *
+ * @param string $domain_name Domain Name
+ *
+ * @return boolean true on success, false on failure
+ */
+function dnssec_activate_zone_key($domain_name, $key_id) {
+    $call_result = call_dnssec('activate-zone-key', join(" ", array($domain_name, $key_id)));
+    $return_code = $call_result[1];
+
+    if ($return_code != 0) {
+        error(ERR_EXEC_PDNSSEC_SHOW_ZONE);
+        return false;
+    }
+
+    return true;
+}
+
+/** Deactivate zone key
+ *
+ * @param string $domain_name Domain Name
+ *
+ * @return boolean true on success, false on failure
+ */
+function dnssec_deactivate_zone_key($domain_name, $key_id) {
+    $call_result = call_dnssec('deactivate-zone-key', join(" ", array($domain_name, $key_id)));
+    $return_code = $call_result[1];
+
+    if ($return_code != 0) {
+        error(ERR_EXEC_PDNSSEC_SHOW_ZONE);
+        return false;
+    }
+
+    return true;
+}
+
+/** Get list of existing DNSSEC keys
+ *
+ * @param string $domain_name Domain Name
+ *
+ * @return mixed[] array with DNSSEC keys
+ */
+function dnssec_get_keys($domain_name) {
+    $call_result = call_dnssec('show-zone', $domain_name);
+    $output = $call_result[0];
+    $return_code = $call_result[1];
+
+    if ($return_code != 0) {
+        error(ERR_EXEC_PDNSSEC_SHOW_ZONE);
+        return false;
+    }
+
+    $keys = array();
+    foreach ($output as $line) {
+        if (substr($line, 0, 2) == 'ID') {
+            $items = explode(' ', $line);
+            $bits_array = explode("\t", $items[12]);
+            $keys[] = array($items[2], substr($items[3], 1, -2), substr($items[6], 0, -1), substr($items[9], 0, -1), $bits_array[0], $items[13]);
+        }
+    }
+
+    return $keys;
+}
+
+/** Create new DNSSEC key
+ *
+ * @param string $domain_name Domain Name
+ * @param string $key_type Key type
+ * @param string $bits Bits in length
+ * @param string $algorithm Algorithm
+ *
+ * @return boolean true on success, false on failure
+ */
+function dnssec_add_zone_key($domain_name, $key_type, $bits, $algorithm) {
+    $call_result = call_dnssec('add-zone-key', join(" ", array($domain_name, $key_type, $bits, $algorithm)));
+    $return_code = $call_result[1];
+
+    if ($return_code != 0) {
+        error(ERR_EXEC_PDNSSEC_ADD_ZONE_KEY);
+        return false;
+    }
+
+    return true;
+}
+
+/** Remove DNSSEC key
+ *
+ * @param string $domain_name Domain Name
+ * @param int $key_id Key ID
+ *
+ * @return boolean true on success, false on failure
+ */
+function dnssec_remove_zone_key($domain_name, $key_id) {
+    $call_result = call_dnssec('remove-zone-key', join(" ", array($domain_name, $key_id)));
+    $return_code = $call_result[1];
+
+    if ($return_code != 0) {
+        error(ERR_EXEC_PDNSSEC_ADD_ZONE_KEY);
+        return false;
+    }
+
+    return true;
+}
+
+/** Check if given key exists
+ *
+ * @param string $domain_name Domain Name
+ * @param int $key_id Key ID
+ *
+ * @return boolean true if exists, otherwise false
+ */
+function dnssec_zone_key_exists($domain_name, $key_id) {
+    $keys = dnssec_get_keys($domain_name);
+
+    foreach ($keys as $key) {
+        if ($key[0] == $key_id) {
+            return true;
+        }
+    }
+
+    return false;
+}
+
+/** Return requested key
+ *
+ * @param string $domain_name Domain Name
+ * @param int $key_id Key ID
+ *
+ * @return mixed[] true if exists, otherwise false
+ */
+function dnssec_get_zone_key($domain_name, $key_id) {
+    $keys = dnssec_get_keys($domain_name);
+
+    foreach ($keys as $key) {
+        if ($key[0] == $key_id) {
+            return $key;
+        }
+    }
+
+    return array();
+}

+ 160 - 0
devadmin/html/poweradmin-2.1.7/inc/error.inc.php

@@ -0,0 +1,160 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/* PERMISSIONS */
+define("ERR_PERM_SEARCH", _("You do not have the permission to perform searches."));
+define("ERR_PERM_ADD_RECORD", _("You do not have the permission to add a record to this zone."));
+define("ERR_PERM_EDIT_RECORD", _("You do not have the permission to edit this record."));
+define("ERR_PERM_VIEW_RECORD", _("You do not have the permission to view this record."));
+define("ERR_PERM_DEL_RECORD", _("You do not have the permission to delete this record."));
+define("ERR_PERM_ADD_ZONE_MASTER", _("You do not have the permission to add a master zone."));
+define("ERR_PERM_ADD_ZONE_SLAVE", _("You do not have the permission to add a slave zone."));
+define("ERR_PERM_DEL_ZONE", _("You do not have the permission to delete a zone."));
+define("ERR_PERM_VIEW_COMMENT", _("You do not have the permission to view this comment."));
+define("ERR_PERM_EDIT_COMMENT", _("You do not have the permission to edit this comment."));
+define("ERR_PERM_DEL_SM", _("You do not have the permission to delete a supermaster."));
+define("ERR_PERM_VIEW_ZONE", _("You do not have the permission to view this zone."));
+define("ERR_PERM_EDIT_USER", _("You do not have the permission to edit this user."));
+define("ERR_PERM_EDIT_PERM_TEMPL", _("You do not have the permission to edit permission templates."));
+define("ERR_PERM_DEL_PERM_TEMPL", _("You do not have the permission to delete permission templates."));
+define("ERR_PERM_ADD_USER", _("You do not have the permission to add a new user."));
+define("ERR_PERM_DEL_USER", _("You do not have the permission to delete this user."));
+define("ERR_PERM_EDIT_ZONE_TEMPL", _("You do not have the permission to edit zone templates."));
+define("ERR_PERM_DEL_ZONE_TEMPL", _("You do not have the permission to delete zone templates."));
+define("ERR_PERM_ADD_ZONE_TEMPL", _("You do not have the permission to add a zone template."));
+
+/* DOMAIN STUFF */
+define("ERR_DOMAIN_INVALID", _('This is an invalid zone name.'));
+define("ERR_SM_EXISTS", _('There is already a supermaster with this IP address and hostname.'));
+define("ERR_DOMAIN_EXISTS", _('There is already a zone with this name.'));
+
+/* USER STUFF */
+define("ERR_USER_EXIST", _('Username exist already, please choose another one.'));
+define("ERR_USER_NOT_EXIST", _('User does not exist.'));
+define("ERR_USER_WRONG_CURRENT_PASS", _('You did not enter the correct current password.'));
+define("ERR_USER_MATCH_NEW_PASS", _('The two new password fields do not match.'));
+define("ERR_PERM_TEMPL_ASSIGNED", _('This template is assigned to at least one user.'));
+
+/* OTHER */
+define("ERR_INV_INPUT", _('Invalid or unexpected input given.'));
+define("ERR_INV_ARG", _('Invalid argument(s) given to function %s'));
+define("ERR_INV_ARGC", _('Invalid argument(s) given to function %s %s'));
+define("ERR_UNKNOWN", _('Unknown error.'));
+define("ERR_INV_EMAIL", _('Enter a valid email address.'));
+define("ERR_ZONE_NOT_EXIST", _('There is no zone with this ID.'));
+define("ERR_REVERS_ZONE_NOT_EXIST", _('There is no matching reverse-zone for: %s.'));
+define("ERR_ZONE_TEMPL_NOT_EXIST", _('There is no zone template with this ID.'));
+define("ERR_INSTALL_DIR_EXISTS", _('The <a href="install/">install/</a> directory exists, you must remove it first before proceeding.'));
+define("ERR_ZONE_TEMPL_EXIST", _('Zone template with this name already exists, please choose another one.'));
+define("ERR_ZONE_TEMPL_IS_EMPTY", _('Template name can\'t be an empty string.'));
+define("ERR_DEFAULT_CRYPTOKEY_USED", _('Default session encryption key is used, please set it in your configuration file.'));
+define("ERR_LOCALE_FAILURE", _('Failed to set locale. Selected locale may be unsupported on this system. Please contact your administrator.'));
+define("ERR_ZONE_UPD", _('Zone has not been updated successfully.'));
+define("ERR_EXEC_NOT_ALLOWED", _('Failed to call function exec. Make sure that exec is not listed in disable_functions at php.ini'));
+
+/* DATABASE */
+define("ERR_DB_NO_DB_NAME", _('No database name has been set in config.inc.php.'));
+define("ERR_DB_NO_DB_HOST", _('No database host has been set in config.inc.php.'));
+define("ERR_DB_NO_DB_USER", _('No database username has been set in config.inc.php.'));
+define("ERR_DB_NO_DB_PASS", _('No database password has been set in config.inc.php.'));
+define("ERR_DB_NO_DB_TYPE", _('No or unknown database type has been set in config.inc.php.'));
+define("ERR_DB_NO_DB_FILE", _('No database file has been set in config.inc.php.'));
+define("ERR_DB_NO_DB_UPDATE", _('It seems that you forgot to update the database after Poweradmin upgrade to new version.'));
+define("ERR_DB_UNK_TYPE", _('Unknown database type.'));
+
+/* DNS */
+define("ERR_DNS_CONTENT", _('Your content field doesnt have a legit value.'));
+define("ERR_DNS_HOSTNAME", _('Invalid hostname.'));
+define("ERR_DNS_HN_INV_CHARS", _('You have invalid characters in your hostname.'));
+define("ERR_DNS_HN_DASH", _('A hostname can not start or end with a dash.'));
+define("ERR_DNS_HN_LENGTH", _('Given hostname or one of the labels is too short or too long.'));
+define("ERR_DNS_HN_SLASH", _('Given hostname has too many slashes.'));
+define("ERR_DNS_RR_TYPE", _('Unknown record type.'));
+define("ERR_DNS_IP", _('This is not a valid IPv4 or IPv6 address.'));
+define("ERR_DNS_IPV6", _('This is not a valid IPv6 address.'));
+define("ERR_DNS_IPV4", _('This is not a valid IPv4 address.'));
+define("ERR_DNS_CNAME", _('This is not a valid CNAME. Did you assign an MX or NS record to the record?'));
+define("ERR_DNS_CNAME_EXISTS", _('This is not a valid record. There is already exists a CNAME with this name.'));
+define("ERR_DNS_CNAME_UNIQUE", _('This is not a valid CNAME. There is already exists an A, AAAA or CNAME with this name.'));
+define("ERR_DNS_CNAME_EMPTY", _('Empty CNAME records are not allowed.'));
+define("ERR_DNS_NON_ALIAS_TARGET", _('You can not point a NS or MX record to a CNAME record. Remove or rame the CNAME record first, or take another name.'));
+define("ERR_DNS_NS_HNAME", _('NS records must be a hostnames.'));
+define("ERR_DNS_MX_PRIO", _('A prio field should be numeric.'));
+define("ERR_DNS_SOA_NAME", _('Invalid value for name field of SOA record. It should be the name of the zone.'));
+define("ERR_DNS_SOA_MNAME", _('You have an error in the MNAME field of the SOA record.'));
+define("ERR_DNS_HINFO_INV_CONTENT", _('Invalid value for content field of HINFO record.'));
+define("ERR_DNS_HN_TOO_LONG", _('The hostname is too long.'));
+define("ERR_DNS_INV_TLD", _('You are using an invalid top level domain.'));
+define("ERR_DNS_INV_TTL", _('Invalid value for TTL field. It should be numeric.'));
+define("ERR_DNS_INV_PRIO", _('Invalid value for prio field. It should be numeric.'));
+define("ERR_DNS_SRV_NAME", _('Invalid value for name field of SRV record.'));
+define("ERR_DNS_SRV_WGHT", _('Invalid value for the priority field of the SRV record.'));
+define("ERR_DNS_SRV_PORT", _('Invalid value for the weight field of the SRV record.'));
+define("ERR_DNS_SRV_TRGT", _('Invalid SRV target.'));
+define("ERR_DNS_PRINTABLE", _('Invalid characters have been used in this record.'));
+
+/* DNSSEC */
+define('ERR_EXEC_PDNSSEC', _('Failed to call pdnssec utility.'));
+define('ERR_EXEC_PDNSSEC_ADD_ZONE_KEY', _('Failed to add new DNSSEC key.'));
+define('ERR_EXEC_PDNSSEC_DISABLE_ZONE', _('Failed to deactivate DNSSEC keys.'));
+define('ERR_EXEC_PDNSSEC_SECURE_ZONE', _('Failed to secure zone.'));
+define('ERR_EXEC_PDNSSEC_SHOW_ZONE', _('Failed to get DNSSEC key details.'));
+define('ERR_EXEC_PDNSSEC_RECTIFY_ZONE', _('Failed to rectify zone.'));
+define('ERR_EXEC_PDNSSEC_PRESIGNED_ZONE', _('Failed to change presigned mode'));
+define('ERR_PDNSSEC_DEL_ZONE_KEY', _('Failed to delete DNSSEC key.'));
+
+/* GOOD! */
+define("SUC_ZONE_ADD", _('Zone has been added successfully.'));
+define("SUC_ZONE_DEL", _('Zone has been deleted successfully.'));
+define("SUC_ZONES_DEL", _('Zones have been deleted successfully.'));
+define("SUC_ZONE_UPD", _('Zone has been updated successfully.'));
+define("SUC_ZONES_UPD", _('Zones have been updated successfully.'));
+define("SUC_USER_UPD", _('The user has been updated successfully.'));
+define("SUC_USER_ADD", _('The user has been created successfully.'));
+define("SUC_USER_DEL", _('The user has been deleted successfully.'));
+define("SUC_RECORD_UPD", _('The record has been updated successfully.'));
+define("SUC_RECORD_DEL", _('The record has been deleted successfully.'));
+define("SUC_COMMENT_UPD", _('The comment has been updated successfully.'));
+define("SUC_SM_DEL", _('The supermaster has been deleted successfully.'));
+define("SUC_SM_ADD", _('The supermaster has been added successfully.'));
+define("SUC_PERM_TEMPL_ADD", _('The permission template has been added successfully.'));
+define("SUC_PERM_TEMPL_UPD", _('The permission template has been updated successfully.'));
+define("SUC_PERM_TEMPL_DEL", _('The permission template has been deleted successfully.'));
+define("SUC_ZONE_TEMPL_ADD", _('Zone template has been added successfully.'));
+define("SUC_ZONE_TEMPL_UPD", _('Zone template has been updated successfully.'));
+define("SUC_ZONE_TEMPL_DEL", _('Zone template has been deleted successfully.'));
+define("SUC_EXEC_PDNSSEC_RECTIFY_ZONE", _('Zone has been rectified successfully.'));
+define("SUC_EXEC_PDNSSEC_ADD_ZONE_KEY", _('Zone key has been added successfully.'));
+define("SUC_EXEC_PDNSSEC_REMOVE_ZONE_KEY", _('Zone key has been deleted successfully.'));
+define("SUC_EXEC_PDNSSEC_ACTIVATE_ZONE_KEY", _('Zone key has been successfully activated.'));
+define("SUC_EXEC_PDNSSEC_DEACTIVATE_ZONE_KEY", _('Zone key has been successfully deactivated.'));
+
+/** Print error message (toolkit.inc)
+ *
+ * @param string $msg Error message
+ *
+ * @return null
+ */
+function error($msg) {
+    echo "     <div class=\"error\">Error: " . $msg . "</div>\n";
+}

+ 35 - 0
devadmin/html/poweradmin-2.1.7/inc/file.inc.php

@@ -0,0 +1,35 @@
+<?php
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Migration functions
+ *
+ * @package Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+
+function file_get_name_without_extension($path) {
+    return basename($path, '.php');
+}
+

+ 69 - 0
devadmin/html/poweradmin-2.1.7/inc/footer.inc.php

@@ -0,0 +1,69 @@
+<?php
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Web interface footer
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+include_once('version.inc.php');
+
+global $db;
+if (is_object($db)) {
+    $db->disconnect();
+}
+?>
+</div> <!-- /content -->
+<div class="footer">
+    <a href="http://www.poweradmin.org/">a complete(r) <strong>poweradmin</strong><?php
+        if (isset($_SESSION["userid"])) {
+            echo " v $VERSION";
+        }
+        ?></a> - <a href="http://www.poweradmin.org/credits.html">credits</a>
+</div>
+<?php
+if (file_exists('inc/custom_footer.inc.php')) {
+    include('inc/custom_footer.inc.php');
+}
+?>
+</body>
+</html>
+
+<?php
+if (isset($db_debug) && $db_debug == true) {
+    $debug = $db->getDebugOutput();
+    $debug = str_replace("query(1)", "", $debug);
+    $lines = explode(":", $debug);
+
+    foreach ($lines as $line) {
+        echo "$line<br>";
+    }
+}
+?>
+
+<?php
+global $display_stats;
+if ($display_stats)
+    display_current_stats();

+ 108 - 0
devadmin/html/poweradmin-2.1.7/inc/header.inc.php

@@ -0,0 +1,108 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Web interface header
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+global $iface_style;
+global $iface_title;
+global $ignore_install_dir;
+global $session_key;
+
+header('Content-type: text/html; charset=utf-8');
+echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
+echo "<html>\n";
+echo " <head>\n";
+echo "  <title>" . $iface_title . "</title>\n";
+echo "  <link rel=stylesheet href=\"style/" . $iface_style . ".css\" type=\"text/css\">\n";
+echo "  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n";
+echo " </head>\n";
+echo " <body>\n";
+
+if (file_exists('inc/custom_header.inc.php')) {
+    include('inc/custom_header.inc.php');
+} else {
+    echo "  <h1>" . $iface_title . "</h1>\n";
+}
+
+// this config variable is used only for development, do not use it in production
+//if ($ignore_install_dir == NULL || $ignore_install_dir == false && file_exists('install')) {
+if (file_exists('install')) {
+    echo "<div>\n";
+    error(ERR_INSTALL_DIR_EXISTS);
+    include('inc/footer.inc.php');
+    exit;
+} elseif (isset($_SESSION["userid"])) {
+    verify_permission('search') ? $perm_search = "1" : $perm_search = "0";
+    verify_permission('zone_content_view_own') ? $perm_view_zone_own = "1" : $perm_view_zone_own = "0";
+    verify_permission('zone_content_view_others') ? $perm_view_zone_other = "1" : $perm_view_zone_other = "0";
+    verify_permission('supermaster_view') ? $perm_supermaster_view = "1" : $perm_supermaster_view = "0";
+    verify_permission('zone_master_add') ? $perm_zone_master_add = "1" : $perm_zone_master_add = "0";
+    verify_permission('zone_slave_add') ? $perm_zone_slave_add = "1" : $perm_zone_slave_add = "0";
+    verify_permission('supermaster_add') ? $perm_supermaster_add = "1" : $perm_supermaster_add = "0";
+    verify_permission('user_is_ueberuser') ? $perm_is_godlike = "1" : $perm_is_godlike = "0";
+
+    if ($perm_is_godlike == 1 && $session_key == 'p0w3r4dm1n') {
+        error(ERR_DEFAULT_CRYPTOKEY_USED);
+        echo "<br>";
+    }
+
+    echo "    <div class=\"menu\">\n";
+    echo "    <span class=\"menuitem\"><a href=\"index.php\">" . _('Index') . "</a></span>\n";
+    if ($perm_search == "1") {
+        echo "    <span class=\"menuitem\"><a href=\"search.php\">" . _('Search zones and records') . "</a></span>\n";
+    }
+    if ($perm_view_zone_own == "1" || $perm_view_zone_other == "1") {
+        echo "    <span class=\"menuitem\"><a href=\"list_zones.php\">" . _('List zones') . "</a></span>\n";
+    }
+    if ($perm_zone_master_add) {
+        echo "    <span class=\"menuitem\"><a href=\"list_zone_templ.php\">" . _('List zone templates') . "</a></span>\n";
+    }
+    if ($perm_supermaster_view) {
+        echo "    <span class=\"menuitem\"><a href=\"list_supermasters.php\">" . _('List supermasters') . "</a></span>\n";
+    }
+    if ($perm_zone_master_add) {
+        echo "    <span class=\"menuitem\"><a href=\"add_zone_master.php\">" . _('Add master zone') . "</a></span>\n";
+    }
+    if ($perm_zone_slave_add) {
+        echo "    <span class=\"menuitem\"><a href=\"add_zone_slave.php\">" . _('Add slave zone') . "</a></span>\n";
+    }
+    if ($perm_supermaster_add) {
+        echo "    <span class=\"menuitem\"><a href=\"add_supermaster.php\">" . _('Add supermaster') . "</a></span>\n";
+    }
+    if ($perm_zone_master_add) {
+        echo "    <span class=\"menuitem\"><a href=\"bulk_registration.php\">" . _('Bulk registration') . "</a></span>\n";
+    }
+    if ($_SESSION["auth_used"] != "ldap") {
+        echo "    <span class=\"menuitem\"><a href=\"change_password.php\">" . _('Change password') . "</a></span>\n";
+    }
+    echo "    <span class=\"menuitem\"><a href=\"users.php\">" . _('User administration') . "</a></span>\n";
+    echo "    <span class=\"menuitem\"><a href=\"index.php?logout\">" . _('Logout') . "</a></span>\n";
+    echo "    </div> <!-- /menu -->\n";
+}
+echo "    <div class=\"content\">\n";

+ 149 - 0
devadmin/html/poweradmin-2.1.7/inc/helper.js

@@ -0,0 +1,149 @@
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <https://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+function changePort(db_type) {
+    var dbport = document.getElementById("dbport");
+    var host = document.getElementById("host");
+    var db_name_title = document.getElementById("db_name_title");
+    var db_path_title = document.getElementById("db_path_title");
+    var username_row = document.getElementById("username_row");
+    var password_row = document.getElementById("password_row");
+    var hostname_row = document.getElementById("hostname_row");
+    var dbport_row = document.getElementById("dbport_row");
+
+    if (db_type == "mysql") {
+        dbport.value = "3306";
+        host.value = "localhost";
+        db_name_title.style.display = '';
+        db_path_title.style.display = "none";
+        username_row.style.display = '';
+        password_row.style.display = '';
+        hostname_row.style.display = '';
+        dbport_row.style.display = '';
+    } else if (db_type == "pgsql") {
+        dbport.value = "5432";
+        host.value = "localhost";
+        db_name_title.style.display = '';
+        db_path_title.style.display = "none";
+        username_row.style.display = '';
+        password_row.style.display = '';
+        hostname_row.style.display = '';
+        dbport_row.style.display = '';
+    } else {
+        dbport.value = "";
+        host.value = "";
+        db_name_title.style.display = "none";
+        db_path_title.style.display = '';
+        username_row.style.display = "none";
+        password_row.style.display = "none";
+        hostname_row.style.display = "none";
+        dbport_row.style.display = "none";
+    }
+}
+
+//Add more fields dynamically.
+function addField(area, field, limit) {
+    if (!document.getElementById)
+        return; //Prevent older browsers from getting any further.
+    var field_area = document.getElementById(area);
+    var all_inputs = field_area.getElementsByTagName("input"); //Get all the input fields in the given area.
+    //Find the count of the last element of the list. It will be in the format '<field><number>'. If the
+    //		field given in the argument is 'friend_' the last id will be 'friend_4'.
+    var last_item = all_inputs.length - 1;
+    var last = all_inputs[last_item].id;
+    var count = Number(last.split("_")[1]) + 1;
+
+    //If the maximum number of elements have been reached, exit the function.
+    //		If the given limit is lower than 0, infinite number of fields can be created.
+    if (count > limit && limit > 0)
+        return;
+
+    if (document.createElement) { //W3C Dom method.
+        var li = document.createElement("li");
+        var input = document.createElement("input");
+        input.id = field + count;
+        input.name = "domain[]";
+        input.type = "text"; //Type of field - can be any valid input type like text,file,checkbox etc.
+        input.className = "input";
+        li.appendChild(input);
+        var editLink = document.createElement("input");
+        editLink.id = 'remove_button';
+        editLink.type = 'button';
+        editLink.value = 'Remove field';
+        editLink.setAttribute('class', 'button');
+        editLink.onclick = function() {
+            this.parentNode.parentNode.removeChild(this.parentNode);
+        }
+        li.appendChild(editLink);
+        field_area.appendChild(li);
+    } else { //Older Method
+        field_area.innerHTML += "<li><input name='domain[]' id='" + (field + count) + "' type='text' class='input' /> <a onclick=\"this.parentNode.parentNode.removeChild(this.parentNode);\">Remove Field</a></li>";
+    }
+}
+
+function getDomainsElements() {
+    var
+            coll = document.getElementsByTagName('input'),
+            re = /^domain\[\]$/,
+            t,
+            elm,
+            i = 0,
+            key = 0,
+            records = new Array();
+
+    while (elm = coll.item(i++))
+    {
+        t = re.exec(elm.name);
+        if (t != null)
+        {
+            records[key] = elm;
+            key++;
+        }
+    }
+    return records;
+}
+
+function checkDomainFilled() {
+    var
+            domains = new Array(),
+            allEmpty = true,
+            domains = getDomainsElements();
+
+    if (domains.length == 1) {
+        if ((domains[0].value.length == 0 || domains[0].value == null || domains[0].value == "")) {
+            alert('Zone name cannot be empty');
+            return false;
+        }
+    } else {
+        for (key in domains) {
+            if ((domains[key].value.length != 0)) {
+                allEmpty = false;
+            }
+        }
+
+        if (true === allEmpty) {
+            alert('Please fill in at least one Zone name');
+            return false;
+        }
+    }
+
+    add_zone_master.submit();
+}

+ 50 - 0
devadmin/html/poweradmin-2.1.7/inc/i18n.inc.php

@@ -0,0 +1,50 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Interface localisation helper
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+if (file_exists('inc/config.inc.php')) {
+    include_once("inc/config.inc.php");
+} else {
+    $iface_lang = 'en_EN';
+}
+
+if ($iface_lang != 'en_EN') {
+    $locale = setlocale(LC_ALL, $iface_lang, $iface_lang . '.UTF-8');
+    if ($locale == false) {
+        error(ERR_LOCALE_FAILURE);
+    }
+
+    $gettext_domain = 'messages';
+    bindtextdomain($gettext_domain, "./locale");
+    bind_textdomain_codeset($gettext_domain, 'utf-8');
+    textdomain($gettext_domain);
+    @putenv('LANG=' . $iface_lang);
+    @putenv('LANGUAGE=' . $iface_lang);
+}

+ 80 - 0
devadmin/html/poweradmin-2.1.7/inc/migrations.inc.php

@@ -0,0 +1,80 @@
+<?php
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Migration functions
+ *
+ * @package Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+
+/** Check if given migration exists
+ *
+ * @param resource $db DB link
+ * @param string $file_name Migration file name
+ *
+ * @return boolean true on success, false on failure
+ */
+function migration_exists($db, $file_name) {
+    $query = "SELECT COUNT(version) FROM migrations WHERE version = " . $db->quote($file_name, 'text');
+    $count = $db->queryOne($query);
+    if ($count == 0) {
+        return false;
+    }
+
+    return true;
+}
+
+/** Save migration status to database
+ *
+ * @param resource $db DB link
+ * @param string $file_name Migration file name
+ *
+ * @return boolean true on success, false on failure
+ */
+function migration_save($db, $file_name) {
+    $query = "INSERT INTO migrations (version, apply_time) VALUES(" . $db->quote($file_name, 'text') . "," . $db->quote(time(), 'text') . ")";
+    return $db->query($query);
+}
+
+/** Get newline symbol depending on environment
+ *
+ * @return string newline for run environment
+ */
+function migration_get_environment_newline() {
+    $new_line = '<br/>';
+    if (php_sapi_name() == 'cli') {
+        $new_line = PHP_EOF;
+    }
+    return $new_line;
+}
+
+/** Display given message
+ * 
+ * @param string $msg Message that needs to be dispalyed
+ */
+function migration_message($msg) {
+    $new_line = migration_get_environment_newline();
+    echo $msg.$new_line;
+}

+ 2122 - 0
devadmin/html/poweradmin-2.1.7/inc/record.inc.php

@@ -0,0 +1,2122 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+require_once('templates.inc.php');
+
+/**
+ * DNS record functions
+ *
+ * @package Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+
+/** Check if Zone ID exists
+ *
+ * @param int $zid Zone ID
+ *
+ * @return boolean|int Domain count or false on failure
+ */
+function zone_id_exists($zid) {
+    global $db;
+    $query = "SELECT COUNT(id) FROM domains WHERE id = " . $db->quote($zid, 'integer');
+    $count = $db->queryOne($query);
+    if (PEAR::isError($count)) {
+        error($count->getMessage());
+        return false;
+    }
+    return $count;
+}
+
+/** Get Zone ID from Record ID
+ *
+ * @param int $rid Record ID
+ *
+ * @return int Zone ID
+ */
+function get_zone_id_from_record_id($rid) {
+    global $db;
+    $query = "SELECT domain_id FROM records WHERE id = " . $db->quote($rid, 'integer');
+    $zid = $db->queryOne($query);
+    return $zid;
+}
+
+/** Count Zone Records for Zone ID
+ *
+ * @param int $zone_id Zone ID
+ *
+ * @return int Record count
+ */
+function count_zone_records($zone_id) {
+    global $db;
+    $sqlq = "SELECT COUNT(id) FROM records WHERE domain_id = " . $db->quote($zone_id, 'integer');
+    $record_count = $db->queryOne($sqlq);
+    return $record_count;
+}
+
+/** Get SOA record content for Zone ID
+ *
+ * @param int $zone_id Zone ID
+ *
+ * @return string SOA content
+ */
+function get_soa_record($zone_id) {
+    global $db;
+
+    $sqlq = "SELECT content FROM records WHERE type = " . $db->quote('SOA', 'text') . " AND domain_id = " . $db->quote($zone_id, 'integer');
+    $result = $db->queryOne($sqlq);
+
+    return $result;
+}
+
+/** Get SOA Serial Number
+ *
+ * @param string $soa_rec SOA record content
+ *
+ * @return string SOA serial
+ */
+function get_soa_serial($soa_rec) {
+    $soa = explode(" ", $soa_rec);
+    return $soa[2];
+}
+
+/** Get Next Date
+ *
+ * @param string $curr_date Current date in YYYYMMDD format
+ *
+ * @return string Date +1 day
+ */
+function get_next_date($curr_date) {
+    $next_date = date('Ymd', strtotime('+1 day', strtotime($curr_date)));
+    return $next_date;
+}
+
+/** Get Next Serial
+ *
+ * Zone transfer to zone slave(s) will occur only if the serial number
+ * of the SOA RR is arithmetically greater that the previous one
+ * (as defined by RFC-1982).
+ *
+ * The serial should be updated, unless:
+ *
+ * - the serial is set to "0", see http://doc.powerdns.com/types.html#id482176
+ *
+ * - set a fresh serial ONLY if the existing serial is lower than the current date
+ *
+ * - update date in serial if it reaches limit of revisions for today or do you
+ * think that ritual suicide is better in such case?
+ *
+ * "This works unless you will require to make more than 99 changes until the new
+ * date is reached - in which case perhaps ritual suicide is the best option."
+ * http://www.zytrax.com/books/dns/ch9/serial.html
+ *
+ * @param string $curr_serial Current Serial No
+ * @param string $today Optional date for "today"
+ *
+ * @return string Next serial number
+ */
+function get_next_serial($curr_serial, $today = '') {
+    // Autoserial
+    if ($curr_serial == 0) {
+        return 0;
+    }
+
+    // Serial number could be a not date based
+    if ($curr_serial < 1979999999) {
+        return $curr_serial+1;
+    }
+
+    // Reset the serial number, Bind was written in the early 1980s
+    if ($curr_serial == 1979999999) {
+        return 1;
+    }
+
+    if ($today == '') {
+        set_timezone();
+        $today = date('Ymd');
+    }
+
+    $revision = (int) substr($curr_serial, -2);
+    $ser_date = substr($curr_serial, 0, 8);
+
+    if ($curr_serial == '0') {
+        $serial = $curr_serial;
+    } elseif ($curr_serial == $today . '99') {
+        $serial = get_next_date($today) . '00';
+    } else {
+        if (strcmp($today, $ser_date) === 0) {
+            // Current serial starts with date of today, so we need to update the revision only.
+            ++$revision;
+        } elseif (strncmp($today, $curr_serial, 8) === -1) {
+            // Reuse existing serial date if it's in the future
+            $today = substr($curr_serial, 0, 8);
+
+            // Get next date if revision reaches maximum per day (99) limit otherwise increment the counter
+            if ($revision == 99) {
+                $today = get_next_date($today);
+                $revision = "00";
+            } else {
+                ++$revision;
+            }
+        } else {
+            // Current serial did not start of today, so it's either an older
+            // serial, therefore set a fresh serial
+            $revision = "00";
+        }
+
+        // Create new serial out of existing/updated date and revision
+        $serial = $today . str_pad($revision, 2, "0", STR_PAD_LEFT);
+    }
+
+    return $serial;
+}
+
+/** Update SOA record
+ *
+ * @param int $domain_id Domain ID
+ * @param string $content SOA content to set
+ *
+ * @return boolean true if success
+ */
+function update_soa_record($domain_id, $content) {
+    global $db;
+
+    $sqlq = "UPDATE records SET content = " . $db->quote($content, 'text') . " WHERE domain_id = " . $db->quote($domain_id, 'integer') . " AND type = " . $db->quote('SOA', 'text');
+    $response = $db->query($sqlq);
+
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    return true;
+}
+
+/** Set SOA serial in SOA content
+ *
+ * @param string $soa_rec SOA record content
+ * @param string $serial New serial number
+ *
+ * @return string Updated SOA record
+ */
+function set_soa_serial($soa_rec, $serial) {
+    // Split content of current SOA record into an array.
+    $soa = explode(" ", $soa_rec);
+    $soa[2] = $serial;
+
+    // Build new SOA record content
+    $soa_rec = join(" ", $soa);
+    chop($soa_rec);
+
+    return $soa_rec;
+}
+
+/** Return SOA record
+ *
+ * Returns SOA record with incremented serial number
+ *
+ * @param int $soa_rec Current SOA record
+ *
+ * @return boolean true if success
+ */
+function get_updated_soa_record($soa_rec) {
+    $curr_serial = get_soa_serial($soa_rec);
+    $new_serial = get_next_serial($curr_serial);
+
+    if ($curr_serial != $new_serial) {
+        return set_soa_serial($soa_rec, $new_serial);
+    }
+
+    return set_soa_serial($soa_rec, $curr_serial);
+}
+
+/** Update SOA serial
+ *
+ * Increments SOA serial to next possible number
+ *
+ * @param int $domain_id Domain ID
+ *
+ * @return boolean true if success
+ */
+function update_soa_serial($domain_id) {
+    $soa_rec = get_soa_record($domain_id);
+    if ($soa_rec == NULL) {
+        return false;
+    }
+
+    $curr_serial = get_soa_serial($soa_rec);
+    $new_serial = get_next_serial($curr_serial);
+
+    if ($curr_serial != $new_serial) {
+        $soa_rec = set_soa_serial($soa_rec, $new_serial);
+        return update_soa_record($domain_id, $soa_rec);
+    }
+
+    return true;
+}
+
+/** Get Zone comment
+ *
+ * @param int $zone_id Zone ID
+ *
+ * @return string Zone Comment
+ */
+function get_zone_comment($zone_id) {
+    global $db;
+    $query = "SELECT comment FROM zones WHERE domain_id = " . $db->quote($zone_id, 'integer');
+    $comment = $db->queryOne($query);
+
+    if ($comment == "0") {
+        $comment = '';
+    }
+
+    return $comment;
+}
+
+/** Edit the zone comment
+ *
+ * This function validates it if correct it inserts it into the database.
+ *
+ * @param int $zone_id Zone ID
+ * @param string $comment Comment to set
+ *
+ * @return boolean true on success
+ */
+function edit_zone_comment($zone_id, $comment) {
+
+    if (verify_permission('zone_content_edit_others')) {
+        $perm_content_edit = "all";
+    } elseif (verify_permission('zone_content_edit_own')) {
+        $perm_content_edit = "own";
+    } else {
+        $perm_content_edit = "none";
+    }
+
+    $user_is_zone_owner = verify_user_is_owner_zoneid($zone_id);
+    $zone_type = get_domain_type($zone_id);
+
+    if ($zone_type == "SLAVE" || $perm_content_edit == "none" || ($perm_content_edit == "own" && $user_is_zone_owner == "0")) {
+        error(ERR_PERM_EDIT_COMMENT);
+        return false;
+    } else {
+        global $db;
+
+        $query = "SELECT COUNT(*) FROM zones WHERE domain_id=" . $db->quote($zone_id, 'integer');
+
+        $count = $db->queryOne($query);
+
+        if ($count > 0) {
+            $query = "UPDATE zones
+				SET comment=" . $db->quote($comment, 'text') . "
+				WHERE domain_id=" . $db->quote($zone_id, 'integer');
+            $result = $db->query($query);
+            if (PEAR::isError($result)) {
+                error($result->getMessage());
+                return false;
+            }
+        } else {
+            $query = "INSERT INTO zones (domain_id, owner, comment)
+				VALUES(" . $db->quote($zone_id, 'integer') . ",1," . $db->quote($comment, 'text') . ")";
+            $result = $db->query($query);
+            if (PEAR::isError($result)) {
+                error($result->getMessage());
+                return false;
+            }
+        }
+    }
+    return true;
+}
+
+/** Edit a record
+ *
+ * This function validates it if correct it inserts it into the database.
+ *
+ * @param mixed[] $record Record structure to update
+ *
+ * @return boolean true if successful
+ */
+function edit_record($record) {
+
+    if (verify_permission('zone_content_edit_others')) {
+        $perm_content_edit = "all";
+    } elseif (verify_permission('zone_content_edit_own')) {
+        $perm_content_edit = "own";
+    } else {
+        $perm_content_edit = "none";
+    }
+
+    $user_is_zone_owner = verify_user_is_owner_zoneid($record['zid']);
+    $zone_type = get_domain_type($record['zid']);
+
+    if ($zone_type == "SLAVE" || $perm_content_edit == "none" || ($perm_content_edit == "own" && $user_is_zone_owner == "0")) {
+        error(ERR_PERM_EDIT_RECORD);
+        return false;
+    } else {
+        global $db;
+        if (validate_input($record['rid'], $record['zid'], $record['type'], $record['content'], $record['name'], $record['prio'], $record['ttl'])) {
+            $name = strtolower($record['name']); // powerdns only searches for lower case records
+            if ($record['type'] == "SPF" || $record['type'] == "TXT") {
+                $content = $db->quote(stripslashes('\"' . $record['content'] . '\"'), 'text');
+            } else {
+                $content = $db->quote($record['content'], 'text');
+            }
+            $query = "UPDATE records
+				SET name=" . $db->quote($name, 'text') . ",
+				type=" . $db->quote($record['type'], 'text') . ",
+				content=" . $content . ",
+				ttl=" . $db->quote($record['ttl'], 'integer') . ",
+				prio=" . $db->quote($record['prio'], 'integer') . ",
+				change_date=" . $db->quote(time(), 'integer') . "
+				WHERE id=" . $db->quote($record['rid'], 'integer');
+            $result = $db->query($query);
+            if (PEAR::isError($result)) {
+                error($result->getMessage());
+                return false;
+            }
+            return true;
+        }
+        return false;
+    }
+}
+
+/** Add a record
+ *
+ * This function validates it if correct it inserts it into the database.
+ *
+ * @param int $zone_id Zone ID
+ * @param string $name Name part of record
+ * @param string $type Type of record
+ * @param string $content Content of record
+ * @param int $ttl Time-To-Live of record
+ * @param int $prio Priority of record
+ *
+ * @return boolean true if successful
+ */
+function add_record($zone_id, $name, $type, $content, $ttl, $prio) {
+    global $db;
+    global $pdnssec_use;
+
+    if (verify_permission('zone_content_edit_others')) {
+        $perm_content_edit = "all";
+    } elseif (verify_permission('zone_content_edit_own')) {
+        $perm_content_edit = "own";
+    } else {
+        $perm_content_edit = "none";
+    }
+
+    $user_is_zone_owner = verify_user_is_owner_zoneid($zone_id);
+    $zone_type = get_domain_type($zone_id);
+
+    if ($zone_type == "SLAVE" || $perm_content_edit == "none" || ($perm_content_edit == "own" && $user_is_zone_owner == "0")) {
+        error(ERR_PERM_ADD_RECORD);
+        return false;
+    } else {
+        $response = $db->beginTransaction();
+        if (validate_input(-1, $zone_id, $type, $content, $name, $prio, $ttl)) {
+            $change = time();
+            $name = strtolower($name); // powerdns only searches for lower case records
+            if ($type == "SPF" || $type == "TXT") {
+                $content = $db->quote(stripslashes('\"' . $content . '\"'), 'text');
+            } else {
+                $content = $db->quote($content, 'text');
+            }
+            $query = "INSERT INTO records (domain_id, name, type, content, ttl, prio, change_date) VALUES ("
+                    . $db->quote($zone_id, 'integer') . ","
+                    . $db->quote($name, 'text') . ","
+                    . $db->quote($type, 'text') . ","
+                    . $content . ","
+                    . $db->quote($ttl, 'integer') . ","
+                    . $db->quote($prio, 'integer') . ","
+                    . $db->quote($change, 'integer') . ")";
+            $response = $db->exec($query);
+            if (PEAR::isError($response)) {
+                error($response->getMessage());
+                $response = $db->rollback();
+                return false;
+            } else {
+                $response = $db->commit();
+                if ($type != 'SOA') {
+                    update_soa_serial($zone_id);
+                }
+                if ($pdnssec_use) {
+                    dnssec_rectify_zone($zone_id);
+                }
+                return true;
+            }
+        } else {
+            return false;
+        }
+    }
+}
+
+/** Add Supermaster
+ *
+ * Add a trusted supermaster to the global supermasters table
+ *
+ * @param string $master_ip Supermaster IP address
+ * @param string $ns_name Hostname of supermasterfound in NS records for domain
+ * @param string $account Account name used for tracking
+ *
+ * @return boolean true on success
+ */
+function add_supermaster($master_ip, $ns_name, $account) {
+    global $db;
+    if (!is_valid_ipv4($master_ip) && !is_valid_ipv6($master_ip)) {
+        error(ERR_DNS_IP);
+        return false;
+    }
+    if (!is_valid_hostname_fqdn($ns_name, 0)) {
+        error(ERR_DNS_HOSTNAME);
+        return false;
+    }
+    if (!validate_account($account)) {
+        error(sprintf(ERR_INV_ARGC, "add_supermaster", "given account name is invalid (alpha chars only)"));
+        return false;
+    }
+    if (supermaster_ip_name_exists($master_ip, $ns_name)) {
+        error(ERR_SM_EXISTS);
+        return false;
+    } else {
+        $db->query("INSERT INTO supermasters VALUES (" . $db->quote($master_ip, 'text') . ", " . $db->quote($ns_name, 'text') . ", " . $db->quote($account, 'text') . ")");
+        return true;
+    }
+}
+
+/** Delete Supermaster
+ *
+ * Delete a supermaster from the global supermasters table
+ *
+ * @param string $master_ip Supermaster IP address
+ * @param string $ns_name Hostname of supermaster
+ *
+ * @return boolean true on success
+ */
+function delete_supermaster($master_ip, $ns_name) {
+    global $db;
+    if (is_valid_ipv4($master_ip) || is_valid_ipv6($master_ip) || is_valid_hostname_fqdn($ns_name, 0)) {
+        $db->query("DELETE FROM supermasters WHERE ip = " . $db->quote($master_ip, 'text') .
+                " AND nameserver = " . $db->quote($ns_name, 'text'));
+        return true;
+    } else {
+        error(sprintf(ERR_INV_ARGC, "delete_supermaster", "No or no valid ipv4 or ipv6 address given."));
+    }
+}
+
+/** Get Supermaster Info from IP
+ *
+ * Retrieve supermaster details from supermaster IP address
+ *
+ * @param string $master_ip Supermaster IP address
+ *
+ * @return mixed[] array of supermaster details
+ */
+function get_supermaster_info_from_ip($master_ip) {
+    global $db;
+    if (is_valid_ipv4($master_ip) || is_valid_ipv6($master_ip)) {
+        $result = $db->queryRow("SELECT ip,nameserver,account FROM supermasters WHERE ip = " . $db->quote($master_ip, 'text'));
+
+        $ret = array(
+            "master_ip" => $result["ip"],
+            "ns_name" => $result["nameserver"],
+            "account" => $result["account"]
+        );
+
+        return $ret;
+    } else {
+        error(sprintf(ERR_INV_ARGC, "get_supermaster_info_from_ip", "No or no valid ipv4 or ipv6 address given."));
+    }
+}
+
+/** Get record details from Record ID
+ *
+ * @param $rid Record ID
+ *
+ * @return mixed[] array of record details [rid,zid,name,type,content,ttl,prio,change_date]
+ */
+function get_record_details_from_record_id($rid) {
+    global $db;
+
+    $query = "SELECT id AS rid, domain_id AS zid, name, type, content, ttl, prio, change_date FROM records WHERE id = " . $db->quote($rid, 'integer');
+
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    $return = $response->fetchRow();
+    return $return;
+}
+
+/** Delete a record by a given record id
+ *
+ * @param int $rid Record ID
+ *
+ * @return boolean true on success
+ */
+function delete_record($rid) {
+    global $db;
+
+    if (verify_permission('zone_content_edit_others')) {
+        $perm_content_edit = "all";
+    } elseif (verify_permission('zone_content_edit_own')) {
+        $perm_content_edit = "own";
+    } else {
+        $perm_content_edit = "none";
+    }
+
+    // Determine ID of zone first.
+    $record = get_record_details_from_record_id($rid);
+    $user_is_zone_owner = verify_user_is_owner_zoneid($record['zid']);
+
+    if ($perm_content_edit == "all" || ($perm_content_edit == "own" && $user_is_zone_owner == "1" )) {
+        if ($record['type'] == "SOA") {
+            error(_('You are trying to delete the SOA record. You are not allowed to remove it, unless you remove the entire zone.'));
+        } else {
+            $query = "DELETE FROM records WHERE id = " . $db->quote($rid, 'integer');
+            $response = $db->query($query);
+            if (PEAR::isError($response)) {
+                error($response->getMessage());
+                return false;
+            }
+            return true;
+        }
+    } else {
+        error(ERR_PERM_DEL_RECORD);
+        return false;
+    }
+}
+
+/** Delete record reference to zone template
+ *
+ * @param int $rid Record ID
+ *
+ * @return boolean true on success
+ */
+function delete_record_zone_templ($rid) {
+    global $db;
+
+    $query = "DELETE FROM records_zone_templ WHERE record_id = " . $db->quote($rid, 'integer');
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    return true;
+}
+
+/**
+ * Add a domain to the database
+ *
+ * A domain is name obligatory, so is an owner.
+ * return values: true when succesful.
+ *
+ * Empty means templates dont have to be applied.
+ *
+ * This functions eats a template and by that it inserts various records.
+ * first we start checking if something in an arpa record
+ * remember to request nextID's from the database to be able to insert record.
+ * if anything is invalid the function will error
+ *
+ * @param string $domain A domain name
+ * @param int $owner Owner ID for domain
+ * @param string $type Type of domain ['NATIVE','MASTER','SLAVE']
+ * @param string $slave_master Master server hostname for domain
+ * @param int|string $zone_template ID of zone template ['none' or int]
+ *
+ * @return boolean true on success
+ */
+function add_domain($domain, $owner, $type, $slave_master, $zone_template) {
+    if (verify_permission('zone_master_add')) {
+        $zone_master_add = "1";
+    }
+    if (verify_permission('zone_slave_add')) {
+        $zone_slave_add = "1";
+    }
+
+    // TODO: make sure only one is possible if only one is enabled
+    if ($zone_master_add == "1" || $zone_slave_add == "1") {
+
+        global $db;
+        global $dns_ns1;
+        global $dns_hostmaster;
+        global $dns_ttl;
+        global $db_layer;
+        global $db_type;
+
+        if (($domain && $owner && $zone_template) ||
+                (preg_match('/in-addr.arpa/i', $domain) && $owner && $zone_template) ||
+                $type == "SLAVE" && $domain && $owner && $slave_master) {
+
+            $response = $db->query("INSERT INTO domains (name, type) VALUES (" . $db->quote($domain, 'text') . ", " . $db->quote($type, 'text') . ")");
+            if (PEAR::isError($response)) {
+                error($response->getMessage());
+                return false;
+            }
+
+            if ($db_layer == 'MDB2' && ($db_type == 'mysql' || $db_type == 'pgsql')) {
+                $domain_id = $db->lastInsertId('domains', 'id');
+            } else if ($db_layer == 'PDO' && $db_type == 'pgsql') {
+                $domain_id = $db->lastInsertId('domains_id_seq');
+            } else {
+                $domain_id = $db->lastInsertId();
+            }
+
+            if (PEAR::isError($domain_id)) {
+                error($domain_id->getMessage());
+                return false;
+            }
+
+            $response = $db->query("INSERT INTO zones (domain_id, owner, zone_templ_id) VALUES (" . $db->quote($domain_id, 'integer') . ", " . $db->quote($owner, 'integer') . ", " . $db->quote(($zone_template == "none") ? 0 : $zone_template, 'integer') . ")");
+            if (PEAR::isError($response)) {
+                error($response->getMessage());
+                return false;
+            }
+
+            if ($type == "SLAVE") {
+                $response = $db->query("UPDATE domains SET master = " . $db->quote($slave_master, 'text') . " WHERE id = " . $db->quote($domain_id, 'integer'));
+                if (PEAR::isError($response)) {
+                    error($response->getMessage());
+                    return false;
+                }
+                return true;
+            } else {
+                $now = time();
+                if ($zone_template == "none" && $domain_id) {
+                    $ns1 = $dns_ns1;
+                    $hm = $dns_hostmaster;
+                    $ttl = $dns_ttl;
+
+                    set_timezone();
+
+                    $serial = date("Ymd");
+                    $serial .= "00";
+
+                    $query = "INSERT INTO records (domain_id, name, content, type, ttl, prio, change_date) VALUES ("
+                            . $db->quote($domain_id, 'integer') . ","
+                            . $db->quote($domain, 'text') . ","
+                            . $db->quote($ns1 . ' ' . $hm . ' ' . $serial . ' 28800 7200 604800 86400', 'text') . ","
+                            . $db->quote('SOA', 'text') . ","
+                            . $db->quote($ttl, 'integer') . ","
+                            . $db->quote(0, 'integer') . ","
+                            . $db->quote($now, 'integer') . ")";
+                    $response = $db->query($query);
+                    if (PEAR::isError($response)) {
+                        error($response->getMessage());
+                        return false;
+                    }
+                    return true;
+                } elseif ($domain_id && is_numeric($zone_template)) {
+                    global $dns_ttl;
+
+                    $templ_records = get_zone_templ_records($zone_template);
+                    if ($templ_records != -1) {
+                        foreach ($templ_records as $r) {
+                            if ((preg_match('/in-addr.arpa/i', $domain) && ($r["type"] == "NS" || $r["type"] == "SOA")) || (!preg_match('/in-addr.arpa/i', $domain))) {
+                                $name = parse_template_value($r["name"], $domain);
+                                $type = $r["type"];
+                                $content = parse_template_value($r["content"], $domain);
+                                $ttl = $r["ttl"];
+                                $prio = intval($r["prio"]);
+
+                                if (!$ttl) {
+                                    $ttl = $dns_ttl;
+                                }
+
+                                $query = "INSERT INTO records (domain_id, name, type, content, ttl, prio, change_date) VALUES ("
+                                        . $db->quote($domain_id, 'integer') . ","
+                                        . $db->quote($name, 'text') . ","
+                                        . $db->quote($type, 'text') . ","
+                                        . $db->quote($content, 'text') . ","
+                                        . $db->quote($ttl, 'integer') . ","
+                                        . $db->quote($prio, 'integer') . ","
+                                        . $db->quote($now, 'integer') . ")";
+                                $response = $db->query($query);
+                                if (PEAR::isError($response)) {
+                                    error($response->getMessage());
+                                    return false;
+                                }
+
+                                if ($db_layer == 'MDB2' && ($db_type == 'mysql' || $db_type == 'pgsql')) {
+                                    $record_id = $db->lastInsertId('records', 'id');
+                                } else if ($db_layer == 'PDO' && $db_type == 'pgsql') {
+                                    $record_id = $db->lastInsertId('records_id_seq');
+                                } else {
+                                    $record_id = $db->lastInsertId();
+                                }
+
+                                if (PEAR::isError($record_id)) {
+                                    error($record_id->getMessage());
+                                    return false;
+                                }
+
+                                $query = "INSERT INTO records_zone_templ (domain_id, record_id, zone_templ_id) VALUES ("
+                                        . $db->quote($domain_id, 'integer') . ","
+                                        . $db->quote($record_id, 'integer') . ","
+                                        . $db->quote($r['zone_templ_id'], 'integer') . ")";
+                                $response = $db->query($query);
+                                if (PEAR::isError($response)) {
+                                    error($response->getMessage());
+                                    return false;
+                                }
+                            }
+                        }
+                    }
+                    return true;
+                } else {
+                    error(sprintf(ERR_INV_ARGC, "add_domain", "could not create zone"));
+                }
+            }
+        } else {
+            error(sprintf(ERR_INV_ARG, "add_domain"));
+        }
+    } else {
+        error(ERR_PERM_ADD_ZONE_MASTER);
+        return false;
+    }
+}
+
+/** Deletes a domain by a given id
+ *
+ * Function always succeeds. If the field is not found in the database, thats what we want anyway.
+ *
+ * @param int $id Zone ID
+ *
+ * @return boolean true on success
+ */
+function delete_domain($id) {
+    global $db;
+
+    if (verify_permission('zone_content_edit_others')) {
+        $perm_edit = "all";
+    } elseif (verify_permission('zone_content_edit_own')) {
+        $perm_edit = "own";
+    } else {
+        $perm_edit = "none";
+    }
+    $user_is_zone_owner = verify_user_is_owner_zoneid($id);
+
+    if ($perm_edit == "all" || ( $perm_edit == "own" && $user_is_zone_owner == "1")) {
+        if (is_numeric($id)) {
+            $db->query("DELETE FROM zones WHERE domain_id=" . $db->quote($id, 'integer'));
+            $db->query("DELETE FROM domains WHERE id=" . $db->quote($id, 'integer'));
+            $db->query("DELETE FROM records WHERE domain_id=" . $db->quote($id, 'integer'));
+            $db->query("DELETE FROM records_zone_templ WHERE domain_id=" . $db->quote($id, 'integer'));
+            return true;
+        } else {
+            error(sprintf(ERR_INV_ARGC, "delete_domain", "id must be a number"));
+            return false;
+        }
+    } else {
+        error(ERR_PERM_DEL_ZONE);
+    }
+}
+
+/** Record ID to Domain ID
+ *
+ * Gets the id of the domain by a given record id
+ *
+ * @param int $id Record ID
+ * @return int Domain ID of record
+ */
+function recid_to_domid($id) {
+    global $db;
+    if (is_numeric($id)) {
+        $result = $db->query("SELECT domain_id FROM records WHERE id=" . $db->quote($id, 'integer'));
+        $r = $result->fetchRow();
+        return $r["domain_id"];
+    } else {
+        error(sprintf(ERR_INV_ARGC, "recid_to_domid", "id must be a number"));
+    }
+}
+
+/** Change owner of a domain
+ *
+ * @param int $zone_id Zone ID
+ * @param int $user_id User ID
+ *
+ * @return boolean true when succesful
+ */
+function add_owner_to_zone($zone_id, $user_id) {
+    global $db;
+    if ((verify_permission('zone_meta_edit_others')) || (verify_permission('zone_meta_edit_own')) && verify_user_is_owner_zoneid($_GET["id"])) {
+        // User is allowed to make change to meta data of this zone.
+        if (is_numeric($zone_id) && is_numeric($user_id) && is_valid_user($user_id)) {
+            if ($db->queryOne("SELECT COUNT(id) FROM zones WHERE owner=" . $db->quote($user_id, 'integer') . " AND domain_id=" . $db->quote($zone_id, 'integer')) == 0) {
+                $zone_templ_id = get_zone_template($zone_id);
+                if ($zone_templ_id == NULL)
+                    $zone_templ_id = 0;
+                $db->query("INSERT INTO zones (domain_id, owner, zone_templ_id) VALUES("
+                        . $db->quote($zone_id, 'integer') . ", "
+                        . $db->quote($user_id, 'integer') . ", "
+                        . $db->quote($zone_templ_id, 'integer') . ")"
+                );
+            }
+            return true;
+        } else {
+            error(sprintf(ERR_INV_ARGC, "add_owner_to_zone", "$zone_id / $user_id"));
+        }
+    } else {
+        return false;
+    }
+}
+
+/** Delete owner from zone
+ *
+ * @param int $zone_id Zone ID
+ * @param int $user_id User ID
+ *
+ * @return boolean true on success
+ */
+function delete_owner_from_zone($zone_id, $user_id) {
+    global $db;
+    if ((verify_permission('zone_meta_edit_others')) || (verify_permission('zone_meta_edit_own')) && verify_user_is_owner_zoneid($_GET["id"])) {
+        // User is allowed to make change to meta data of this zone.
+        if (is_numeric($zone_id) && is_numeric($user_id) && is_valid_user($user_id)) {
+            // TODO: Next if() required, why not just execute DELETE query?
+            if ($db->queryOne("SELECT COUNT(id) FROM zones WHERE owner=" . $db->quote($user_id, 'integer') . " AND domain_id=" . $db->quote($zone_id, 'integer')) != 0) {
+                $db->query("DELETE FROM zones WHERE owner=" . $db->quote($user_id, 'integer') . " AND domain_id=" . $db->quote($zone_id, 'integer'));
+            }
+            return true;
+        } else {
+            error(sprintf(ERR_INV_ARGC, "delete_owner_from_zone", "$zone_id / $user_id"));
+        }
+    } else {
+        return false;
+    }
+}
+
+/** Retrieve all supported dns record types
+ *
+ * This function might be deprecated.
+ *
+ * @return string[] array of types
+ */
+function get_record_types() {
+    global $rtypes;
+    return $rtypes;
+}
+
+/** Retrieve all records by a given type and domain id
+ *
+ * Example get all records that are of type A from domain id 1
+ *
+ * <code>
+ * get_records_by_type_from_domid('A', 1)
+ * </code>
+ *
+ * @param string $type Record type
+ * @param int $recid Record ID
+ *
+ * @return object a DB class result object
+ */
+function get_records_by_type_from_domid($type, $recid) {
+    global $rtypes;
+    global $db;
+
+    // Does this type exist?
+    if (!in_array(strtoupper($type), $rtypes)) {
+        error(sprintf(ERR_INV_ARGC, "get_records_from_type", "this is not a supported record"));
+    }
+
+    // Get the domain id.
+    $domid = recid_to_domid($recid);
+
+    $result = $db->query("select id, type from records where domain_id=" . $db->quote($recid, 'integer') . " and type=" . $db->quote($type, 'text'));
+    return $result;
+}
+
+/** Get Record Type for Record ID
+ *
+ * Retrieves the type of a record from a given id.
+ *
+ * @param int $id Record ID
+ * @return string Record type (one of the records types in $rtypes assumable).
+ */
+function get_recordtype_from_id($id) {
+    global $db;
+    if (is_numeric($id)) {
+        $result = $db->query("SELECT type FROM records WHERE id=" . $db->quote($id, 'integer'));
+        $r = $result->fetchRow();
+        return $r["type"];
+    } else {
+        error(sprintf(ERR_INV_ARG, "get_recordtype_from_id"));
+    }
+}
+
+/** Get Name from Record ID
+ *
+ * Retrieves the name (e.g. bla.test.com) of a record by a given id.
+ *
+ * @param int $id Record ID
+ * @return string Name part of record
+ */
+function get_name_from_record_id($id) {
+    global $db;
+    if (is_numeric($id)) {
+        $result = $db->query("SELECT name FROM records WHERE id=" . $db->quote($id, 'integer'));
+        $r = $result->fetchRow();
+        return $r["name"];
+    } else {
+        error(sprintf(ERR_INV_ARG, "get_name_from_record_id"));
+    }
+}
+
+/** Get Zone Name from Zone ID
+ *
+ * @param int $zid Zone ID
+ *
+ * @return string Domain name
+ */
+function get_zone_name_from_id($zid) {
+    global $db;
+
+    if (is_numeric($zid)) {
+        $result = $db->queryRow("SELECT name FROM domains WHERE id=" . $db->quote($zid, 'integer'));
+        if ($result) {
+            return $result["name"];
+        } else {
+            error(sprintf("Zone does not exist."));
+            return false;
+        }
+    } else {
+        error(sprintf(ERR_INV_ARGC, "get_zone_name_from_id", "Not a valid domainid: $zid"));
+    }
+}
+
+/** Get zone id from name
+ *
+ * @param string $zname Zone name
+ * @return int Zone ID
+ */
+function get_zone_id_from_name($zname) {
+    global $db;
+
+    if (!empty($zname)) {
+        $result = $db->queryRow("SELECT id FROM domains WHERE name=" . $db->quote($zname, 'text'));
+        if ($result) {
+            return $result["id"];
+        } elseif ($rows == "0") {
+            error(sprintf("Zone does not exist."));
+            return false;
+        }
+    } else {
+        error(sprintf(ERR_INV_ARGC, "get_zone_id_from_name", "Not a valid domainname: $zname"));
+    }
+}
+
+/** Get Zone details from Zone ID
+ *
+ * @param int $zid Zone ID
+ * @return mixed[] array of zone details [type,name,master_ip,record_count]
+ */
+function get_zone_info_from_id($zid) {
+
+    if (verify_permission('zone_content_view_others')) {
+        $perm_view = "all";
+    } elseif (verify_permission('zone_content_view_own')) {
+        $perm_view = "own";
+    } else {
+        $perm_view = "none";
+    }
+
+    if ($perm_view == "none") {
+        error(ERR_PERM_VIEW_ZONE);
+    } else {
+        global $db;
+
+        $query = "SELECT 	domains.type AS type,
+					domains.name AS name,
+					domains.master AS master_ip,
+					count(records.domain_id) AS record_count
+					FROM domains LEFT OUTER JOIN records ON domains.id = records.domain_id
+					WHERE domains.id = " . $db->quote($zid, 'integer') . "
+					GROUP BY domains.id, domains.type, domains.name, domains.master";
+        $result = $db->queryRow($query);
+        $return = array(
+            "name" => $result['name'],
+            "type" => $result['type'],
+            "master_ip" => $result['master_ip'],
+            "record_count" => $result['record_count']
+        );
+        return $return;
+    }
+}
+
+/** Convert IPv6 Address to PTR
+ *
+ * @param string $ip IPv6 Address
+ * @return string PTR form of address
+ */
+function convert_ipv6addr_to_ptrrec($ip) {
+// rev-patch
+// taken from: http://stackoverflow.com/questions/6619682/convert-ipv6-to-nibble-format-for-ptr-records
+// PHP (>= 5.1.0, or 5.3+ on Windows), use the inet_pton
+//      $ip = '2001:db8::567:89ab';
+
+    $addr = inet_pton($ip);
+    $unpack = unpack('H*hex', $addr);
+    $hex = $unpack['hex'];
+    $arpa = implode('.', array_reverse(str_split($hex))) . '.ip6.arpa';
+    return $arpa;
+}
+
+/** Get Best Matching in-addr.arpa Zone ID from Domain Name
+ *
+ * @param string $domain Domain name
+ *
+ * @return int Zone ID
+ */
+function get_best_matching_zone_id_from_name($domain) {
+// rev-patch
+// tring to find the correct zone
+// %ip6.arpa and %in-addr.arpa is looked for
+
+    global $db;
+
+    $match = 72; // the longest ip6.arpa has a length of 72
+    $found_domain_id = -1;
+
+    // get all reverse-zones
+    $query = "SELECT name, id FROM domains
+                   WHERE name like " . $db->quote('%.arpa', 'text') . "
+                   ORDER BY length(name) DESC";
+
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+    if ($response) {
+        while ($r = $response->fetchRow()) {
+            $pos = stripos($domain, $r["name"]);
+            if ($pos !== false) {
+                // one possible searched $domain is found
+                if ($pos < $match) {
+                    $match = $pos;
+                    $found_domain_id = $r["id"];
+                }
+            }
+        }
+    } else {
+        return -1;
+    }
+    return $found_domain_id;
+}
+
+/** Check if Domain Exists
+ *
+ * Check if a domain is already existing.
+ *
+ * @param string $domain Domain name
+ * @return boolean true if existing, false if it doesnt exist.
+ */
+function domain_exists($domain) {
+    global $db;
+
+    if (is_valid_hostname_fqdn($domain, 0)) {
+        $result = $db->queryRow("SELECT id FROM domains WHERE name=" . $db->quote($domain, 'text'));
+        return ($result ? true : false);
+    } else {
+        error(ERR_DOMAIN_INVALID);
+    }
+}
+
+/** Get All Supermasters
+ *
+ * Gets an array of arrays of supermaster details
+ *
+ * @return array[] supermasters detail [master_ip,ns_name,account]s
+ */
+function get_supermasters() {
+    global $db;
+
+    $result = $db->query("SELECT ip, nameserver, account FROM supermasters");
+    if (PEAR::isError($result)) {
+        error($result->getMessage());
+        return false;
+    }
+
+    $ret = array();
+
+    while ($r = $result->fetchRow()) {
+        $ret[] = array(
+            "master_ip" => $r["ip"],
+            "ns_name" => $r["nameserver"],
+            "account" => $r["account"],
+        );
+    }
+    return (sizeof($ret) == 0 ? -1 : $ret);
+}
+
+/** Check if Supermaster IP address exists
+ *
+ * @param string $master_ip Supermaster IP
+ *
+ * @return boolean true if exists, otherwise false
+ */
+function supermaster_exists($master_ip) {
+    global $db;
+    if (is_valid_ipv4($master_ip, false) || is_valid_ipv6($master_ip)) {
+        $result = $db->queryOne("SELECT ip FROM supermasters WHERE ip = " . $db->quote($master_ip, 'text'));
+        return ($result ? true : false);
+    } else {
+        error(sprintf(ERR_INV_ARGC, "supermaster_exists", "No or no valid IPv4 or IPv6 address given."));
+    }
+}
+
+/** Check if Supermaster IP Address and NS Name combo exists
+ *
+ * @param string $master_ip Supermaster IP Address
+ * @param string $ns_name Supermaster NS Name
+ *
+ * @return boolean true if exists, false otherwise
+ */
+function supermaster_ip_name_exists($master_ip, $ns_name) {
+    global $db;
+    if ((is_valid_ipv4($master_ip) || is_valid_ipv6($master_ip)) && is_valid_hostname_fqdn($ns_name, 0)) {
+        $result = $db->queryOne("SELECT ip FROM supermasters WHERE ip = " . $db->quote($master_ip, 'text') .
+                " AND nameserver = " . $db->quote($ns_name, 'text'));
+        return ($result ? true : false);
+    } else {
+        error(sprintf(ERR_INV_ARGC, "supermaster_exists", "No or no valid IPv4 or IPv6 address given."));
+    }
+}
+
+/** Get Zones
+ *
+ * @param string $perm View Zone Permissions ['own','all','none']
+ * @param int $userid Requesting User ID
+ * @param string $letterstart Starting letters to match [default='all']
+ * @param int $rowstart Start from row in set [default=0]
+ * @param int $rowamount Max number of rows to fetch for this query when not 'all' [default=999999]
+ * @param string $sortby Column to sort results by [default='name']
+ *
+ * @return boolean|mixed[] false or array of zone details [id,name,type,count_records]
+ */
+function get_zones($perm, $userid = 0, $letterstart = 'all', $rowstart = 0, $rowamount = 999999, $sortby = 'name') {
+    global $db;
+    global $db_type;
+    global $sql_regexp;
+
+    if ($letterstart == '_') {
+        $letterstart = '\_';
+    }
+
+    $sql_add = '';
+    if ($perm != "own" && $perm != "all") {
+        error(ERR_PERM_VIEW_ZONE);
+        return false;
+    } else {
+        if ($perm == "own") {
+            $sql_add = " AND zones.domain_id = domains.id
+				AND zones.owner = " . $db->quote($userid, 'integer');
+        }
+        if ($letterstart != 'all' && $letterstart != 1) {
+            $sql_add .=" AND domains.name LIKE " . $db->quote($letterstart . "%", 'text') . " ";
+        } elseif ($letterstart == 1) {
+            $sql_add .=" AND substring(domains.name,1,1) " . $sql_regexp . " '^[[:digit:]]'";
+        }
+    }
+
+    if ($sortby != 'count_records') {
+        $sortby = 'domains.' . $sortby;
+    }
+
+    $natural_sort = 'LENGTH(domains.name), domains.name';
+    if ($db_type == 'mysql' || $db_type == 'mysqli' || $db_type == 'sqlite' || $db_type == 'sqlite3') {
+        $natural_sort = 'domains.name+0<>0 DESC, domains.name+0, domains.name';
+    }
+    $sql_sortby = ($sortby == 'domains.name' ? $natural_sort : $sortby . ', ' . $natural_sort);
+
+    $sqlq = "SELECT domains.id,
+			domains.name,
+			domains.type,
+			Record_Count.count_records
+			FROM domains
+			LEFT JOIN zones ON domains.id=zones.domain_id
+			LEFT JOIN (
+				SELECT COUNT(domain_id) AS count_records, domain_id FROM records GROUP BY domain_id
+			) Record_Count ON Record_Count.domain_id=domains.id
+			WHERE 1=1" . $sql_add . "
+			GROUP BY domains.name, domains.id, domains.type, Record_Count.count_records
+			ORDER BY " . $sql_sortby;
+
+    if ($letterstart != 'all') {
+        $db->setLimit($rowamount, $rowstart);
+    }
+    $result = $db->query($sqlq);
+
+    $ret = array();
+    while ($r = $result->fetchRow()) {
+        //fixme: name is not guaranteed to be unique with round-robin record sets
+        $ret[$r["name"]] = array(
+            "id" => $r["id"],
+            "name" => $r["name"],
+            "type" => $r["type"],
+            "count_records" => $r["count_records"]
+        );
+    }
+    return $ret;
+}
+
+// TODO: letterstart limitation and userid permission limitiation should be applied at the same time?
+// fixme: letterstart 'all' forbids searching for domains that actually start with 'all'
+/** Get Count of Zones
+ *
+ * @param string $perm 'all', 'own' uses session 'userid'
+ * @param string $letterstart Starting letters to match [default='all']
+ *
+ * @return int Count of zones matched
+ */
+function zone_count_ng($perm, $letterstart = 'all') {
+    global $db;
+    global $sql_regexp;
+
+    $fromTable = 'domains';
+    $sql_add = '';
+
+    if ($perm != "own" && $perm != "all") {
+        $zone_count = "0";
+    } else {
+        if ($perm == "own") {
+            $sql_add = " AND zones.domain_id = domains.id
+					AND zones.owner = " . $db->quote($_SESSION['userid'], 'integer');
+            $fromTable .= ',zones';
+        }
+
+        if ($letterstart != 'all' && $letterstart != 1) {
+            $sql_add .=" AND domains.name LIKE " . $db->quote($letterstart . "%", 'text') . " ";
+        } elseif ($letterstart == 1) {
+            $sql_add .=" AND substring(domains.name,1,1) " . $sql_regexp . " '^[[:digit:]]'";
+        }
+
+# XXX: do we really need this distinct directive as it's unsupported in sqlite)
+#		$sqlq = "SELECT COUNT(distinct domains.id) AS count_zones
+
+        $sqlq = "SELECT COUNT(domains.id) AS count_zones
+			FROM " . $fromTable . "	WHERE 1=1
+			" . $sql_add;
+        $zone_count = $db->queryOne($sqlq);
+    }
+    return $zone_count;
+}
+
+/** Get Zone Count for Owner User ID
+ *
+ * @param int $uid User ID
+ *
+ * @return int Count of Zones matched
+ */
+function zone_count_for_uid($uid) {
+    global $db;
+    $query = "SELECT COUNT(domain_id)
+			FROM zones
+			WHERE owner = " . $db->quote($uid, 'integer') . "
+			ORDER BY domain_id";
+    $zone_count = $db->queryOne($query);
+    return $zone_count;
+}
+
+/** Get a Record from an Record ID
+ *
+ * Retrieve all fields of the record and send it back to the function caller.
+ *
+ * @param int $id Record ID
+ * @return int|mixed[] array of record detail, or -1 if nothing found
+ */
+function get_record_from_id($id) {
+    global $db;
+    if (is_numeric($id)) {
+        $result = $db->queryRow("SELECT id, domain_id, name, type, content, ttl, prio, change_date FROM records WHERE id=" . $db->quote($id, 'integer'));
+        if ($result) {
+            $ret = array(
+                "id" => $result["id"],
+                "domain_id" => $result["domain_id"],
+                "name" => $result["name"],
+                "type" => $result["type"],
+                "content" => $result["content"],
+                "ttl" => $result["ttl"],
+                "prio" => $result["prio"],
+                "change_date" => $result["change_date"]
+            );
+            return $ret;
+        } else {
+            return -1;
+        }
+    } else {
+        error(sprintf(ERR_INV_ARG, "get_record_from_id"));
+    }
+}
+
+/** Get all records from a domain id.
+ *
+ * Retrieve all fields of the records and send it back to the function caller.
+ *
+ * @param int $id Domain ID
+ * @param int $rowstart Starting row [default=0]
+ * @param int $rowamount Number of rows to return in this query [default=999999]
+ * @param string $sortby Column to sort by [default='name']
+ *
+ * @return int|mixed[] array of record detail, or -1 if nothing found
+ */
+function get_records_from_domain_id($id, $rowstart = 0, $rowamount = 999999, $sortby = 'name') {
+    global $db;
+    global $db_type;
+
+    $result = array();
+    if (is_numeric($id)) {
+        if ((isset($_SESSION[$id . "_ispartial"])) && ($_SESSION[$id . "_ispartial"] == 1)) {
+            $db->setLimit($rowamount, $rowstart);
+            $result = $db->query("SELECT record_owners.record_id as id
+					FROM record_owners,domains,records
+					WHERE record_owners.user_id = " . $db->quote($_SESSION["userid"], 'integer') . "
+					AND record_owners.record_id = records.id
+					AND records.domain_id = " . $db->quote($id, 'integer') . "
+					GROUP BY record_owners.record_id ORDER BY records." . $sortby);
+
+            $ret = array();
+            if ($result) {
+                $ret[] = array();
+                $retcount = 0;
+                while ($r = $result->fetchRow()) {
+                    // Call get_record_from_id for each row.
+                    $ret[$retcount] = get_record_from_id($r["id"]);
+                    $retcount++;
+                }
+                $result = $ret;
+            } else {
+                return -1;
+            }
+        } else {
+            $db->setLimit($rowamount, $rowstart);
+
+            $natural_sort = 'LENGTH(records.name), records.name';
+            if ($db_type == 'mysql' || $db_type == 'mysqli' || $db_type == 'sqlite' || $db_type == 'sqlite3') {
+                $natural_sort = 'records.name+0<>0 DESC, records.name+0, records.name';
+            }
+            $sql_sortby = ($sortby == 'name' ? $natural_sort : $sortby . ', ' . $natural_sort);
+
+            $result = $db->query("SELECT id FROM records WHERE domain_id=" . $db->quote($id, 'integer') . " ORDER BY " . $sql_sortby);
+            $ret = array();
+            if ($result) {
+                $ret[] = array();
+                $retcount = 0;
+                while ($r = $result->fetchRow()) {
+                    // Call get_record_from_id for each row.
+                    $ret[$retcount] = get_record_from_id($r["id"]);
+                    $retcount++;
+                }
+                $result = $ret;
+            } else {
+                return -1;
+            }
+            $result = order_domain_results($result, $sortby);
+            return $result;
+        }
+    } else {
+        error(sprintf(ERR_INV_ARG, "get_records_from_domain_id"));
+    }
+}
+
+/** Sort Domain Records intelligently
+ *
+ * @param string[] $domains Array of domains
+ * @param string $sortby Column to sort by [default='name','type','content','prio','ttl']
+ *
+ * @return mixed[] array of records detail
+ */
+function order_domain_results($domains, $sortby) {
+    $results = array();
+    $soa = array();
+    $ns = array();
+
+    foreach ($domains as $key => $domain) {
+        switch ($domain['type']) {
+            case 'SOA':
+                $soa[] = $domain;
+                unset($domains[$key]);
+                break;
+            case 'NS':
+                $ns[] = $domain;
+                unset($domains[$key]);
+                break;
+            default:
+                continue;
+        }
+    }
+
+    switch ($sortby) {
+        case 'name':
+            usort($domains, 'sort_domain_results_by_name');
+            break;
+        case 'type':
+            usort($domains, 'sort_domain_results_by_type');
+            break;
+        case 'content':
+            usort($domains, 'sort_domain_results_by_content');
+            break;
+        case 'prio':
+            usort($domains, 'sort_domain_results_by_prio');
+            break;
+        case 'ttl':
+            usort($domains, 'sort_domain_results_by_ttl');
+            break;
+        default:
+            usort($domains, 'sort_domain_results_by_name');
+            break;
+    }
+
+    $results = array_merge($soa, $ns);
+    $results = array_merge($results, $domains);
+
+    return $results;
+}
+
+/** Sort records by name
+ *
+ * @param mixed[] $a A
+ * @param mixed[] $b B
+ *
+ * @return mixed[] result of strnatcmp
+ */
+function sort_domain_results_by_name($a, $b) {
+    return strnatcmp($a['name'], $b['name']);
+}
+
+/** Sort records by type
+ *
+ * @param mixed[] $a A
+ * @param mixed[] $b B
+ *
+ * @return mixed[] result of strnatcmp
+ */
+function sort_domain_results_by_type($a, $b) {
+    if ($a['type'] != $b['type']) {
+        return strnatcmp($a['type'], $b['type']);
+    } else {
+        return strnatcmp($a['name'], $b['name']);
+    }
+}
+
+/** Sort records by content
+ *
+ * @param mixed[] $a A
+ * @param mixed[] $b B
+ *
+ * @return mixed[] result of strnatcmp
+ */
+function sort_domain_results_by_content($a, $b) {
+    if ($a['content'] != $b['content']) {
+        return strnatcmp($a['content'], $b['content']);
+    } else {
+        return strnatcmp($a['name'], $b['name']);
+    }
+}
+
+/** Sort records by prio
+ *
+ * @param mixed[] $a A
+ * @param mixed[] $b B
+ *
+ * @return mixed[] result of strnatcmp
+ */
+function sort_domain_results_by_prio($a, $b) {
+    if ($a['prio'] != $b['prio']) {
+        return strnatcmp($a['prio'], $b['prio']);
+    } else {
+        return strnatcmp($a['name'], $b['name']);
+    }
+}
+
+/** Sort records by TTL
+ *
+ * @param mixed[] $a A
+ * @param mixed[] $b B
+ *
+ * @return mixed[] result of strnatcmp
+ */
+function sort_domain_results_by_ttl($a, $b) {
+    if ($a['ttl'] != $b['ttl']) {
+        return strnatcmp($a['ttl'], $b['ttl']);
+    } else {
+        return strnatcmp($a['name'], $b['name']);
+    }
+}
+
+/** Get list of owners for Domain ID
+ *
+ * @param int $id Domain ID
+ *
+ * @return mixed[] array of owners [id,fullename]
+ */
+function get_users_from_domain_id($id) {
+    global $db;
+    $sqlq = "SELECT owner FROM zones WHERE domain_id =" . $db->quote($id, 'integer');
+    $id_owners = $db->query($sqlq);
+    if ($id_owners) {
+        while ($r = $id_owners->fetchRow()) {
+            $fullname = $db->queryOne("SELECT fullname FROM users WHERE id=" . $r['owner']);
+            $owners[] = array(
+                "id" => $r['owner'],
+                "fullname" => $fullname
+            );
+        }
+    } else {
+        return -1;
+    }
+    return $owners;
+}
+
+/** Search for Zone or Record
+ *
+ * @param string $search_string  String to search
+ * @param string $perm User permitted to view 'all' or 'own' zones
+ * @param string $zone_sortby Column to sort domain results [default='name']
+ * @param string $record_sortby Column to sort record results by [default='name']
+ * @param boolean $wildcards Add wildcards automatically
+ * @param boolean $arpa Search reverse records automatically
+ *
+ * @return mixed[] 'zones' => array of zones, 'records' => array of records
+ */
+function search_zone_and_record($search_string, $perm, $zone_sortby = 'name', $record_sortby = 'name', $wildcards = true, $arpa = true) {
+    global $db;
+
+    $search_string = trim($search_string);
+
+    $sql_add_from = '';
+    $sql_add_where = '';
+    $arpa_search = '';
+
+    $return_zones = array();
+    $return_records = array();
+
+    if (verify_permission('zone_content_view_others')) {
+        $perm_view = "all";
+    } elseif (verify_permission('zone_content_view_own')) {
+        $perm_view = "own";
+    } else {
+        $perm_view = "none";
+    }
+
+    if (verify_permission('zone_content_edit_others')) {
+        $perm_content_edit = "all";
+    } elseif (verify_permission('zone_content_edit_own')) {
+        $perm_content_edit = "own";
+    } else {
+        $perm_content_edit = "none";
+    }
+
+    if ($perm == "all") {
+        $sql_add_from = ", zones, users ";
+        $sql_add_where = " AND zones.domain_id = domains.id AND users.id = " . $db->quote($_SESSION['userid'], 'integer');
+    }
+
+    if ($perm == "own") {
+        $sql_add_from = ", zones, users ";
+        $sql_add_where = " AND zones.domain_id = domains.id AND users.id = " . $db->quote($_SESSION['userid'], 'integer') . " AND zones.owner = " . $db->quote($_SESSION['userid'], 'integer');
+    }
+
+
+    if ($arpa) {
+        if (preg_match("/^[0-9\.]+$/", $search_string)) {
+            $quads = explode('.', $search_string);
+            $arpa_search = join('.', array_reverse($quads));
+        }
+        if (preg_match("/^[0-9a-f]{0,4}:([0-9a-f]{0,4}:){0,6}[0-9a-f]{0,4}$/i", $search_string)) {
+            //TODO ipv6 search
+        }
+    }
+
+    $query = "SELECT
+			domains.id AS zid,
+			domains.name AS name,
+			domains.type AS type,
+			domains.master AS master,
+                        zones.owner AS owner
+			FROM domains" . $sql_add_from . "
+			WHERE " . ($arpa_search ? "(" : "") .
+            " domains.name LIKE " . $db->quote(($wildcards ? "%" : "") . $search_string . ($wildcards ? "%" : ""), 'text')
+            . ($arpa_search ? " OR domains.name LIKE " . $db->quote("%" . $arpa_search . "%in-addr.arpa", 'text') . ")" : "")
+            . $sql_add_where . "
+                        ORDER BY " . $zone_sortby;
+
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    $cached_owners = array();
+    while ($r = $response->fetchRow()) {
+        $owner = '';
+        if (isset($cached_owners[$r['owner']])) {
+            $owner = $cached_owners[$r['owner']];
+        } else {
+            $owner = get_owner_from_id($r['owner']);
+            $cached_owners[$r['owner']] = $owner;
+        }
+
+        $return_zones[] = array(
+            "zid" => $r['zid'],
+            "name" => $r['name'],
+            "type" => $r['type'],
+            "master" => $r['master'],
+            "owner" => $owner);
+    }
+
+    $sql_add_from = '';
+    $sql_add_where = '';
+
+    // Search for matching records
+
+    if ($perm == "own") {
+        $sql_add_from = ", zones ";
+        $sql_add_where = " AND zones.domain_id = records.domain_id AND zones.owner = " . $db->quote($_SESSION['userid'], 'integer');
+    }
+
+    $query = "SELECT
+			records.id AS rid,
+			records.name AS name,
+			records.type AS type,
+			records.content AS content,
+			records.ttl AS ttl,
+			records.prio AS prio,
+			records.domain_id AS zid
+			FROM records" . $sql_add_from . "
+			WHERE (records.name LIKE " . $db->quote(($wildcards ? "%" : "") . $search_string . ($wildcards ? "%" : ""), 'text') . " OR records.content LIKE " . $db->quote(($wildcards ? "%" : "") . $search_string . ($wildcards ? "%" : ""), 'text')
+            . ($arpa_search ? " OR records.name LIKE " . $db->quote("%" . $arpa_search . "%in-addr.arpa", 'text') : "")
+            . ")"
+            . $sql_add_where . "
+			ORDER BY " . $record_sortby;
+
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    while ($r = $response->fetchRow()) {
+        $return_records[] = array(
+            "rid" => $r['rid'],
+            "name" => $r['name'],
+            "type" => $r['type'],
+            "content" => $r['content'],
+            "ttl" => $r['ttl'],
+            "zid" => $r['zid'],
+            "prio" => $r['prio']);
+    }
+    return array('zones' => $return_zones, 'records' => $return_records);
+}
+
+/** Get Domain Type for Domain ID
+ *
+ * @param int $id Domain ID
+ *
+ * @return string Domain Type [NATIVE,MASTER,SLAVE]
+ */
+function get_domain_type($id) {
+    global $db;
+    if (is_numeric($id)) {
+        $type = $db->queryOne("SELECT type FROM domains WHERE id = " . $db->quote($id, 'integer'));
+        if ($type == "") {
+            $type = "NATIVE";
+        }
+        return $type;
+    } else {
+        error(sprintf(ERR_INV_ARG, "get_record_from_id", "no or no valid zoneid given"));
+    }
+}
+
+/** Get Slave Domain's Master
+ *
+ * @param int $id Domain ID
+ *
+ * @return string Master server
+ */
+function get_domain_slave_master($id) {
+    global $db;
+    if (is_numeric($id)) {
+        $slave_master = $db->queryOne("SELECT master FROM domains WHERE type = 'SLAVE' and id = " . $db->quote($id, 'integer'));
+        return $slave_master;
+    } else {
+        error(sprintf(ERR_INV_ARG, "get_domain_slave_master", "no or no valid zoneid given"));
+    }
+}
+
+/** Change Zone Type
+ *
+ * @param string $type New Zone Type [NATIVE,MASTER,SLAVE]
+ * @param int $id Zone ID
+ *
+ * @return null
+ */
+function change_zone_type($type, $id) {
+    global $db;
+    $add = '';
+    if (is_numeric($id)) {
+        // It is not really neccesary to clear the field that contains the IP address
+        // of the master if the type changes from slave to something else. PowerDNS will
+        // ignore the field if the type isn't something else then slave. But then again,
+        // it's much clearer this way.
+        if ($type != "SLAVE") {
+            $add = ", master=" . $db->quote('', 'text');
+        }
+        $result = $db->query("UPDATE domains SET type = " . $db->quote($type, 'text') . $add . " WHERE id = " . $db->quote($id, 'integer'));
+    } else {
+        error(sprintf(ERR_INV_ARG, "change_domain_type", "no or no valid zoneid given"));
+    }
+}
+
+/** Change Slave Zone's Master IP Address
+ *
+ * @param int $zone_id Zone ID
+ * @param string $ip_slave_master Master IP Address
+ *
+ * @return null
+ */
+function change_zone_slave_master($zone_id, $ip_slave_master) {
+    global $db;
+    if (is_numeric($zone_id)) {
+        if (are_multipe_valid_ips($ip_slave_master)) {
+            $result = $db->query("UPDATE domains SET master = " . $db->quote($ip_slave_master, 'text') . " WHERE id = " . $db->quote($zone_id, 'integer'));
+        } else {
+            error(sprintf(ERR_INV_ARGC, "change_domain_ip_slave_master", "This is not a valid IPv4 or IPv6 address: $ip_slave_master"));
+        }
+    } else {
+        error(sprintf(ERR_INV_ARG, "change_domain_type", "no or no valid zoneid given"));
+    }
+}
+
+/** Get Serial for Zone ID
+ *
+ * @param int $zid Zone ID
+ *
+ * @return boolean|string Serial Number or false if not found
+ */
+function get_serial_by_zid($zid) {
+    global $db;
+    if (is_numeric($zid)) {
+        $query = "SELECT content FROM records where TYPE = " . $db->quote('SOA', 'text') . " and domain_id = " . $db->quote($zid, 'integer');
+        $rr_soa = $db->queryOne($query);
+        if (PEAR::isError($rr_soa)) {
+            error($rr_soa->getMessage());
+            return false;
+        }
+        $rr_soa_fields = explode(" ", $rr_soa);
+    } else {
+        error(sprintf(ERR_INV_ARGC, "get_serial_by_zid", "id must be a number"));
+        return false;
+    }
+    return $rr_soa_fields[2];
+}
+
+/** Validate Account is valid string
+ *
+ * @param string $account Account name alphanumeric and ._-
+ *
+ * @return boolean true is valid, false otherwise
+ */
+function validate_account($account) {
+    if (preg_match("/^[A-Z0-9._-]+$/i", $account)) {
+        return true;
+    } else {
+        return false;
+    }
+}
+
+/** Get Zone Template ID for Zone ID
+ *
+ * @param int $zone_id Zone ID
+ *
+ * @return int Zone Template ID
+ */
+function get_zone_template($zone_id) {
+    global $db;
+    $query = "SELECT zone_templ_id FROM zones WHERE domain_id = " . $db->quote($zone_id, 'integer');
+    $zone_templ_id = $db->queryOne($query);
+    return $zone_templ_id;
+}
+
+/** Update Zone Templatea ID for Zone ID
+ *
+ * @param int $zone_id Zone ID
+ * @param int $new_zone_template_id New Zone Template ID
+ *
+ * @return boolean true on success, false otherwise
+ */
+function update_zone_template($zone_id, $new_zone_template_id) {
+    global $db;
+    $query = "UPDATE zones
+			SET zone_templ_id = " . $db->quote($new_zone_template_id, 'integer') . "
+			WHERE id = " . $db->quote($zone_id, 'integer');
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+    return true;
+}
+
+/** Update All Zone Records for Zone ID with Zone Template
+ *
+ * @param int $zone_id Zone ID to update
+ * @param int $zone_template_id Zone Template ID to use for update
+ *
+ * @return null
+ */
+function update_zone_records($zone_id, $zone_template_id) {
+    global $db;
+    global $dns_ttl;
+
+    if (verify_permission('zone_content_edit_others')) {
+        $perm_edit = "all";
+    } elseif (verify_permission('zone_content_edit_own')) {
+        $perm_edit = "own";
+    } else {
+        $perm_edit = "none";
+    }
+
+    $user_is_zone_owner = verify_user_is_owner_zoneid($zone_id);
+
+    if (verify_permission('zone_master_add')) {
+        $zone_master_add = "1";
+    }
+
+    if (verify_permission('zone_slave_add')) {
+        $zone_slave_add = "1";
+    }
+
+    $soa_rec = get_soa_record($zone_id);
+    $response = $db->beginTransaction();
+
+    if (0 != $zone_template_id) {
+        if ($perm_edit == "all" || ( $perm_edit == "own" && $user_is_zone_owner == "1")) {
+            if (is_numeric($zone_id)) {
+                $db->exec("DELETE FROM records WHERE id IN (SELECT record_id FROM records_zone_templ WHERE "
+                        . "domain_id = " . $db->quote($zone_id, 'integer') . " AND "
+                        . "zone_templ_id = " . $db->quote($zone_template_id, 'integer') . ")");
+                $db->exec("DELETE FROM records_zone_templ WHERE domain_id = " . $db->quote($zone_id, 'integer'));
+            } else {
+                error(sprintf(ERR_INV_ARGC, "delete_domain", "id must be a number"));
+            }
+        } else {
+            error(ERR_PERM_DEL_ZONE);
+        }
+
+        if ($zone_master_add == "1" || $zone_slave_add == "1") {
+            $domain = get_zone_name_from_id($zone_id);
+            $now = time();
+            $templ_records = get_zone_templ_records($zone_template_id);
+
+            if ($templ_records == -1) {
+                return;
+            }
+
+            foreach ($templ_records as $r) {
+                //fixme: appears to be a bug and regex match should occur against $domain
+                if ((preg_match('/in-addr.arpa/i', $zone_id) && ($r["type"] == "NS" || $r["type"] == "SOA")) || (!preg_match('/in-addr.arpa/i', $zone_id))) {
+                    $name = parse_template_value($r["name"], $domain);
+                    $type = $r["type"];
+                    if ($type == "SOA") {
+                        $content = get_updated_soa_record($soa_rec);
+                        echo $content;
+                    } else {
+                        $content = parse_template_value($r["content"], $domain);
+                    }
+
+                    $ttl = $r["ttl"];
+                    $prio = intval($r["prio"]);
+
+                    if (!$ttl) {
+                        $ttl = $dns_ttl;
+                    }
+
+                    $query = "INSERT INTO records (domain_id, name, type, content, ttl, prio, change_date) VALUES ("
+                            . $db->quote($zone_id, 'integer') . ","
+                            . $db->quote($name, 'text') . ","
+                            . $db->quote($type, 'text') . ","
+                            . $db->quote($content, 'text') . ","
+                            . $db->quote($ttl, 'integer') . ","
+                            . $db->quote($prio, 'integer') . ","
+                            . $db->quote($now, 'integer') . ")";
+                    $response = $db->exec($query);
+
+                    if ($db_layer == 'MDB2' && ($db_type == 'mysql' || $db_type == 'pgsql')) {
+                        $record_id = $db->lastInsertId('records', 'id');
+                    } else if ($db_layer == 'PDO' && $db_type == 'pgsql') {
+                        $record_id = $db->lastInsertId('records_id_seq');
+                    } else {
+                        $record_id = $db->lastInsertId();
+                    }
+
+                    $query = "INSERT INTO records_zone_templ (domain_id, record_id, zone_templ_id) VALUES ("
+                            . $db->quote($zone_id, 'integer') . ","
+                            . $db->quote($record_id, 'integer') . ","
+                            . $db->quote($zone_template_id, 'integer') . ")";
+                    $response = $db->query($query);
+                }
+            }
+        }
+    }
+
+    $query = "UPDATE zones
+                    SET zone_templ_id = " . $db->quote($zone_template_id, 'integer') . "
+                    WHERE domain_id = " . $db->quote($zone_id, 'integer');
+    $response = $db->exec($query);
+
+    if (PEAR::isError($response)) {
+        $response = $db->rollback();
+    } else {
+        $response = $db->commit();
+    }
+}
+
+/** Delete array of domains
+ *
+ * Deletes a domain by a given id.
+ * Function always succeeds. If the field is not found in the database, thats what we want anyway.
+ *
+ * @param int[] $domains Array of Domain IDs to delete
+ *
+ * @return boolean true on success, false otherwise
+ */
+function delete_domains($domains) {
+    global $db;
+    $error = false;
+    $return = false;
+    $response = $db->beginTransaction();
+
+    foreach ($domains as $id) {
+        if (verify_permission('zone_content_edit_others')) {
+            $perm_edit = "all";
+        } elseif (verify_permission('zone_content_edit_own')) {
+            $perm_edit = "own";
+        } else {
+            $perm_edit = "none";
+        }
+        $user_is_zone_owner = verify_user_is_owner_zoneid($id);
+
+        if ($perm_edit == "all" || ( $perm_edit == "own" && $user_is_zone_owner == "1")) {
+            if (is_numeric($id)) {
+                $zone_type = get_domain_type($id);
+                if ($zone_type == 'MASTER') {
+                    $zone_name = get_zone_name_from_id($id);
+                    dnssec_unsecure_zone($zone_name);
+                }
+
+                $db->exec("DELETE FROM zones WHERE domain_id=" . $db->quote($id, 'integer'));
+                $db->exec("DELETE FROM domains WHERE id=" . $db->quote($id, 'integer'));
+                $db->exec("DELETE FROM records WHERE domain_id=" . $db->quote($id, 'integer'));
+                $db->query("DELETE FROM records_zone_templ WHERE domain_id=" . $db->quote($id, 'integer'));
+            } else {
+                error(sprintf(ERR_INV_ARGC, "delete_domains", "id must be a number"));
+                $error = true;
+            }
+        } else {
+            error(ERR_PERM_DEL_ZONE);
+            $error = true;
+        }
+    }
+
+    if (PEAR::isError($response)) {
+        $response = $db->rollback();
+        $commit = false;
+    } else {
+        $response = $db->commit();
+        $commit = true;
+    }
+
+    if (true == $commit && false == $error) {
+        $return = true;
+    }
+
+    return $return;
+}
+
+/** Check if record exists
+ *
+ * @param string $name Record name
+ *
+ * @return boolean true on success, false on failure
+ */
+function record_name_exists($name) {
+    global $db;
+    $query = "SELECT COUNT(id) FROM records WHERE name = " . $db->quote($name, 'text');
+    $count = $db->queryOne($query);
+    return ($count == "1" ? true : false);
+}
+
+/** Return domain level for given name
+ *
+ * @param string $name Zone name
+ *
+ * @return int domain level
+ */
+function get_domain_level($name) {
+    return substr_count($name, '.') + 1;
+}
+
+/** Return domain second level domain for given name
+ *
+ * @param string $name Zone name
+ *
+ * @return string 2nd level domain name
+ */
+function get_second_level_domain($name) {
+    $domain_parts = explode('.', $name);
+    $domain_parts = array_reverse($domain_parts);
+    return $domain_parts[1] . '.' . $domain_parts[0];
+}
+
+/** Get zone list which use templates
+ *
+ * @param resource $db DB link
+ *
+ * @return mixed[] Array with domain and template ids
+ */
+function get_zones_with_templates($db) {
+    $query = "SELECT id, domain_id, zone_templ_id FROM zones WHERE zone_templ_id <> 0";
+    $result = $db->query($query);
+    $zones = array();
+    while ($zone = $result->fetchRow()) {
+        $zones[]=$zone;
+    }
+    return $zones;
+}
+
+/** Get records by domain id
+ *
+ *
+ */
+function get_records_by_domain_id($db, $domain_id) {
+    $query = "SELECT id, name, type, content FROM records WHERE domain_id = " . $db->quote($domain_id, 'integer');
+    $result = $db->query($query);
+    $records = array();
+    while ($zone_records = $result->fetchRow()) {
+        $records[]=$zone_records;
+    }
+    return $records;
+}

+ 653 - 0
devadmin/html/poweradmin-2.1.7/inc/templates.inc.php

@@ -0,0 +1,653 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ *  Template functions
+ *
+ * @package Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+
+/** Get a list of all available zone templates
+ *
+ * @param int $userid User ID
+ *
+ * @return mixed[] array of zone templates [id,name,descr]
+ */
+function get_list_zone_templ($userid) {
+    global $db;
+
+    $query = "SELECT * FROM zone_templ "
+            . "WHERE owner = '" . $userid . "' "
+            . "ORDER BY name";
+    $result = $db->query($query);
+    if (PEAR::isError($result)) {
+        error("Not all tables available in database, please make sure all upgrade/install proceedures were followed");
+        return false;
+    }
+
+    $zone_templ_list = array();
+    while ($zone_templ = $result->fetchRow()) {
+        $zone_templ_list[] = array(
+            "id" => $zone_templ['id'],
+            "name" => $zone_templ['name'],
+            "descr" => $zone_templ['descr']
+        );
+    }
+    return $zone_templ_list;
+}
+
+/** Add a zone template
+ *
+ * @param mixed[] $details zone template details
+ * @param $userid User ID that owns template
+ *
+ * @return boolean true on success, false otherwise
+ */
+function add_zone_templ($details, $userid) {
+    global $db;
+
+    $zone_name_exists = zone_templ_name_exists($details['templ_name']);
+    if (!(verify_permission('zone_master_add'))) {
+        error(ERR_PERM_ADD_ZONE_TEMPL);
+        return false;
+    } elseif ($zone_name_exists != '0') {
+        error(ERR_ZONE_TEMPL_EXIST);
+    } else {
+        $query = "INSERT INTO zone_templ (name, descr, owner)
+			VALUES ("
+                . $db->quote($details['templ_name'], 'text') . ", "
+                . $db->quote($details['templ_descr'], 'text') . ", "
+                . $db->quote($userid, 'integer') . ")";
+
+        $result = $db->query($query);
+        if (PEAR::isError($result)) {
+            error($result->getMessage());
+            return false;
+        }
+
+        return true;
+    }
+}
+
+/** Get name and description of template based on template ID
+ *
+ * @param int $zone_templ_id Zone template ID
+ *
+ * @return mixed[] zone template details
+ */
+function get_zone_templ_details($zone_templ_id) {
+    global $db;
+
+    $query = "SELECT *"
+            . " FROM zone_templ"
+            . " WHERE id = " . $db->quote($zone_templ_id, 'integer');
+
+    $result = $db->query($query);
+    if (PEAR::isError($result)) {
+        error($result->getMessage());
+        return false;
+    }
+
+    $details = $result->fetchRow();
+    return $details;
+}
+
+/** Delete a zone template
+ *
+ * @param int $zone_templ_id Zone template ID
+ *
+ * @return boolean true on success, false otherwise
+ */
+function delete_zone_templ($zone_templ_id) {
+    global $db;
+
+    if (!(verify_permission('zone_master_add'))) {
+        error(ERR_PERM_DEL_ZONE_TEMPL);
+        return false;
+    } else {
+        // Delete the zone template
+        $query = "DELETE FROM zone_templ"
+                . " WHERE id = " . $db->quote($zone_templ_id, 'integer');
+        $result = $db->query($query);
+        if (PEAR::isError($result)) {
+            error($result->getMessage());
+            return false;
+        }
+
+        // Delete the zone template records
+        $query = "DELETE FROM zone_templ_records"
+                . " WHERE zone_templ_id = " . $db->quote($zone_templ_id, 'integer');
+        $result = $db->query($query);
+        if (PEAR::isError($result)) {
+            error($result->getMessage());
+            return false;
+        }
+
+        // Delete references to zone template
+        $query = "DELETE FROM records_zone_templ"
+                . " WHERE zone_templ_id = " . $db->quote($zone_templ_id, 'integer');
+        $result = $db->query($query);
+        if (PEAR::isError($result)) {
+            error($result->getMessage());
+            return false;
+        }
+
+        return true;
+    }
+}
+
+/** Delete all zone templates for specific user
+ *
+ * @param $userid User ID
+ *
+ * @return boolean true on success, false otherwise
+ */
+function delete_zone_templ_userid($userid) {
+    global $db;
+
+    if (!(verify_permission('zone_master_add'))) {
+        error(ERR_PERM_DEL_ZONE_TEMPL);
+        return false;
+    } else {
+        $query = "DELETE FROM zone_templ"
+                . " WHERE owner = " . $db->quote($userid, 'integer');
+        $result = $db->query($query);
+        if (PEAR::isError($result)) {
+            error($result->getMessage());
+            return false;
+        }
+
+        return true;
+    }
+}
+
+/** Count zone template records
+ *
+ * @param int $zone_templ_id Zone template ID
+ *
+ * @return boolean true on success, false otherwise
+ */
+function count_zone_templ_records($zone_templ_id) {
+    global $db;
+    $query = "SELECT COUNT(id) FROM zone_templ_records WHERE zone_templ_id = " . $db->quote($zone_templ_id, 'integer');
+    $record_count = $db->queryOne($query);
+    if (PEAR::isError($record_count)) {
+        error($record_count->getMessage());
+        return false;
+    }
+    return $record_count;
+}
+
+/** Check if zone template exist
+ *
+ * @param int $zone_templ_id Zone template ID
+ *
+ * @return boolean true on success, false otherwise
+ */
+function zone_templ_id_exists($zone_templ_id) {
+    global $db;
+    $query = "SELECT COUNT(id) FROM zone_templ WHERE id = " . $db->quote($zone_templ_id, 'integer');
+    $count = $db->queryOne($query);
+    if (PEAR::isError($count)) {
+        error($count->getMessage());
+        return false;
+    }
+    return $count;
+}
+
+/** Get a zone template record from an id
+ *
+ * Retrieve all fields of the record and send it back to the function caller.
+ *
+ * @param int $id zone template record id
+ *
+ * @return mixed[] zone template record
+ * [id,zone_templ_id,name,type,content,ttl,prio] or -1 if nothing is found
+ */
+function get_zone_templ_record_from_id($id) {
+    global $db;
+    if (is_numeric($id)) {
+        $result = $db->queryRow("SELECT id, zone_templ_id, name, type, content, ttl, prio FROM zone_templ_records WHERE id=" . $db->quote($id, 'integer'));
+        if ($result) {
+            $ret = array(
+                "id" => $result["id"],
+                "zone_templ_id" => $result["zone_templ_id"],
+                "name" => $result["name"],
+                "type" => $result["type"],
+                "content" => $result["content"],
+                "ttl" => $result["ttl"],
+                "prio" => $result["prio"],
+            );
+            return $ret;
+        } else {
+            return -1;
+        }
+    } else {
+        error(sprintf(ERR_INV_ARG, "get_zone_templ_record_from_id"));
+    }
+}
+
+/** Get all zone template records from a zone template id
+ *
+ * Retrieve all fields of the records and send it back to the function caller.
+ *
+ * @param int $id zone template ID
+ * @param int $rowstart Starting row (default=0)
+ * @param int $rowamount Number of rows per query (default=999999)
+ * @param string $sortby Column to sort by (default='name')
+ *
+ * @return mixed[] zone template records numerically indexed
+ * [id,zone_templd_id,name,type,content,ttl,pro] or -1 if nothing is found
+ */
+function get_zone_templ_records($id, $rowstart = 0, $rowamount = 999999, $sortby = 'name') {
+    global $db;
+
+    if (is_numeric($id)) {
+        $db->setLimit($rowamount, $rowstart);
+        $result = $db->query("SELECT id FROM zone_templ_records WHERE zone_templ_id=" . $db->quote($id, 'integer') . " ORDER BY " . $sortby);
+        $ret[] = array();
+        $retcount = 0;
+        while ($r = $result->fetchRow()) {
+            // Call get_record_from_id for each row.
+            $ret[$retcount] = get_zone_templ_record_from_id($r["id"]);
+            $retcount++;
+        }
+        return ($retcount > 0 ? $ret : -1);
+    } else {
+        error(sprintf(ERR_INV_ARG, "get_zone_templ_records"));
+    }
+}
+
+/** Add a record for a zone template
+ *
+ * This function validates and if correct it inserts it into the database.
+ * TODO: actual validation?
+ *
+ * @param int $zone_templ_id zone template ID
+ * @param string $name name part of record
+ * @param string $type record type
+ * @param string $content record content
+ * @param int $ttl TTL
+ * @param int $prio Priority
+ *
+ * @return boolean true if succesful, false otherwise
+ */
+function add_zone_templ_record($zone_templ_id, $name, $type, $content, $ttl, $prio) {
+    global $db;
+
+    if (!(verify_permission('zone_master_add'))) {
+        error(ERR_PERM_ADD_RECORD);
+        return false;
+    } else {
+        if ($content == '') {
+            error(ERR_DNS_CONTENT);
+            return false;
+        }
+
+        if ($name != '') {
+            if ($type == "SPF") {
+                $content = $db->quote(stripslashes('\"' . $content . '\"'), 'text');
+            } else {
+                $content = $db->quote($content, 'text');
+            }
+            $query = "INSERT INTO zone_templ_records (zone_templ_id, name, type, content, ttl, prio) VALUES ("
+                    . $db->quote($zone_templ_id, 'integer') . ","
+                    . $db->quote($name, 'text') . ","
+                    . $db->quote($type, 'text') . ","
+                    . $content . ","
+                    . $db->quote($ttl, 'integer') . ","
+                    . $db->quote($prio, 'integer') . ")";
+            $result = $db->query($query);
+            if (PEAR::isError($result)) {
+                error($result->getMessage());
+                return false;
+            }
+            return true;
+        } else {
+            error(ERR_DNS_HOSTNAME);
+            return false;
+        }
+    }
+}
+
+/** Modify zone template reocrd
+ *
+ * Edit a record for a zone template.
+ * This function validates it if correct it inserts it into the database.
+ *
+ * @param mixed[] $record zone record array
+ *
+ * @return boolean true on success, false otherwise
+ */
+function edit_zone_templ_record($record) {
+    global $db;
+
+    if (!(verify_permission('zone_master_add'))) {
+        error(ERR_PERM_EDIT_RECORD);
+        return false;
+    } else {
+        if ("" != $record['name']) {
+            if ($record['type'] == "SPF") {
+                $content = $db->quote(stripslashes('\"' . $record['content'] . '\"'), 'text');
+            } else {
+                $content = $db->quote($record['content'], 'text');
+            }
+            $query = "UPDATE zone_templ_records
+                                SET name=" . $db->quote($record['name'], 'text') . ",
+                                type=" . $db->quote($record['type'], 'text') . ",
+                                content=" . $content . ",
+                                ttl=" . $db->quote($record['ttl'], 'integer') . ",
+                                prio=" . $db->quote(isset($record['prio']) ? $record['prio'] : 0, 'integer') . "
+                                WHERE id=" . $db->quote($record['rid'], 'integer');
+            $result = $db->query($query);
+            if (PEAR::isError($result)) {
+                error($result->getMessage());
+                return false;
+            }
+            return true;
+        } else {
+            error(ERR_DNS_HOSTNAME);
+            return false;
+        }
+    }
+}
+
+/** Delete a record for a zone template by a given id
+ *
+ * @param int $rid template record id
+ *
+ * @return boolean true on success, false otherwise
+ */
+function delete_zone_templ_record($rid) {
+    global $db;
+
+    if (!(verify_permission('zone_master_add'))) {
+        error(ERR_PERM_DEL_RECORD);
+        return false;
+    } else {
+        $query = "DELETE FROM zone_templ_records WHERE id = " . $db->quote($rid, 'integer');
+        $result = $db->query($query);
+        if (PEAR::isError($result)) {
+            error($result->getMessage());
+            return false;
+        }
+        return true;
+    }
+}
+
+/** Check if the session user is the owner for the zone template
+ *
+ * @param int $zone_templ_id zone template id
+ * @param int $userid user id
+ *
+ * @return boolean true on success, false otherwise
+ */
+function get_zone_templ_is_owner($zone_templ_id, $userid) {
+    global $db;
+
+    $query = "SELECT owner FROM zone_templ WHERE id = " . $db->quote($zone_templ_id, 'integer');
+    $result = $db->queryOne($query);
+    if (PEAR::isError($result)) {
+        error($result->getMessage());
+        return false;
+    }
+
+    if ($result == $userid) {
+        return true;
+    } else {
+        return false;
+    }
+}
+
+/** Add a zone template from zone / another template
+ *
+ * @param string $template_name template name
+ * @param string $description description
+ * @param int $userid user id
+ * @param mixed[] $records array of zone records
+ * @param string $domain domain to substitute with '[ZONE]' (optional) [default=null]
+ *
+ * @return boolean true on success, false otherwise
+ */
+function add_zone_templ_save_as($template_name, $description, $userid, $records, $domain = null) {
+    global $db;
+    global $db_layer;
+    global $db_type;
+
+    if (!(verify_permission('zone_master_add'))) {
+        error(ERR_PERM_ADD_ZONE_TEMPL);
+        return false;
+    } else {
+        $result = $db->beginTransaction();
+
+        $query = "INSERT INTO zone_templ (name, descr, owner)
+			VALUES ("
+                . $db->quote($template_name, 'text') . ", "
+                . $db->quote($description, 'text') . ", "
+                . $db->quote($userid, 'integer') . ")";
+
+        $result = $db->exec($query);
+
+        if ($db_layer == 'MDB2' && ($db_type == 'mysql' || $db_type == 'pgsql')) {
+            $zone_templ_id = $db->lastInsertId('zone_templ', 'id');
+        } else if ($db_layer == 'PDO' && $db_type == 'pgsql') {
+            $zone_templ_id = $db->lastInsertId('zone_templ_id_seq');
+        } else {
+            $zone_templ_id = $db->lastInsertId();
+        }
+
+        $owner = get_zone_templ_is_owner($zone_templ_id, $_SESSION['userid']);
+
+        foreach ($records as $record) {
+            if ($record['type'] == "SPF") {
+                $content = $db->quote(stripslashes('\"' . $record['content'] . '\"'), 'text');
+            } else {
+                $content = $db->quote($record['content'], 'text');
+            }
+
+            $name = $domain ? preg_replace('/' . $domain . '/', '[ZONE]', $record['name']) : $record['name'];
+            $content = $domain ? preg_replace('/' . $domain . '/', '[ZONE]', $content) : $content;
+
+            $query2 = "INSERT INTO zone_templ_records (zone_templ_id, name, type, content, ttl, prio) VALUES ("
+                    . $db->quote($zone_templ_id, 'integer') . ","
+                    . $db->quote($name, 'text') . ","
+                    . $db->quote($record['type'], 'text') . ","
+                    . $content . ","
+                    . $db->quote($record['ttl'], 'integer') . ","
+                    . $db->quote(isset($record['prio']) ? $record['prio'] : 0, 'integer') . ")";
+            $result = $db->exec($query2);
+        }
+
+        if (PEAR::isError($result)) {
+            $result = $db->rollback();
+        } else {
+            $result = $db->commit();
+        }
+    }
+    return true;
+}
+
+/** Get list of all zones using template
+ *
+ * @param int $zone_templ_id zone template id
+ * @param int $userid user id
+ *
+ * @return mixed[] array of zones [id,name,type,count_records]
+ */
+function get_list_zone_use_templ($zone_templ_id, $userid) {
+    global $db;
+
+    if (verify_permission('zone_content_edit_others')) {
+        $perm_edit = "all";
+    } elseif (verify_permission('zone_content_edit_own')) {
+        $perm_edit = "own";
+    } else {
+        $perm_edit = "none";
+    }
+
+    $sql_add = '';
+    if ($perm_edit != "all") {
+        $sql_add = " AND zones.domain_id = domains.id
+				AND zones.owner = " . $db->quote($userid, 'integer');
+    }
+
+    $query = "SELECT domains.id,
+			domains.name,
+			domains.type,
+			Record_Count.count_records
+			FROM domains
+			LEFT JOIN zones ON domains.id=zones.domain_id
+			LEFT JOIN (
+				SELECT COUNT(domain_id) AS count_records, domain_id FROM records GROUP BY domain_id
+			) Record_Count ON Record_Count.domain_id=domains.id
+			WHERE 1=1" . $sql_add . "
+                        AND zone_templ_id = " . $db->quote($zone_templ_id, 'integer') . "
+			GROUP BY domains.name, domains.id, domains.type, Record_Count.count_records";
+
+    $result = $db->query($query);
+    if (PEAR::isError($result)) {
+        error("Not all tables available in database, please make sure all upgrade/install proceedures were followed");
+        return false;
+    }
+
+    $zone_list = array();
+    while ($zone = $result->fetchRow()) {
+        $zone_list[] = array(
+            "id" => $zone['id'],
+            "name" => $zone['name'],
+            "type" => $zone['type'],
+            "count_records" => $zone['count_records']
+        );
+    }
+    return $zone_list;
+}
+
+/** Modify zone template
+ *
+ * @param mixed[] $details array of new zone template details
+ * @param int $zone_templ_id zone template id
+ *
+ * @return boolean true on success, false otherwise
+ */
+function edit_zone_templ($details, $zone_templ_id) {
+    global $db;
+    $zone_name_exists = zone_templ_name_exists($details['templ_name'], $zone_templ_id);
+    if (!(verify_permission('zone_master_add'))) {
+        error(ERR_PERM_ADD_ZONE_TEMPL);
+        return false;
+    } elseif ($zone_name_exists != '0') {
+        error(ERR_ZONE_TEMPL_EXIST);
+        return false;
+    } else {
+        $query = "UPDATE zone_templ
+			SET name=" . $db->quote($details['templ_name'], 'text') . ",
+			descr=" . $db->quote($details['templ_descr'], 'text') . "
+			WHERE id=" . $db->quote($zone_templ_id, 'integer');
+
+        $result = $db->query($query);
+        if (PEAR::isError($result)) {
+            error($result->getMessage());
+            return false;
+        }
+
+        return true;
+    }
+}
+
+/** Check if zone template name exists
+ *
+ * @param string $zone_templ_name zone template name
+ * @param int $zone_templ_id zone template id (optional) [default=null]
+ *
+ * @return int number of matching templates
+ */
+function zone_templ_name_exists($zone_templ_name, $zone_templ_id = null) {
+    global $db;
+
+    $sql_add = '';
+    if ($zone_templ_id) {
+        $sql_add = " AND id != " . $db->quote($zone_templ_id, 'integer');
+    }
+
+    $query = "SELECT COUNT(id) FROM zone_templ WHERE name = " . $db->quote($zone_templ_name, 'text') . "" . $sql_add;
+    $count = $db->queryOne($query);
+    if (PEAR::isError($count)) {
+        error($count->getMessage());
+        return false;
+    }
+
+    return $count;
+}
+
+/** Parse string and substitute domain and serial
+ *
+ * @param string $val string to parse containing tokens '[ZONE]' and '[SERIAL]'
+ * @param string $domain domain to subsitute for '[ZONE]'
+ *
+ * @return string interpolated/parsed string
+ */
+function parse_template_value($val, $domain) {
+    $serial = date("Ymd");
+    $serial .= "00";
+
+    $val = str_replace('[ZONE]', $domain, $val);
+    $val = str_replace('[SERIAL]', $serial, $val);
+    return $val;
+}
+
+/** Add relation between zone record and template
+ *
+ * @param type $db DB link
+ * @param type $domain_id Domain id
+ * @param type $record_id Record id
+ * @param type $zone_templ_id Zone template id
+ */
+function add_record_relation_to_templ($db, $domain_id, $record_id, $zone_templ_id) {
+    $query = "INSERT INTO records_zone_templ (domain_id, record_id, zone_templ_id) VALUES ("
+            . $db->quote($domain_id, 'integer') . ","
+            . $db->quote($record_id, 'integer') . ","
+            . $db->quote($zone_templ_id, 'integer') . ")";
+    $db->query($query);
+}
+
+/** Check if given relation exists
+ *
+ * @param type $db
+ * @param type $domain_id
+ * @param type $record_id
+ * @param type $zone_templ_id
+ * @return boolean true on success, false on failure
+ */
+function record_relation_to_templ_exists($db, $domain_id, $record_id, $zone_templ_id) {
+    $query = "SELECT COUNT(*) FROM records_zone_templ WHERE domain_id = " . $db->quote($domain_id, 'integer') .
+            " AND record_id = " . $db->quote($record_id, 'integer') . " AND zone_templ_id = " . $db->quote($zone_templ_id, 'integer');
+    $count = $db->queryOne($query);
+    if ($count == 0) {
+        return false;
+    }
+
+    return true;
+}

+ 626 - 0
devadmin/html/poweradmin-2.1.7/inc/toolkit.inc.php

@@ -0,0 +1,626 @@
+<?php
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ *  Toolkit functions
+ *
+ * @package Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+// Fix for Strict Standards: Non-static method PEAR::setErrorHandling() should not be called statically
+// TODO: remove after PEAR::MDB2 replacement with PDO
+ini_set('error_reporting', E_ALL & ~ (E_NOTICE | E_STRICT));
+
+// TODO: display elapsed time and memory consumption,
+// used to check improvements in refactored version
+$display_stats = false;
+if ($display_stats)
+    include('inc/benchmark.php');
+
+ob_start();
+
+require_once("error.inc.php");
+
+if (!function_exists('session_start'))
+    die(error('You have to install PHP session extension!'));
+if (!function_exists('_'))
+    die(error('You have to install PHP gettext extension!'));
+if (!function_exists('mcrypt_encrypt'))
+    die(error('You have to install PHP mcrypt extension!'));
+
+session_start();
+
+include_once("config-me.inc.php");
+
+if (!@include_once("config.inc.php")) {
+    error(_('You have to create a config.inc.php!'));
+}
+
+/* * ***********
+ * Constants *
+ * *********** */
+
+if (isset($_GET["start"])) {
+    define('ROWSTART', (($_GET["start"] - 1) * $iface_rowamount));
+} else {
+    /** Starting row
+     */
+    define('ROWSTART', 0);
+}
+
+if (isset($_GET["letter"])) {
+    define('LETTERSTART', $_GET["letter"]);
+    $_SESSION["letter"] = $_GET["letter"];
+} elseif (isset($_SESSION["letter"])) {
+    define('LETTERSTART', $_SESSION["letter"]);
+} else {
+    /** Starting letter
+     */
+    define('LETTERSTART', "a");
+}
+
+if (isset($_GET["zone_sort_by"]) && preg_match("/^[a-z_]+$/", $_GET["zone_sort_by"])) {
+    define('ZONE_SORT_BY', $_GET["zone_sort_by"]);
+    $_SESSION["zone_sort_by"] = $_GET["zone_sort_by"];
+} elseif (isset($_POST["zone_sort_by"]) && preg_match("/^[a-z_]+$/", $_POST["zone_sort_by"])) {
+    define('ZONE_SORT_BY', $_POST["zone_sort_by"]);
+    $_SESSION["zone_sort_by"] = $_POST["zone_sort_by"];
+} elseif (isset($_SESSION["zone_sort_by"])) {
+    define('ZONE_SORT_BY', $_SESSION["zone_sort_by"]);
+} else {
+    /** Field to sort zone by
+     */
+    define('ZONE_SORT_BY', "name");
+}
+
+if (isset($_SESSION["userlang"])) {
+    $iface_lang = $_SESSION["userlang"];
+}
+
+if (isset($_GET["record_sort_by"]) && preg_match("/^[a-z_]+$/", $_GET["record_sort_by"])) {
+    define('RECORD_SORT_BY', $_GET["record_sort_by"]);
+    $_SESSION["record_sort_by"] = $_GET["record_sort_by"];
+} elseif (isset($_POST["record_sort_by"]) && preg_match("/^[a-z_]+$/", $_POST["record_sort_by"])) {
+    define('RECORD_SORT_BY', $_POST["record_sort_by"]);
+    $_SESSION["record_sort_by"] = $_POST["record_sort_by"];
+} elseif (isset($_SESSION["record_sort_by"])) {
+    define('RECORD_SORT_BY', $_SESSION["record_sort_by"]);
+} else {
+    /** Record to sort zone by
+     */
+    define('RECORD_SORT_BY', "name");
+}
+
+$valid_tlds = array("ac", "academy", "actor", "ad", "ae", "aero", "af", "ag",
+    "agency", "ai", "al", "am", "an", "ao", "aq", "ar", "arpa", "as", "asia",
+    "at", "au", "aw", "ax", "az", "ba", "bar", "bargains", "bb", "bd", "be",
+    "berlin", "best", "bf", "bg", "bh", "bi", "bid", "bike", "biz", "bj", "blue",
+    "bm", "bn", "bo", "boutique", "br", "bs", "bt", "build", "builders", "buzz",
+    "bv", "bw", "by", "bz", "ca", "cab", "camera", "camp", "cards", "careers",
+    "cat", "catering", "cc", "cd", "center", "ceo", "cf", "cg", "ch", "cheap",
+    "christmas", "ci", "ck", "cl", "cleaning", "clothing", "club", "cm", "cn",
+    "co", "codes", "coffee", "com", "community", "company", "computer", "condos",
+    "construction", "contractors", "cool", "coop", "cr", "cruises", "cu", "cv",
+    "cw", "cx", "cy", "cz", "dance", "dating", "de", "democrat", "diamonds",
+    "directory", "dj", "dk", "dm", "do", "domains", "dz", "ec", "edu",
+    "education", "ee", "eg", "email", "enterprises", "equipment", "er", "es",
+    "estate", "et", "eu", "events", "expert", "exposed", "farm", "fi", "fish",
+    "fj", "fk", "flights", "florist", "fm", "fo", "foundation", "fr", "futbol",
+    "ga", "gallery", "gb", "gd", "ge", "gf", "gg", "gh", "gi", "gift", "gl",
+    "glass", "gm", "gn", "gov", "gp", "gq", "gr", "graphics", "gs", "gt", "gu",
+    "guitars", "guru", "gw", "gy", "hk", "hm", "hn", "holdings", "holiday",
+    "house", "hr", "ht", "hu", "id", "ie", "il", "im", "immobilien", "in",
+    "industries", "info", "institute", "int", "international", "io", "iq", "ir",
+    "is", "it", "je", "jm", "jo", "jobs", "jp", "kaufen", "ke", "kg", "kh", "ki",
+    "kim", "kitchen", "kiwi", "km", "kn", "koeln", "kp", "kr", "kred", "kw", "ky",
+    "kz", "la", "land", "lb", "lc", "li", "lighting", "limo", "link", "lk", "lr",
+    "ls", "lt", "lu", "luxury", "lv", "ly", "ma", "maison", "management", "mango",
+    "marketing", "mc", "md", "me", "menu", "mg", "mh", "mil", "mk", "ml", "mm",
+    "mn", "mo", "mobi", "moda", "monash", "mp", "mq", "mr", "ms", "mt", "mu",
+    "museum", "mv", "mw", "mx", "my", "mz", "na", "nagoya", "name", "nc", "ne",
+    "net", "neustar", "nf", "ng", "ni", "ninja", "nl", "no", "np", "nr", "nu",
+    "nz", "okinawa", "om", "onl", "org", "pa", "partners", "parts", "pe", "pf",
+    "pg", "ph", "photo", "photography", "photos", "pics", "pink", "pk", "pl",
+    "plumbing", "pm", "pn", "post", "pr", "pro", "productions", "properties",
+    "ps", "pt", "pub", "pw", "py", "qa", "qpon", "re", "recipes", "red",
+    "rentals", "repair", "report", "reviews", "rich", "ro", "rs", "ru", "ruhr",
+    "rw", "sa", "sb", "sc", "sd", "se", "sexy", "sg", "sh", "shiksha", "shoes",
+    "si", "singles", "sj", "sk", "sl", "sm", "sn", "so", "social", "solar",
+    "solutions", "sr", "st", "su", "supplies", "supply", "support", "sv", "sx",
+    "sy", "systems", "sz", "tattoo", "tc", "td", "technology", "tel", "tf", "tg",
+    "th", "tienda", "tips", "tj", "tk", "tl", "tm", "tn", "to", "today", "tokyo",
+    "tools", "tp", "tr", "training", "travel", "tt", "tv", "tw", "tz", "ua", "ug",
+    "uk", "uno", "us", "uy", "uz", "va", "vacations", "vc", "ve", "ventures",
+    "vg", "vi", "viajes", "villas", "vision", "vn", "vote", "voting", "voto",
+    "voyage", "vu", "wang", "watch", "wed", "wf", "wien", "wiki", "works", "ws",
+    "xn--3bst00m", "xn--3ds443g", "xn--3e0b707e", "xn--45brj9c", "xn--55qw42g",
+    "xn--55qx5d", "xn--6frz82g", "xn--6qq986b3xl", "xn--80ao21a", "xn--80asehdb",
+    "xn--80aswg", "xn--90a3ac", "xn--c1avg", "xn--cg4bki",
+    "xn--clchc0ea0b2g2a9gcd", "xn--d1acj3b", "xn--fiq228c5hs", "xn--fiq64b",
+    "xn--fiqs8s", "xn--fiqz9s", "xn--fpcrj9c3d", "xn--fzc2c9e2c", "xn--gecrj9c",
+    "xn--h2brj9c", "xn--i1b6b1a6a2e", "xn--io0a7i", "xn--j1amh", "xn--j6w193g",
+    "xn--kprw13d", "xn--kpry57d", "xn--l1acc", "xn--lgbbat1ad8j", "xn--mgb9awbf",
+    "xn--mgba3a4f16a", "xn--mgbaam7a8h", "xn--mgbab2bd", "xn--mgbayh7gpa",
+    "xn--mgbbh1a71e", "xn--mgbc0a9azcg", "xn--mgberp4a5d4ar", "xn--mgbx4cd0ab",
+    "xn--ngbc5azd", "xn--nqv7f", "xn--nqv7fs00ema", "xn--o3cw4h", "xn--ogbpf8fl",
+    "xn--p1ai", "xn--pgbs0dh", "xn--q9jyb4c", "xn--s9brj9c", "xn--unup4y",
+    "xn--wgbh1c", "xn--wgbl6a", "xn--xkc2al3hye2a", "xn--xkc2dl3a5ee0h",
+    "xn--yfro4i67o", "xn--ygbi2ammx", "xn--zfr164b", "xxx", "xyz", "ye", "yt",
+    "za", "zm", "zone", "zw");
+
+// Special TLDs for testing and documentation purposes
+// http://tools.ietf.org/html/rfc2606#section-2
+array_push($valid_tlds, 'test', 'example', 'invalid', 'localhost');
+
+/* Database connection */
+require_once("database.inc.php");
+// Generates $db variable to access database.
+// Array of the available zone types
+$server_types = array("MASTER", "SLAVE", "NATIVE");
+
+// $rtypes - array of possible record types
+$rtypes = array(
+    'A',
+    'AAAA',
+    'AFSDB',
+    'CERT',
+    'CNAME',
+    'DHCID',
+    'DLV',
+    'DNSKEY',
+    'DS',
+    'EUI48',
+    'EUI64',
+    'HINFO',
+    'IPSECKEY',
+    'KEY',
+    'KX',
+    'LOC',
+    'MINFO',
+    'MR',
+    'MX',
+    'NAPTR',
+    'NS',
+    'NSEC',
+    'NSEC3',
+    'NSEC3PARAM',
+    'OPT',
+    'PTR',
+    'RKEY',
+    'RP',
+    'RRSIG',
+    'SOA',
+    'SPF',
+    'SRV',
+    'SSHFP',
+    'TLSA',
+    'TSIG',
+    'TXT',
+    'WKS',
+);
+
+// If fancy records is enabled, extend this field.
+if ($dns_fancy) {
+    $rtypes[] = 'URL';
+    $rtypes[] = 'MBOXFW';
+    $rtypes[] = 'CURL';
+}
+
+
+/* * ***********
+ * Includes  *
+ * *********** */
+
+require_once("i18n.inc.php");
+require_once("auth.inc.php");
+require_once("users.inc.php");
+require_once("dns.inc.php");
+require_once("record.inc.php");
+require_once("dnssec.inc.php");
+require_once("templates.inc.php");
+
+$db = dbConnect();
+doAuthenticate();
+
+
+/* * ***********
+ * Functions *
+ * *********** */
+
+/** Print paging menu
+ *
+ * Display the page option: [ < ][ 1 ] .. [ 8 ][ 9 ][ 10 ][ 11 ][ 12 ][ 13 ][ 14 ][ 15 ][ 16 ] .. [ 34 ][ > ]
+ *
+ * @param int $amount Total number of items
+ * @param int $rowamount Per page number of items
+ * @param int $id Page specific ID (Zone ID, Template ID, etc)
+ *
+ * @return null
+ */
+function show_pages($amount, $rowamount, $id = '') {
+    if ($amount > $rowamount) {
+        $num = 8;
+        $poutput = '';
+        $lastpage = ceil($amount / $rowamount);
+        $startpage = 1;
+
+        if (!isset($_GET["start"]))
+            $_GET["start"] = 1;
+        $start = $_GET["start"];
+
+        if ($lastpage > $num & $start > ($num / 2)) {
+            $startpage = ($start - ($num / 2));
+        }
+
+        echo _('Show page') . ":<br>";
+
+        if ($lastpage > $num & $start > 1) {
+            $poutput .= '<a href=" ' . htmlentities($_SERVER["PHP_SELF"], ENT_QUOTES);
+            $poutput .= '?start=' . ($start - 1);
+            if ($id != '')
+                $poutput .= '&id=' . $id;
+            $poutput .= '">';
+            $poutput .= '[ < ]';
+            $poutput .= '</a>';
+        }
+        if ($start != 1) {
+            $poutput .= '<a href=" ' . htmlentities($_SERVER["PHP_SELF"], ENT_QUOTES);
+            $poutput .= '?start=1';
+            if ($id != '')
+                $poutput .= '&id=' . $id;
+            $poutput .= '">';
+            $poutput .= '[ 1 ]';
+            $poutput .= '</a>';
+            if ($startpage > 2)
+                $poutput .= ' .. ';
+        }
+
+        for ($i = $startpage; $i <= min(($startpage + $num), $lastpage); $i++) {
+            if ($start == $i) {
+                $poutput .= '[ <b>' . $i . '</b> ]';
+            } elseif ($i != $lastpage & $i != 1) {
+                $poutput .= '<a href=" ' . htmlentities($_SERVER["PHP_SELF"], ENT_QUOTES);
+                $poutput .= '?start=' . $i;
+                if ($id != '')
+                    $poutput .= '&id=' . $id;
+                $poutput .= '">';
+                $poutput .= '[ ' . $i . ' ]';
+                $poutput .= '</a>';
+            }
+        }
+
+        if ($start != $lastpage) {
+            if (min(($startpage + $num), $lastpage) < ($lastpage - 1))
+                $poutput .= ' .. ';
+            $poutput .= '<a href=" ' . htmlentities($_SERVER["PHP_SELF"], ENT_QUOTES);
+            $poutput .= '?start=' . $lastpage;
+            if ($id != '')
+                $poutput .= '&id=' . $id;
+            $poutput .= '">';
+            $poutput .= '[ ' . $lastpage . ' ]';
+            $poutput .= '</a>';
+        }
+
+        if ($lastpage > $num & $start < $lastpage) {
+            $poutput .= '<a href=" ' . htmlentities($_SERVER["PHP_SELF"], ENT_QUOTES);
+            $poutput .= '?start=' . ($start + 1);
+            if ($id != '')
+                $poutput .= '&id=' . $id;
+            $poutput .= '">';
+            $poutput .= '[ > ]';
+            $poutput .= '</a>';
+        }
+
+        echo $poutput;
+    }
+}
+
+/** Print alphanumeric paging menu
+ *
+ * Display the alphabetic option: [0-9] [a] [b] .. [z]
+ *
+ * @param string $letterstart Starting letter/number or 'all'
+ * @param boolean $userid unknown usage
+ *
+ * @return null
+ */
+function show_letters($letterstart, $userid = true) {
+    echo _('Show zones beginning with') . ":<br>";
+
+    $letter = "[[:digit:]]";
+    if ($letterstart == "1") {
+        echo "<span class=\"lettertaken\">[ 0-9 ]</span> ";
+    } elseif (zone_letter_start($letter, $userid)) {
+        echo "<a href=\"" . htmlentities($_SERVER["PHP_SELF"], ENT_QUOTES) . "?letter=1\">[ 0-9 ]</a> ";
+    } else {
+        echo "[ <span class=\"letternotavailable\">0-9</span> ] ";
+    }
+
+    foreach (range('a', 'z') as $letter) {
+        if ($letter == $letterstart) {
+            echo "<span class=\"lettertaken\">[ " . $letter . " ]</span> ";
+        } elseif (zone_letter_start($letter, $userid)) {
+            echo "<a href=\"" . htmlentities($_SERVER["PHP_SELF"], ENT_QUOTES) . "?letter=" . $letter . "\">[ " . $letter . " ]</a> ";
+        } else {
+            echo "[ <span class=\"letternotavailable\">" . $letter . "</span> ] ";
+        }
+    }
+
+    if ($letterstart == '_') {
+        echo "<span class=\"lettertaken\">[ _ ]</span> ";
+    } elseif (zone_letter_start('_', $userid)) {
+        echo "<a href=\"" . htmlentities($_SERVER["PHP_SELF"], ENT_QUOTES) . "?letter=_\">[ _ ]</a> ";
+    } else {
+        echo "[ <span class=\"letternotavailable\">_</span> ] ";
+    }
+
+    if ($letterstart == 'all') {
+        echo "<span class=\"lettertaken\">[ Show all ]</span>";
+    } else {
+        echo "<a href=\"" . htmlentities($_SERVER["PHP_SELF"], ENT_QUOTES) . "?letter=all\">[ Show all ]</a> ";
+    }
+}
+
+/** Check if any zones start with letter
+ *
+ * @param string $letter Starting Letter
+ * @param boolean $userid unknown usage
+ *
+ * @return int 1 if rows found, 0 otherwise
+ */
+function zone_letter_start($letter, $userid = true) {
+    global $db;
+    global $sql_regexp;
+    $query = "SELECT
+			domains.id AS domain_id,
+			zones.owner,
+			domains.name AS domainname
+			FROM domains
+			LEFT JOIN zones ON domains.id=zones.domain_id
+			WHERE substring(domains.name,1,1) " . $sql_regexp . " " . $db->quote("^" . $letter, 'text');
+    $db->setLimit(1);
+    $result = $db->queryOne($query);
+    return ($result ? 1 : 0);
+}
+
+/** Print success message (toolkit.inc)
+ *
+ * @param string $msg Success message
+ *
+ * @return null
+ */
+function success($msg) {
+    if ($msg) {
+        echo "     <div class=\"success\">" . $msg . "</div>\n";
+    } else {
+        echo "     <div class=\"success\">" . _('Something has been successfully performed. What exactly, however, will remain a mystery.') . "</div>\n";
+    }
+}
+
+/** Print message
+ *
+ * Something has been done nicely, display a message and a back button.
+ *
+ * @param string $msg Message
+ *
+ * @return null
+ */
+function message($msg) {
+    include_once("header.inc.php");
+    ?>
+    <P><TABLE CLASS="messagetable"><TR><TD CLASS="message"><H2><?php echo _('Success!'); ?></H2>
+                <BR>
+                <FONT STYLE="font-weight: Bold">
+                <P>
+                    <?php
+                    if ($msg) {
+                        echo nl2br($msg);
+                    } else {
+                        echo _('Successful!');
+                    }
+                    ?>
+                </P>
+                <BR>
+                <P>
+                    <a href="javascript:history.go(-1)">&lt;&lt; <?php echo _('back'); ?></a></FONT>
+                </P>
+            </TD></TR></TABLE></P>
+    <?php
+    include_once("footer.inc.php");
+}
+
+/** Send 302 Redirect with optional argument
+ *
+ * Reroute a user to a cleanpage of (if passed) arg
+ *
+ * @param string $arg argument string to add to url
+ *
+ * @return null
+ */
+function clean_page($arg = '') {
+    if (!$arg) {
+        header("Location: " . htmlentities($_SERVER['SCRIPT_NAME'], ENT_QUOTES) . "?time=" . time());
+        exit;
+    } else {
+        if (preg_match('!\?!si', $arg)) {
+            $add = "&time=";
+        } else {
+            $add = "?time=";
+        }
+        header("Location: $arg$add" . time());
+        exit;
+    }
+}
+
+/** Print active status
+ *
+ * @param int $res status, 0 for inactive, 1 active
+ *
+ * @return string html containing status
+ */
+function get_status($res) {
+    if ($res == '0') {
+        return "<FONT CLASS=\"inactive\">" . _('Inactive') . "</FONT>";
+    } elseif ($res == '1') {
+        return "<FONT CLASS=\"active\">" . _('Active') . "</FONT>";
+    }
+}
+
+/** Validate email address string
+ *
+ * @param string $address email address string
+ *
+ * @return boolean true if valid, false otherwise
+ */
+function is_valid_email($address) {
+    $fields = preg_split("/@/", $address, 2);
+    if ((!preg_match("/^[0-9a-z]([-_.]?[0-9a-z])*$/i", $fields[0])) || (!isset($fields[1]) || $fields[1] == '' || !is_valid_hostname_fqdn($fields[1], 0))) {
+        return false;
+    }
+    return true;
+}
+
+/** Validate numeric string
+ *
+ * @param string $string number
+ *
+ * @return boolean true if number, false otherwise
+ */
+function v_num($string) {
+    if (!preg_match("/^[0-9]+$/i", $string)) {
+        return false;
+    } else {
+        return true;
+    }
+}
+
+/** Debug print
+ *
+ * @param string $var debug statement
+ *
+ * @return null
+ */
+function debug_print($var) {
+    echo "<pre style=\"border: 2px solid blue;\">\n";
+    if (is_array($var)) {
+        print_r($var);
+    } else {
+        echo $var;
+    }
+    echo "</pre>\n";
+}
+
+/** Set timezone (required for PHP5)
+ *
+ * Set timezone to configured tz or UTC it not set
+ *
+ * @return null
+ */
+function set_timezone() {
+    global $timezone;
+
+    if (function_exists('date_default_timezone_set')) {
+        if (isset($timezone)) {
+            date_default_timezone_set($timezone);
+        } else if (!ini_get('date.timezone')) {
+            date_default_timezone_set('UTC');
+        }
+    }
+}
+
+/** Generate random salt for encryption
+ *
+ * @param int $len salt length (default=5)
+ *
+ * @return string salt string
+ */
+function generate_salt($len = 5) {
+    $valid_characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@#$%^*()_-!';
+    $valid_len = strlen($valid_characters) - 1;
+    $salt = "";
+
+    for ($i = 0; $i < $len; $i++) {
+        $salt .= $valid_characters[rand(0, $valid_len)];
+    }
+
+    return $salt;
+}
+
+/** Extract salt from password
+ *
+ * @param string $password salted password
+ *
+ * @return string salt
+ */
+function extract_salt($password) {
+    return substr(strchr($password, ':'), 1);
+}
+
+/** Generate salted password
+ *
+ * @param string $salt salt
+ * @param string $pass password
+ *
+ * @return string salted password
+ */
+function mix_salt($salt, $pass) {
+    return md5($salt . $pass) . ':' . $salt;
+}
+
+/** Generate random salt and salted password
+ *
+ * @param string $pass password
+ *
+ * @return salted password
+ */
+function gen_mix_salt($pass) {
+    $salt = generate_salt();
+    return mix_salt($salt, $pass);
+}
+
+
+function do_log($syslog_message,$priority){
+    global $syslog_use, $syslog_ident, $syslog_facility;
+    if ($syslog_use) {
+        openlog($syslog_ident, LOG_PERROR, $syslog_facility);
+        syslog($priority, $syslog_message);
+        closelog();
+    }
+}
+
+function log_error($syslog_message) {
+    do_log($syslog_message,LOG_ERR);
+}
+
+function log_warn($syslog_message) {
+    do_log($syslog_message,LOG_WARNING);
+}
+
+function log_notice($syslog_message) {
+    do_log($syslog_message,LOG_NOTICE);
+}
+
+function log_info($syslog_message) {
+    do_log($syslog_message,LOG_INFO);
+}

+ 932 - 0
devadmin/html/poweradmin-2.1.7/inc/users.inc.php

@@ -0,0 +1,932 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ *  User profile functions
+ *
+ * @package Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+
+/** Verify User has Permission Name
+ *
+ *  Function to see if user has right to do something. It will check if
+ *  user has "ueberuser" bit set. If it isn't, it will check if the user has
+ *  the specific permission. It returns "false" if the user doesn't have the
+ *  right, and "true" if the user has. 
+ *
+ *  @param string $permission Permission name
+ *
+ *  @return boolean true if user has permission, false otherwise
+ */
+function verify_permission($permission) {
+    global $db;
+
+    if ((!isset($_SESSION['userid'])) || (!is_object($db))) {
+        return 0;
+    }
+
+    // Set current user ID.
+    $userid = $_SESSION['userid'];
+
+    $query = 'SELECT id FROM perm_items WHERE name=' . $db->quote('user_is_ueberuser', 'text');
+    $ueberUserId = $db->queryOne($query);
+
+    // Find the template ID that this user has been assigned.
+    $query = "SELECT perm_templ
+			FROM users 
+			WHERE id = " . $db->quote($userid, 'integer');
+    $templ_id = $db->queryOne($query);
+
+    // Does this user have ueberuser rights?
+    $query = "SELECT id
+			FROM perm_templ_items 
+			WHERE templ_id = " . $db->quote($templ_id, 'integer') . " 
+			AND perm_id = " . $ueberUserId;
+
+    if ($db->queryOne($query)) {
+        return true;
+    }
+
+    // Find the permission ID for the requested permission.
+    $query = "SELECT id
+			FROM perm_items 
+			WHERE name = " . $db->quote($permission, 'text');
+    $perm_id = $db->queryOne($query);
+
+    // Check if the permission ID is assigned to the template ID.
+    $query = "SELECT id
+			FROM perm_templ_items 
+			WHERE templ_id = " . $db->quote($templ_id, 'integer') . " 
+			AND perm_id = " . $db->quote($perm_id, 'integer');
+
+    return ($db->queryOne($query) ? true : false);
+}
+
+/** Get a list of all available permission templates
+ *
+ * @return mixed[] array of templates [id, name, descr]
+ */
+function list_permission_templates() {
+    global $db;
+    $query = "SELECT * FROM perm_templ ORDER BY name";
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    $template_list = array();
+    while ($template = $response->fetchRow()) {
+        $template_list[] = array(
+            "id" => $template['id'],
+            "name" => $template['name'],
+            "descr" => $template['descr']
+        );
+    }
+    return $template_list;
+}
+
+/** Retrieve all users
+ *
+ * Its to show_users therefore the odd name. Has to be changed.
+ *
+ * @param int $id Exclude User ID
+ * @param int $rowstart Startring row number
+ * @param int $rowamount Number of rows to return this query
+ *
+ * @return mixed[] array with all users [id,username,fullname,email,description,active,numdomains]
+ */
+function show_users($id = '', $rowstart = 0, $rowamount = 9999999) {
+    global $db;
+    $add = '';
+    if (is_numeric($id)) {
+        //When a user id is given, it is excluded from the userlist returned.
+        $add = " WHERE users.id!=" . $db->quote($id, 'integer');
+    }
+
+    // Make a huge query.
+    $query = "SELECT users.id AS id,
+		users.username AS username,
+		users.fullname AS fullname,
+		users.email AS email,
+		users.description AS description,
+		users.active AS active,
+		users.perm_templ AS perm_templ,
+		count(zones.owner) AS aantal FROM users
+		LEFT JOIN zones ON users.id=zones.owner$add
+		GROUP BY
+			users.id,
+			users.username,
+			users.fullname,
+			users.email,
+			users.description,
+			users.perm_templ,
+			users.active
+		ORDER BY
+			users.fullname";
+
+    // Execute the huge query.
+    $db->setLimit($rowamount, $rowstart);
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+    $ret = array();
+    while ($r = $response->fetchRow()) {
+        $ret[] = array(
+            "id" => $r["id"],
+            "username" => $r["username"],
+            "fullname" => $r["fullname"],
+            "email" => $r["email"],
+            "description" => $r["description"],
+            "active" => $r["active"],
+            "numdomains" => $r["aantal"]
+        );
+    }
+    return $ret;
+}
+
+/** Check if Valid User
+ *
+ * Check if the given $userid is connected to a valid user.
+ *
+ * @param int $id User ID
+ *
+ * @return boolean true if user exists, false if users doesnt exist
+ */
+function is_valid_user($id) {
+    global $db;
+    if (is_numeric($id)) {
+        $response = $db->queryOne("SELECT id FROM users WHERE id=" . $db->quote($id, 'integer'));
+        return ($response ? true : false);
+    }
+}
+
+/** Check if Username Exists
+ *
+ * Checks if a given username exists in the database.
+ *
+ * @param string $user Username
+ *
+ * @return boolean true if exists, false if not
+ */
+function user_exists($user) {
+    global $db;
+    $response = $db->queryOne("SELECT id FROM users WHERE username=" . $db->quote($user, 'text'));
+    return ($response ? true : false);
+}
+
+/** Delete User ID
+ *
+ * Delete a user from the system. Will also delete zones owned by user or
+ * re-assign those zones to a new specified owner.
+ * $zones is an array of zone 'zid's to delete or re-assign depending on
+ * 'target' value [delete,new_owner] and 'newowner' value
+ *
+ * @param int $uid User ID to delete
+ * @param mixed[] $zones Array of zones
+ *
+ * @return boolean true on success, false otherwise
+ */
+function delete_user($uid, $zones) {
+    global $db;
+
+    if (($uid != $_SESSION['userid'] && !verify_permission('user_edit_others')) || ($uid == $_SESSION['userid'] && !verify_permission('user_edit_own'))) {
+        error(ERR_PERM_DEL_USER);
+        return false;
+    } else {
+
+        if (is_array($zones)) {
+            foreach ($zones as $zone) {
+                if ($zone['target'] == "delete") {
+                    delete_domain($zone['zid']);
+                } elseif ($zone['target'] == "new_owner") {
+                    add_owner_to_zone($zone['zid'], $zone['newowner']);
+                }
+            }
+        }
+
+        $query = "DELETE FROM zones WHERE owner = " . $db->quote($uid, 'integer');
+        $response = $db->query($query);
+        if (PEAR::isError($response)) {
+            error($response->getMessage());
+            return false;
+        }
+
+        $query = "DELETE FROM users WHERE id = " . $db->quote($uid, 'integer');
+        $response = $db->query($query);
+        if (PEAR::isError($response)) {
+            error($response->getMessage());
+            return false;
+        }
+
+        delete_zone_templ_userid($uid);
+    }
+    return true;
+}
+
+/** Delete Permission Template ID
+ *
+ * @param int $ptid Permission template ID
+ *
+ * @return boolean true on success, false otherwise
+ */
+function delete_perm_templ($ptid) {
+
+    global $db;
+    if (!(verify_permission('user_edit_templ_perm'))) {
+        error(ERR_PERM_DEL_PERM_TEMPL);
+    } else {
+        $query = "SELECT id FROM users WHERE perm_templ = " . $ptid;
+        $response = $db->queryOne($query);
+        if (PEAR::isError($response)) {
+            error($response->getMessage());
+            return false;
+        }
+
+        if ($response) {
+            error(ERR_PERM_TEMPL_ASSIGNED);
+            return false;
+        } else {
+            $query = "DELETE FROM perm_templ_items WHERE templ_id = " . $ptid;
+            $response = $db->query($query);
+            if (PEAR::isError($response)) {
+                error($response->getMessage());
+                return false;
+            }
+
+            $query = "DELETE FROM perm_templ WHERE id = " . $ptid;
+            $response = $db->query($query);
+            if (PEAR::isError($response)) {
+                error($response->getMessage());
+                return false;
+            }
+
+            return true;
+        }
+    }
+}
+
+/** Modify User Details
+ *
+ * Edit the information of an user.. sloppy implementation with too many queries.. (2) :)
+ *
+ * @param int $id User ID
+ * @param string $user Username
+ * @param string $fullname Full Name
+ * @param string $email Email address
+ * @param string $perm_templ Permission Template Name
+ * @param string $description Description
+ * @param int $active Active User
+ * @param string $password Password
+ *
+ * @return boolean true if succesful, false otherwise
+ */
+function edit_user($id, $user, $fullname, $email, $perm_templ, $description, $active, $password) {
+    global $db;
+    global $password_encryption;
+
+    verify_permission('user_edit_own') ? $perm_edit_own = "1" : $perm_edit_own = "0";
+    verify_permission('user_edit_others') ? $perm_edit_others = "1" : $perm_edit_others = "0";
+
+    if (($id == $_SESSION["userid"] && $perm_edit_own == "1") || ($id != $_SESSION["userid"] && $perm_edit_others == "1" )) {
+
+        if (!is_valid_email($email)) {
+            error(ERR_INV_EMAIL);
+            return false;
+        }
+
+        if ($active != 1) {
+            $active = 0;
+        }
+
+        // Before updating the database we need to check whether the user wants to 
+        // change the username. If the user wants to change the username, we need 
+        // to make sure it doesn't already exists. 
+        //
+		// First find the current username of the user ID we want to change. If the 
+        // current username is not the same as the username that was given by the 
+        // user, the username should apparantly changed. If so, check if the "new" 
+        // username already exists.
+
+        $query = "SELECT username FROM users WHERE id = " . $db->quote($id, 'integer');
+        $response = $db->query($query);
+        if (PEAR::isError($response)) {
+            error($response->getMessage());
+            return false;
+        }
+
+        $usercheck = array();
+        $usercheck = $response->fetchRow();
+
+        if ($usercheck['username'] != $user) {
+
+            // Username of user ID in the database is different from the name
+            // we have been given. User wants a change of username. Now, make
+            // sure it doesn't already exist.
+
+            $query = "SELECT id FROM users WHERE username = " . $db->quote($user, 'text');
+            $response = $db->queryOne($query);
+            if ($response) {
+                error(ERR_USER_EXIST);
+                return false;
+            }
+        }
+
+        // So, user doesn't want to change username or, if he wants, there is not
+        // another user that goes by the wanted username. So, go ahead!
+
+        $query = "UPDATE users SET
+				username = " . $db->quote($user, 'text') . ",
+				fullname = " . $db->quote($fullname, 'text') . ",
+				email = " . $db->quote($email, 'text') . ",";
+        if (verify_permission('user_edit_templ_perm')) {
+            $query .= "perm_templ = " . $db->quote($perm_templ, 'integer') . ",";
+        }
+        $query .= "description = " . $db->quote($description, 'text') . ", 
+				active = " . $db->quote($active, 'integer');
+
+        if ($password != "") {
+            if ($password_encryption == 'md5salt') {
+                $query .= ", password = " . $db->quote(gen_mix_salt($password), 'text');
+            } else {
+                $query .= ", password = " . $db->quote(md5($password), 'text');
+            }
+        }
+
+        $query .= " WHERE id = " . $db->quote($id, 'integer');
+
+        $response = $db->query($query);
+        if (PEAR::isError($response)) {
+            error($response->getMessage());
+            return false;
+        }
+    } else {
+        error(ERR_PERM_EDIT_USER);
+        return false;
+    }
+    return true;
+}
+
+/** Change User Password
+ *
+ * Change the pass of the user.
+ * The user is automatically logged out after the pass change.
+ *
+ * @param mixed[] $details User Details
+ *
+ * @return null
+ */
+function change_user_pass($details) {
+    global $db;
+    global $password_encryption;
+
+    if ($details['newpass'] != $details['newpass2']) {
+        error(ERR_USER_MATCH_NEW_PASS);
+        return false;
+    }
+
+    $query = "SELECT id, password FROM users WHERE username = " . $db->quote($_SESSION["userlogin"], 'text');
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    $rinfo = $response->fetchRow();
+
+    if ($password_encryption == 'md5salt') {
+        $extracted_salt = extract_salt($rinfo['password']);
+        $current_password = mix_salt($extracted_salt, $details['currentpass']);
+    } else {
+        $current_password = md5($details['currentpass']);
+    }
+
+    if ($current_password == $rinfo['password']) {
+        if ($password_encryption == 'md5salt') {
+            $query = "UPDATE users SET password = " . $db->quote(gen_mix_salt($details['newpass']), 'text') . " WHERE id = " . $db->quote($rinfo['id'], 'integer');
+        } else {
+            $query = "UPDATE users SET password = " . $db->quote(md5($details['newpass']), 'text') . " WHERE id = " . $db->quote($rinfo['id'], 'integer');
+        }
+        $response = $db->query($query);
+        if (PEAR::isError($response)) {
+            error($response->getMessage());
+            return false;
+        }
+
+        logout(_('Password has been changed, please login.'), 'success');
+    } else {
+        error(ERR_USER_WRONG_CURRENT_PASS);
+        return false;
+    }
+}
+
+/** Get User FullName from User ID
+ *
+ * Get a fullname when you have a userid.
+ * @param int $id User ID
+ * 
+ * @return string Full Name
+ */
+function get_fullname_from_userid($id) {
+    global $db;
+    if (is_numeric($id)) {
+        $response = $db->query("SELECT fullname FROM users WHERE id=" . $db->quote($id, 'integer'));
+        if (PEAR::isError($response)) {
+            error($response->getMessage());
+            return false;
+        }
+        $r = $response->fetchRow();
+        return $r["fullname"];
+    } else {
+        error(ERR_INV_ARG);
+        return false;
+    }
+}
+
+/** Get User FullName from User ID
+ * fixme: Duplicate function
+ *
+ * Get a fullname when you have a userid.
+ * @param int $id User ID
+ * 
+ * @return string Full Name
+ */
+function get_owner_from_id($id) {
+    global $db;
+    if (is_numeric($id)) {
+        $response = $db->queryRow("SELECT fullname FROM users WHERE id=" . $db->quote($id, 'integer'));
+
+        if ($response) {
+            return $response["fullname"];
+        } else {
+            error(ERR_USER_NOT_EXIST);
+        }
+    }
+    error(ERR_INV_ARG);
+}
+
+/** Get Full Names of owners for a Domain ID
+ *
+ * @todo also fetch the subowners
+ *
+ * @param int $id Domain ID
+ *
+ * @return string[] array of owners for domain
+ */
+function get_fullnames_owners_from_domainid($id) {
+
+    global $db;
+    if (is_numeric($id)) {
+        $response = $db->query("SELECT users.id, users.fullname FROM users, zones WHERE zones.domain_id=" . $db->quote($id, 'integer') . " AND zones.owner=users.id ORDER by fullname");
+        if ($response) {
+            $names = array();
+            while ($r = $response->fetchRow()) {
+                $names[] = $r['fullname'];
+            }
+            return implode(', ', $names);
+        }
+        return "";
+    }
+    error(ERR_INV_ARG);
+}
+
+/** Verify User is Zone ID owner
+ *
+ * @param int $zoneid Zone ID
+ *
+ * @return int 1 if owner, 0 if not owner
+ */
+function verify_user_is_owner_zoneid($zoneid) {
+    global $db;
+
+    $userid = $_SESSION["userid"];
+    if (is_numeric($zoneid)) {
+        $response = $db->queryOne("SELECT zones.id FROM zones 
+				WHERE zones.owner = " . $db->quote($userid, 'integer') . "
+				AND zones.domain_id = " . $db->quote($zoneid, 'integer'));
+        return ($response ? "1" : "0");
+    }
+    error(ERR_INV_ARG);
+}
+
+/** Get User Details
+ *
+ * Gets an array of all users and their details
+ *
+ * @param int $specific User ID (optional)
+ *
+ * @return mixed[] array of user details
+ */
+function get_user_detail_list($specific) {
+    global $db;
+    global $ldap_use;
+
+    $userid = $_SESSION['userid'];
+
+    // fixme: does this actually verify the permission?
+    if (v_num($specific)) {
+        $sql_add = "AND users.id = " . $db->quote($specific, 'integer');
+    } else {
+        if (verify_permission('user_view_others')) {
+            $sql_add = "";
+        } else {
+            $sql_add = "AND users.id = " . $db->quote($userid, 'integer');
+        }
+    }
+
+    $query = "SELECT users.id AS uid, 
+			username, 
+			fullname, 
+			email, 
+			description AS descr,
+			active,";
+    if ($ldap_use) {
+        $query .= "use_ldap,";
+    }
+
+    $query .= "perm_templ.id AS tpl_id,
+			perm_templ.name AS tpl_name,
+			perm_templ.descr AS tpl_descr
+			FROM users, perm_templ 
+			WHERE users.perm_templ = perm_templ.id "
+            . $sql_add . "
+			ORDER BY username";
+
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    while ($user = $response->fetchRow()) {
+        $userlist[] = array(
+            "uid" => $user['uid'],
+            "username" => $user['username'],
+            "fullname" => $user['fullname'],
+            "email" => $user['email'],
+            "descr" => $user['descr'],
+            "active" => $user['active'],
+            "use_ldap" => $user['use_ldap'],
+            "tpl_id" => $user['tpl_id'],
+            "tpl_name" => $user['tpl_name'],
+            "tpl_descr" => $user['tpl_descr']
+        );
+    }
+    return $userlist;
+}
+
+/** Get List of Permissions
+ *
+ * Get a list of permissions that are available. If first argument is "0", it
+ * should return all available permissions. If the first argument is > "0", it
+ * should return the permissions assigned to that particular template only. If
+ * second argument is true, only the permission names are returned.
+ *
+ * @param int $templ_id Template ID (optional) [default=0]
+ * @param boolean $return_name_only Return name only or all details (optional) [default=false]
+ *
+ * @return mixed[] array of permissions [id,name,descr] or permission names [name]
+ */
+function get_permissions_by_template_id($templ_id = 0, $return_name_only = false) {
+    global $db;
+
+    $limit = '';
+    if ($templ_id > 0) {
+        $limit = ", perm_templ_items 
+			WHERE perm_templ_items.templ_id = " . $db->quote($templ_id, 'integer') . "
+			AND perm_templ_items.perm_id = perm_items.id";
+    }
+
+    $query = "SELECT perm_items.id AS id, 
+			perm_items.name AS name, 
+			perm_items.descr AS descr
+			FROM perm_items"
+            . $limit . "
+			ORDER BY name";
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    $permission_list = array();
+    while ($permission = $response->fetchRow()) {
+        if ($return_name_only == false) {
+            $permission_list[] = array(
+                "id" => $permission['id'],
+                "name" => $permission['name'],
+                "descr" => $permission['descr']
+            );
+        } else {
+            $permission_list[] = $permission['name'];
+        }
+    }
+    return $permission_list;
+}
+
+/** Get name and description of template from Template ID
+ *
+ * @param int $templ_id Template ID
+ *
+ * @return mixed[] Template details
+ */
+function get_permission_template_details($templ_id) {
+    global $db;
+
+    $query = "SELECT *
+			FROM perm_templ
+			WHERE perm_templ.id = " . $db->quote($templ_id, 'integer');
+
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    $details = $response->fetchRow();
+    return $details;
+}
+
+/** Add a Permission Template
+ *
+ * @param mixed[] $details Permission template details [templ_name,templ_descr,perm_id]
+ *
+ * @return boolean true on success, false otherwise
+ */
+function add_perm_templ($details) {
+    global $db;
+    global $db_layer;
+    global $db_type;
+
+    // Fix permission template name and description first. 
+
+    $query = "INSERT INTO perm_templ (name, descr)
+			VALUES ("
+            . $db->quote($details['templ_name'], 'text') . ", "
+            . $db->quote($details['templ_descr'], 'text') . ")";
+
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    if ($db_layer == 'MDB2' && ($db_type == 'mysql' || $db_type == 'pgsql')) {
+        $perm_templ_id = $db->lastInsertId('perm_templ', 'id');
+    } else if ($db_layer == 'PDO' && $db_type == 'pgsql') {
+        $perm_templ_id = $db->lastInsertId('perm_templ_id_seq');
+    } else {
+        $perm_templ_id = $db->lastInsertId();
+    }
+
+    if (isset($details['perm_id'])) {
+        foreach ($details['perm_id'] AS $perm_id) {
+            $query = "INSERT INTO perm_templ_items (templ_id, perm_id) VALUES (" . $db->quote($perm_templ_id, 'integer') . "," . $db->quote($perm_id, 'integer') . ")";
+            $response = $db->query($query);
+            if (PEAR::isError($response)) {
+                error($response->getMessage());
+                return false;
+            }
+        }
+    }
+
+    return true;
+}
+
+/** Update permission template details
+ *
+ * @param mixed[] $details Permission Template Details
+ *
+ * @return boolean true on success, false otherwise
+ */
+function update_perm_templ_details($details) {
+    global $db;
+
+    // Fix permission template name and description first. 
+
+    $query = "UPDATE perm_templ 
+			SET name = " . $db->quote($details['templ_name'], 'text') . ",
+			descr = " . $db->quote($details['templ_descr'], 'text') . "
+			WHERE id = " . $db->quote($details['templ_id'], 'integer');
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    // Now, update list of permissions assigned to this template. We could do 
+    // this The Correct Way [tm] by comparing the list of permissions that are
+    // currently assigned with a list of permissions that should be assigned and
+    // apply the difference between these two lists to the database. That sounds 
+    // like too much work. Just delete all the permissions currently assigned to 
+    // the template, than assign all the permessions the template should have.
+
+    $query = "DELETE FROM perm_templ_items WHERE templ_id = " . $details['templ_id'];
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    if (isset($details['perm_id'])) {
+        foreach ($details['perm_id'] AS $perm_id) {
+            $query = "INSERT INTO perm_templ_items (templ_id, perm_id) VALUES (" . $db->quote($details['templ_id'], 'integer') . "," . $db->quote($perm_id, 'integer') . ")";
+            $response = $db->query($query);
+            if (PEAR::isError($response)) {
+                error($response->getMessage());
+                return false;
+            }
+        }
+    }
+
+    return true;
+}
+
+/** Update User Details
+ *
+ * @param mixed[] $details User details
+ *
+ * @return boolean true on success, false otherise
+ */
+function update_user_details($details) {
+
+    global $db;
+    global $password_encryption;
+
+    verify_permission('user_edit_own') ? $perm_edit_own = "1" : $perm_edit_own = "0";
+    verify_permission('user_edit_others') ? $perm_edit_others = "1" : $perm_edit_others = "0";
+    verify_permission('templ_perm_edit') ? $perm_templ_perm_edit = "1" : $perm_templ_perm_edit = "0";
+    verify_permission('user_is_ueberuser') ? $perm_is_godlike = "1" : $perm_is_godlike = "0";
+
+    if (($details['uid'] == $_SESSION["userid"] && $perm_edit_own == "1") ||
+            ($details['uid'] != $_SESSION["userid"] && $perm_edit_others == "1" )) {
+
+        if (!is_valid_email($details['email'])) {
+            error(ERR_INV_EMAIL);
+            return false;
+        }
+
+        if (!isset($details['active']) || $details['active'] != "on") {
+            $active = 0;
+        } else {
+            $active = 1;
+        }
+        if (isset($details['use_ldap'])) {
+            $use_ldap = 1;
+        } else {
+            $use_ldap = 0;
+        }
+
+        // Before updating the database we need to check whether the user wants to 
+        // change the username. If the user wants to change the username, we need 
+        // to make sure it doesn't already exists. 
+        //
+		// First find the current username of the user ID we want to change. If the 
+        // current username is not the same as the username that was given by the 
+        // user, the username should apparantly changed. If so, check if the "new" 
+        // username already exists.
+        $query = "SELECT username FROM users WHERE id = " . $db->quote($details['uid'], 'integer');
+        $response = $db->query($query);
+        if (PEAR::isError($response)) {
+            error($response->getMessage());
+            return false;
+        }
+
+        $usercheck = array();
+        $usercheck = $response->fetchRow();
+
+        if ($usercheck['username'] != $details['username']) {
+            // Username of user ID in the database is different from the name
+            // we have been given. User wants a change of username. Now, make
+            // sure it doesn't already exist.
+            $query = "SELECT id FROM users WHERE username = " . $db->quote($details['username'], 'text');
+            $response = $db->queryOne($query);
+            if ($response) {
+                error(ERR_USER_EXIST);
+                return false;
+            }
+        }
+
+        // So, user doesn't want to change username or, if he wants, there is not
+        // another user that goes by the wanted username. So, go ahead!
+
+        $query = "UPDATE users SET
+				username = " . $db->quote($details['username'], 'text') . ",
+				fullname = " . $db->quote($details['fullname'], 'text') . ",
+				email = " . $db->quote($details['email'], 'text') . ",
+				description = " . $db->quote($details['descr'], 'text') . ", 
+				active = " . $db->quote($active, 'integer');
+
+        // If the user is alllowed to change the permission template, set it.
+        if ($perm_templ_perm_edit == "1") {
+            $query .= ", perm_templ = " . $db->quote($details['templ_id'], 'integer');
+        }
+
+        // If the user is allowed to change the use_ldap flag, set it.
+        if ($perm_is_godlike == "1") {
+            $query .= ", use_ldap = " . $db->quote($use_ldap, 'integer');
+        }
+
+        if (isset($details['password']) && $details['password'] != "") {
+            if ($password_encryption == 'md5salt') {
+                $query .= ", password = " . $db->quote(gen_mix_salt($details['password']), 'text');
+            } else {
+                $query .= ", password = " . $db->quote(md5($details['password']), 'text');
+            }
+        }
+
+        $query .= " WHERE id = " . $db->quote($details['uid'], 'integer');
+
+        $response = $db->query($query);
+        if (PEAR::isError($response)) {
+            error($response->getMessage());
+            return false;
+        }
+    } else {
+        error(ERR_PERM_EDIT_USER);
+        return false;
+    }
+    return true;
+}
+
+/** Add a new user
+ *
+ * @param mixed[] $details Array of User details
+ *
+ * @return boolean true on success, false otherwise
+ */
+function add_new_user($details) {
+    global $db;
+    global $password_encryption;
+
+    if (!verify_permission('user_add_new')) {
+        error(ERR_PERM_ADD_USER);
+        return false;
+    } elseif (user_exists($details['username'])) {
+        error(ERR_USER_EXIST);
+        return false;
+    } elseif (!is_valid_email($details['email'])) {
+        error(ERR_INV_EMAIL);
+        return false;
+    } elseif ($details['active'] == 1) {
+        $active = 1;
+    } else {
+        $active = 0;
+    }
+
+    $query = "INSERT INTO users (username, password, fullname, email, description,";
+    if (verify_permission('user_edit_templ_perm')) {
+        $query .= ' perm_templ,';
+    }
+
+    if ($password_encryption == 'md5salt') {
+        $password_hash = gen_mix_salt($details['password']);
+    } else {
+        $password_hash = md5($details['password']);
+    }
+
+    $query .= " active) VALUES ("
+            . $db->quote($details['username'], 'text') . ", "
+            . $db->quote($password_hash, 'text') . ", "
+            . $db->quote($details['fullname'], 'text') . ", "
+            . $db->quote($details['email'], 'text') . ", "
+            . $db->quote($details['descr'], 'text') . ", ";
+    if (verify_permission('user_edit_templ_perm')) {
+        $query .= $db->quote($details['perm_templ'], 'integer') . ", ";
+    }
+    $query .= $db->quote($active, 'integer')
+            . ")";
+    $response = $db->query($query);
+    if (PEAR::isError($response)) {
+        error($response->getMessage());
+        return false;
+    }
+
+    return true;
+}

+ 32 - 0
devadmin/html/poweradmin-2.1.7/inc/version.inc.php

@@ -0,0 +1,32 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2009  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * File that contains system version
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+$VERSION = '2.1.7';

+ 75 - 0
devadmin/html/poweradmin-2.1.7/index.php

@@ -0,0 +1,75 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script which displays available actions
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+echo "     <h3>" . _('Welcome') . " " . $_SESSION["name"] . "</h3>\n";
+
+verify_permission('search') ? $perm_search = "1" : $perm_search = "0";
+verify_permission('zone_content_view_own') ? $perm_view_zone_own = "1" : $perm_view_zone_own = "0";
+verify_permission('zone_content_view_others') ? $perm_view_zone_other = "1" : $perm_view_zone_other = "0";
+verify_permission('supermaster_view') ? $perm_supermaster_view = "1" : $perm_supermaster_view = "0";
+verify_permission('zone_master_add') ? $perm_zone_master_add = "1" : $perm_zone_master_add = "0";
+verify_permission('zone_slave_add') ? $perm_zone_slave_add = "1" : $perm_zone_slave_add = "0";
+verify_permission('supermaster_add') ? $perm_supermaster_add = "1" : $perm_supermaster_add = "0";
+
+echo "    <ul>\n";
+echo "    <li><a href=\"index.php\">" . _('Index') . "</a></li>\n";
+if ($perm_search == "1") {
+    echo "    <li><a href=\"search.php\">" . _('Search zones and records') . "</a></li>\n";
+}
+if ($perm_view_zone_own == "1" || $perm_view_zone_other == "1") {
+    echo "    <li><a href=\"list_zones.php\">" . _('List zones') . "</a></li>\n";
+}
+if ($perm_zone_master_add) {
+    echo "    <li><a href=\"list_zone_templ.php\">" . _('List zone templates') . "</a></li>\n";
+}
+if ($perm_supermaster_view) {
+    echo "    <li><a href=\"list_supermasters.php\">" . _('List supermasters') . "</a></li>\n";
+}
+if ($perm_zone_master_add) {
+    echo "    <li><a href=\"add_zone_master.php\">" . _('Add master zone') . "</a></li>\n";
+}
+if ($perm_zone_slave_add) {
+    echo "    <li><a href=\"add_zone_slave.php\">" . _('Add slave zone') . "</a></li>\n";
+}
+if ($perm_supermaster_add) {
+    echo "    <li><a href=\"add_supermaster.php\">" . _('Add supermaster') . "</a></li>\n";
+}
+if ($_SESSION["auth_used"] != "ldap") {
+    echo "    <li><a href=\"change_password.php\">" . _('Change password') . "</a></li>\n";
+}
+echo "    <li><a href=\"users.php\">" . _('User administration') . "</a></li>\n";
+echo "    <li><a href=\"index.php?logout\">" . _('Logout') . "</a></li>\n";
+echo "   </ul>\n";
+
+include_once("inc/footer.inc.php");

+ 74 - 0
devadmin/html/poweradmin-2.1.7/list_perm_templ.php

@@ -0,0 +1,74 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that displays list of permission templates
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+verify_permission('templ_perm_edit') ? $perm_templ_perm_edit = "1" : $perm_templ_perm_edit = "0";
+
+$permission_templates = list_permission_templates();
+
+if ($perm_templ_perm_edit == "0") {
+    error(ERR_PERM_EDIT_PERM_TEMPL);
+} else {
+    echo "    <h2>" . _('Permission templates') . "</h2>\n";
+    echo "     <table>\n";
+    echo "      <tr>\n";
+    echo "       <th>&nbsp;</th>\n";
+    echo "       <th>" . _('Name') . "</th>\n";
+    echo "       <th>" . _('Description') . "</th>\n";
+    echo "      </tr>\n";
+
+    foreach ($permission_templates as $template) {
+
+        $perm_item_list = get_permissions_by_template_id($template['id'], true);
+        $perm_items = implode(', ', $perm_item_list);
+
+        echo "      <tr>\n";
+        if ($perm_templ_perm_edit == "1") {
+            echo "       <td>\n";
+            echo "        <a href=\"edit_perm_templ.php?id=" . $template["id"] . "\"><img src=\"images/edit.gif\" alt=\"[ " . _('Edit template') . " ]\"></a>\n";
+            echo "        <a href=\"delete_perm_templ.php?id=" . $template["id"] . "\"><img src=\"images/delete.gif\" alt=\"[ " . _('Delete template') . " ]\"></a>\n";
+            echo "       </td>\n";
+        } else {
+            echo "       <td>&nbsp;</td>\n";
+        }
+        echo "       <td class=\"y\">" . $template['name'] . "</td>\n";
+        echo "       <td class=\"y\">" . $template['descr'] . "</td>\n";
+        echo "      </tr>\n";
+    }
+
+    echo "     </table>\n";
+    echo "     <ul>\n";
+    echo "      <li><a href=\"add_perm_templ.php\">" . _('Add permission template') . "</a>.</li>\n";
+    echo "     </ul>\n";
+}
+
+include_once("inc/footer.inc.php");

+ 72 - 0
devadmin/html/poweradmin-2.1.7/list_supermasters.php

@@ -0,0 +1,72 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that displays supermasters list
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+(verify_permission('supermaster_view')) ? $perm_sm_view = "1" : $perm_sm_view = "0";
+(verify_permission('supermaster_edit')) ? $perm_sm_edit = "1" : $perm_sm_edit = "0";
+
+$supermasters = get_supermasters();
+$num_supermasters = ($supermasters == -1) ? 0 : count($supermasters);
+
+echo "     <h2>" . _('List supermasters') . "</h2>\n";
+echo "     <table>\n";
+echo "      <tr>\n";
+echo "       <th>&nbsp;</th>\n";
+echo "       <th>" . _('IP address of supermaster') . "</th>\n";
+echo "       <th>" . _('Hostname in NS record') . "</th>\n";
+echo "       <th>" . _('Account') . "</th>\n";
+echo "      </tr>\n";
+if ($num_supermasters == "0") {
+    echo "      <tr>\n";
+    echo "       <td class=\"n\">&nbsp;</td>\n";
+    echo "       <td class=\"n\" colspan=\"3\">\n";
+    echo "        " . _('There are no zones to show in this listing.') . "\n";
+    echo "       </td>\n";
+    echo "      </tr>\n";
+} else {
+    foreach ($supermasters as $c) {
+        echo "      <tr>\n";
+        if ($perm_sm_edit == "1") {
+            echo "        <td class=\"n\"><a href=\"delete_supermaster.php?master_ip=" . $c['master_ip'] . "&amp;ns_name=" . $c['ns_name'] . "\"><img src=\"images/delete.gif\" title=\"" . _('Delete supermaster') . ' ' . $c['master_ip'] . "\" alt=\"[  " . _('Delete supermaster') . " ]\"></a></td>\n";
+        } else {
+            echo "<td>&nbsp;</td>\n";
+        }
+        echo "       <td class=\"y\">" . $c['master_ip'] . "</td>\n";
+        echo "       <td class=\"y\">" . $c['ns_name'] . "</td>\n";
+        echo "       <td class=\"y\">" . $c['account'] . "</td>\n";
+        echo "      </tr>\n";
+    }
+}
+echo "     </table>\n";
+
+include_once("inc/footer.inc.php");

+ 72 - 0
devadmin/html/poweradmin-2.1.7/list_zone_templ.php

@@ -0,0 +1,72 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that displays list of zone templates
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+verify_permission('zone_master_add') ? $perm_zone_master_add = "1" : $perm_zone_master_add = "0";
+
+$zone_templ = get_list_zone_templ($_SESSION['userid']);
+$username = get_fullname_from_userid($_SESSION['userid']);
+
+if ($perm_zone_master_add == "0") {
+    error(ERR_PERM_EDIT_ZONE_TEMPL);
+} else {
+    echo "    <h2>" . _('Zone templates for') . " " . $username . "</h2>\n";
+    echo "     <table>\n";
+    echo "      <tr>\n";
+    echo "       <th>&nbsp;</th>\n";
+    echo "       <th>" . _('Name') . "</th>\n";
+    echo "       <th>" . _('Description') . "</th>\n";
+    echo "      </tr>\n";
+
+    foreach ($zone_templ as $template) {
+
+        echo "      <tr>\n";
+        if ($perm_zone_master_add == "1") {
+            echo "       <td>\n";
+            echo "        <a href=\"edit_zone_templ.php?id=" . $template["id"] . "\"><img src=\"images/edit.gif\" alt=\"[ " . _('Edit template') . " ]\"></a>\n";
+            echo "        <a href=\"delete_zone_templ.php?id=" . $template["id"] . "\"><img src=\"images/delete.gif\" alt=\"[ " . _('Delete template') . " ]\"></a>\n";
+            echo "       </td>\n";
+        } else {
+            echo "       <td>&nbsp;</td>\n";
+        }
+        echo "       <td class=\"y\">" . $template['name'] . "</td>\n";
+        echo "       <td class=\"y\">" . $template['descr'] . "</td>\n";
+        echo "      </tr>\n";
+    }
+
+    echo "     </table>\n";
+    echo "     <ul>\n";
+    echo "      <li><a href=\"add_zone_templ.php\">" . _('Add zone template') . "</a>.</li>\n";
+    echo "     </ul>\n";
+}
+
+include_once("inc/footer.inc.php");

+ 165 - 0
devadmin/html/poweradmin-2.1.7/list_zones.php

@@ -0,0 +1,165 @@
+<?php
+
+/*  Poweradmin, a friendly web-based admin tool for PowerDNS.
+ *  See <http://www.poweradmin.org> for more details.
+ *
+ *  Copyright 2007-2010  Rejo Zenger <rejo@zenger.nl>
+ *  Copyright 2010-2014  Poweradmin Development Team
+ *      <http://www.poweradmin.org/credits.html>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * Script that displays zone list
+ *
+ * @package     Poweradmin
+ * @copyright   2007-2010 Rejo Zenger <rejo@zenger.nl>
+ * @copyright   2010-2014 Poweradmin Development Team
+ * @license     http://opensource.org/licenses/GPL-3.0 GPL
+ */
+require_once("inc/toolkit.inc.php");
+include_once("inc/header.inc.php");
+
+global $pdnssec_use;
+
+if (verify_permission('zone_content_view_others')) {
+    $perm_view = "all";
+} elseif (verify_permission('zone_content_view_own')) {
+    $perm_view = "own";
+} else {
+    $perm_view = "none";
+}
+
+if (verify_permission('zone_content_edit_others')) {
+    $perm_edit = "all";
+} elseif (verify_permission('zone_content_edit_own')) {
+    $perm_edit = "own";
+} else {
+    $perm_edit = "none";
+}
+
+$count_zones_all = zone_count_ng("all");
+$count_zones_all_letterstart = zone_count_ng($perm_view, LETTERSTART);
+$count_zones_view = zone_count_ng($perm_view);
+$count_zones_edit = zone_count_ng($perm_edit);
+
+# OUCH: Temporary workaround for nasty sorting issue.
+# The problem is that sorting order is saved as a session variable
+# and it's used in two different screens - zone list and search results.
+# Both have different queries for getting data, but same order field
+# that causes failure.
+
+$zone_sort_by = ZONE_SORT_BY;
+if (!in_array(ZONE_SORT_BY, array('name', 'type', 'count_records'))) {
+    $zone_sort_by = 'name';
+}
+
+echo "    <h2>" . _('List zones') . "</h2>\n";
+
+if ($perm_view == "none") {
+    echo "     <p>" . _('You do not have the permission to see any zones.') . "</p>\n";
+} elseif (($count_zones_view > $iface_rowamount && $count_zones_all_letterstart == "0") || $count_zones_view == 0) {
+    if ($count_zones_view > $iface_rowamount) {
+        echo "<div class=\"showmax\">";
+        show_letters(LETTERSTART);
+        echo "</div>";
+    }
+    echo "     <p>" . _('There are no zones to show in this listing.') . "</p>\n";
+} else {
+    if (LETTERSTART != 'all') {
+        echo "     <div class=\"showmax\">\n";
+        show_pages($count_zones_all_letterstart, $iface_rowamount);
+        echo "     </div>\n";
+    }
+
+    if ($count_zones_view > $iface_rowamount) {
+        echo "<div class=\"showmax\">";
+        show_letters(LETTERSTART);
+        echo "</div>";
+    }
+    echo "     <form method=\"post\" action=\"delete_domains.php\">\n";
+    echo "     <table>\n";
+    echo "      <tr>\n";
+    echo "       <th>&nbsp;</th>\n";
+    echo "       <th>&nbsp;</th>\n";
+    echo "       <th><a href=\"list_zones.php?zone_sort_by=name\">" . _('Name') . "</a></th>\n";
+    echo "       <th><a href=\"list_zones.php?zone_sort_by=type\">" . _('Type') . "</a></th>\n";
+    echo "       <th><a href=\"list_zones.php?zone_sort_by=count_records\">" . _('Records') . "</a></th>\n";
+    echo "       <th>" . _('Owner') . "</th>\n";
+
+    if ($iface_zonelist_serial) {
+        echo "       <th>" . _('Serial') . "</th>\n";
+    }
+
+    if ($pdnssec_use) {
+        echo "       <th>" . _('DNSSEC') . "</th>\n";
+    }
+
+    echo "      </tr>\n";
+
+    if ($count_zones_view <= $iface_rowamount) {
+        $zones = get_zones($perm_view, $_SESSION['userid'], "all", ROWSTART, $iface_rowamount, $zone_sort_by);
+    } elseif (LETTERSTART == 'all') {
+        $zones = get_zones($perm_view, $_SESSION['userid'], "all", ROWSTART, 'all', $zone_sort_by);
+    } else {
+        $zones = get_zones($perm_view, $_SESSION['userid'], LETTERSTART, ROWSTART, $iface_rowamount, $zone_sort_by);
+        $count_zones_shown = ($zones == -1) ? 0 : count($zones);
+    }
+    foreach ($zones as $zone) {
+        if ($zone['count_records'] == NULL) {
+            $zone['count_records'] = 0;
+        }
+
+        $zone_owners = get_fullnames_owners_from_domainid($zone['id']);
+        if ($iface_zonelist_serial)
+            $serial = get_serial_by_zid($zone['id']);
+
+        if ($perm_edit != "all" || $perm_edit != "none") {
+            $user_is_zone_owner = verify_user_is_owner_zoneid($zone["id"]);
+        }
+        echo "         <tr>\n";
+        echo "          <td class=\"checkbox\">\n";
+        if ($count_zones_edit > 0 && ($perm_edit == "all" || ( $perm_edit == "own" && $user_is_zone_owner == "1"))) {
+            echo "       <input type=\"checkbox\" name=\"zone_id[]\" value=\"" . $zone['id'] . "\">";
+        }
+        echo "          </td>\n";
+        echo "          <td class=\"actions\">\n";
+        echo "           <a href=\"edit.php?name=" . $zone['name'] . "&id=" . $zone['id'] . "\"><img src=\"images/edit.gif\" title=\"" . _('View zone') . " " . $zone['name'] . "\" alt=\"[ " . _('View zone') . " " . $zone['name'] . " ]\"></a>\n";
+        if ($perm_edit == "all" || ( $perm_edit == "own" && $user_is_zone_owner == "1")) {
+            echo "           <a href=\"delete_domain.php?name=" . $zone['name'] . "&id=" . $zone["id"] . "\"><img src=\"images/delete.gif\" title=\"" . _('Delete zone') . " " . $zone['name'] . "\" alt=\"[ " . _('Delete zone') . " " . $zone['name'] . " ]\"></a>\n";
+        }
+        echo "          </td>\n";
+        echo "          <td class=\"name\">" . $zone["name"] . "</td>\n";
+        echo "          <td class=\"type\">" . strtolower($zone["type"]) . "</td>\n";
+        echo "          <td class=\"count\">" . $zone["count_records"] . "</td>\n";
+        echo "          <td class=\"owner\">" . $zone_owners . "</td>\n";
+        if ($iface_zonelist_serial) {
+            if ($serial != "") {
+                echo "          <td class=\"y\">" . $serial . "</td>\n";
+            } else {
+                echo "          <td class=\"n\">&nbsp;</td>\n";
+            }
+        }
+        if ($pdnssec_use) {
+            echo "          <td class=\"dnssec\"><input type=\"checkbox\" onclick=\"return false\" " . (dnssec_is_zone_secured($zone['name']) ? 'checked' : '') . "></td>\n";
+        }
+        echo "           </tr>\n";
+    }
+    echo "          </table>\n";
+    echo "      <input type=\"submit\" name=\"commit\" value=\"" . _('Delete zone(s)') . "\" class=\"button\">\n";
+    echo "     </form>\n";
+}
+
+include_once("inc/footer.inc.php");

+ 1168 - 0
devadmin/html/poweradmin-2.1.7/locale/cs_CZ/LC_MESSAGES/cs.po

@@ -0,0 +1,1168 @@
+# Poweradmin translation.
+# Copyright (C) 2011 Poweradmin Development Team
+# This file is distributed under the same license as the Poweradmin package.
+# 
+# Translators:
+#   <quimi@quimi.cz>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: Poweradmin\n"
+"Report-Msgid-Bugs-To: https://github.com/poweradmin/poweradmin/issues\n"
+"POT-Creation-Date: 2011-07-08 23:45+0300\n"
+"PO-Revision-Date: 2011-11-03 13:04+0000\n"
+"Last-Translator: quimi <quimi@quimi.cz>\n"
+"Language-Team: Czech (http://www.transifex.net/projects/p/poweradmin/team/cs/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: cs\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
+
+#: edit_record.php:58
+msgid "Edit record in zone"
+msgstr ""
+
+#: edit_record.php:67 list_perm_templ.php:36 edit_zone_templ.php:96
+#: edit_zone_templ.php:173 search.php:65 search.php:119 add_perm_templ.php:44
+#: add_perm_templ.php:55 add_record.php:120 delete_domains.php:56
+#: add_zone_templ_record.php:99 edit_zone_templ_record.php:61 edit.php:143
+#: edit.php:240 list_zones.php:67 add_zone_templ.php:45 list_zone_templ.php:37
+#: edit_perm_templ.php:53 edit_perm_templ.php:65
+msgid "Name"
+msgstr "Jméno"
+
+#: edit_record.php:69 edit_zone_templ.php:97 search.php:66 search.php:120
+#: add_record.php:122 add_zone_master.php:121 delete_domains.php:58
+#: add_zone_templ_record.php:101 edit_zone_templ_record.php:63 edit.php:144
+#: edit.php:242 edit.php:349 list_zones.php:68 delete_domain.php:63
+msgid "Type"
+msgstr "Typ"
+
+#: edit_record.php:70 edit_zone_templ.php:99 search.php:121 add_record.php:124
+#: add_zone_templ_record.php:103 edit_zone_templ_record.php:64 edit.php:146
+#: edit.php:244
+msgid "Priority"
+msgstr "Priorita"
+
+#: edit_record.php:71 edit_zone_templ.php:98 search.php:122 add_record.php:123
+#: add_zone_templ_record.php:102 edit_zone_templ_record.php:65 edit.php:145
+#: edit.php:243
+msgid "Content"
+msgstr "Obsah"
+
+#: edit_record.php:72 edit_zone_templ.php:100 search.php:123
+#: add_record.php:125 add_zone_templ_record.php:104
+#: edit_zone_templ_record.php:66 edit.php:147 edit.php:245
+msgid "TTL"
+msgstr "TTL"
+
+#: edit_record.php:109 users.php:121 edit_comment.php:87 edit_user.php:141
+#: edit_zone_templ.php:163 edit_zone_templ.php:181 add_perm_templ.php:72
+#: edit_zone_templ_record.php:91 edit.php:227 delete_user.php:111
+#: edit_perm_templ.php:86 add_user.php:76
+msgid "Commit changes"
+msgstr "Potvrdit změny"
+
+#: edit_record.php:110 users.php:122 edit_comment.php:88 edit_user.php:142
+#: edit_zone_templ.php:164 edit_zone_templ_record.php:92 edit.php:228
+msgid "Reset changes"
+msgstr ""
+
+#: users.php:47 index.php:60 inc/header.inc.php:82
+msgid "User administration"
+msgstr ""
+
+#: users.php:52 edit_user.php:103 inc/auth.inc.php:133 install/index.php:93
+#: install/index.php:172 add_user.php:39
+msgid "Username"
+msgstr "Uživatelské jméno"
+
+#: users.php:53 edit_user.php:107 add_user.php:43
+msgid "Fullname"
+msgstr "Celé jméno"
+
+#: users.php:54 list_perm_templ.php:37 edit_user.php:132
+#: edit_zone_templ.php:177 add_perm_templ.php:48 add_perm_templ.php:56
+#: add_zone_templ.php:49 list_zone_templ.php:38 edit_perm_templ.php:57
+#: edit_perm_templ.php:66 add_user.php:67
+msgid "Description"
+msgstr "Popis"
+
+#: users.php:55 edit_user.php:115 add_user.php:51
+msgid "Email address"
+msgstr ""
+
+#: users.php:56 add_zone_master.php:132 edit.php:381
+msgid "Template"
+msgstr "Šablona"
+
+#: users.php:57 edit_user.php:136 add_user.php:71
+msgid "Enabled"
+msgstr "Povoleno"
+
+#: users.php:71 edit_user.php:98
+msgid "Edit user"
+msgstr ""
+
+#: users.php:75 delete_user.php:60
+msgid "Delete user"
+msgstr ""
+
+#: users.php:131 edit_perm_templ.php:47
+msgid "Edit permission template"
+msgstr ""
+
+#: users.php:135 add_user.php:35
+msgid "Add user"
+msgstr "Přidat uživatele"
+
+#: list_perm_templ.php:32
+msgid "Permission templates"
+msgstr ""
+
+#: list_perm_templ.php:48 list_zone_templ.php:46
+msgid "Edit template"
+msgstr ""
+
+#: list_perm_templ.php:49 list_zone_templ.php:47
+msgid "Delete template"
+msgstr ""
+
+#: list_perm_templ.php:61 add_perm_templ.php:40
+msgid "Add permission template"
+msgstr "Přidání šablony oprávnění"
+
+#: edit_comment.php:53
+msgid "Edit comment in zone"
+msgstr ""
+
+#: edit_user.php:111 inc/auth.inc.php:137 install/index.php:98
+#: install/index.php:177 add_user.php:47
+msgid "Password"
+msgstr "Heslo"
+
+#: edit_user.php:120 add_user.php:56
+msgid "Permission template"
+msgstr "Šablona oprávnění"
+
+#: edit_user.php:147
+#, php-format
+msgid "This user has been assigned the permission template \"%s\"."
+msgstr ""
+
+#: edit_user.php:149
+msgid "The description for this template is"
+msgstr ""
+
+#: edit_user.php:151
+msgid "Based on this template, this user has the following permissions"
+msgstr ""
+
+#: edit_zone_templ.php:82
+msgid "Edit zone template"
+msgstr ""
+
+#: edit_zone_templ.php:90
+msgid "This template zone does not have any records yet."
+msgstr ""
+
+#: edit_zone_templ.php:107 search.php:131 edit.php:161
+msgid "Edit record"
+msgstr ""
+
+#: edit_zone_templ.php:109 delete_zone_templ_record.php:53 search.php:136
+#: delete_record.php:66 edit.php:163
+msgid "Delete record"
+msgstr ""
+
+#: edit_zone_templ.php:145 add_zone_templ_record.php:139
+msgid "The following placeholders can be used in template records"
+msgstr "Následující symboly mohou být použity v šabloně záznamů"
+
+#: edit_zone_templ.php:148 add_zone_templ_record.php:142
+msgid "substituted with current zone name"
+msgstr "nahradit současný název zóny"
+
+#: edit_zone_templ.php:149 add_zone_templ_record.php:143
+msgid "substituted with current date and 2 numbers"
+msgstr "nahradit aktuální datum a 2 čísla"
+
+#: edit_zone_templ.php:155 edit.php:219
+msgid "Template Name"
+msgstr ""
+
+#: edit_zone_templ.php:159 edit.php:223
+msgid "Template Description"
+msgstr ""
+
+#: edit_zone_templ.php:165 edit.php:229
+msgid "Save as template"
+msgstr ""
+
+#: edit_zone_templ.php:166
+msgid "Update zones"
+msgstr ""
+
+#: edit_zone_templ.php:183 add_record.php:158 add_zone_templ_record.php:147
+#: edit.php:287
+msgid "Add record"
+msgstr "Přidat záznam"
+
+#: edit_zone_templ.php:184 delete_zone_templ.php:44
+msgid "Delete zone template"
+msgstr ""
+
+#: add_zone_slave.php:67 index.php:54 inc/header.inc.php:76
+msgid "Add slave zone"
+msgstr "Přidání slave zóna"
+
+#: add_zone_slave.php:73 add_zone_master.php:91
+msgid "Zone name"
+msgstr "Název zóny"
+
+#: add_zone_slave.php:79 edit.php:413
+msgid "IP address of master NS"
+msgstr "IP adresa hlavního NS"
+
+#: add_zone_slave.php:85 search.php:70 add_zone_master.php:102
+#: delete_domains.php:57 list_zones.php:70 delete_domain.php:62
+msgid "Owner"
+msgstr "Vlastník"
+
+#: add_zone_slave.php:106 add_zone_master.php:146
+msgid "Add zone"
+msgstr "Přidat zónu"
+
+#: delete_zone_templ.php:50 delete_zone_templ_record.php:74
+#: delete_domains.php:72 delete_record.php:94 delete_perm_templ.php:49
+#: delete_domain.php:72 delete_supermaster.php:61
+msgid "Are you sure?"
+msgstr ""
+
+#: delete_zone_templ.php:51 delete_zone_templ_record.php:75
+#: delete_domains.php:73 delete_record.php:95 delete_perm_templ.php:50
+#: delete_domain.php:73 delete_supermaster.php:62
+msgid "Yes"
+msgstr ""
+
+#: delete_zone_templ.php:52 delete_zone_templ_record.php:76
+#: delete_domains.php:74 delete_record.php:96 delete_perm_templ.php:51
+#: delete_domain.php:74 delete_supermaster.php:63
+msgid "No"
+msgstr ""
+
+#: index.php:26
+msgid "Welcome"
+msgstr ""
+
+#: index.php:37 inc/header.inc.php:59
+msgid "Index"
+msgstr ""
+
+#: index.php:39 search.php:32 inc/header.inc.php:61
+msgid "Search zones and records"
+msgstr ""
+
+#: index.php:42 inc/header.inc.php:64 list_zones.php:39
+msgid "List zones"
+msgstr ""
+
+#: index.php:45 inc/header.inc.php:67
+msgid "List zone templates"
+msgstr ""
+
+#: index.php:48 inc/header.inc.php:70 list_supermasters.php:32
+msgid "List supermasters"
+msgstr ""
+
+#: index.php:51 inc/header.inc.php:73 add_zone_master.php:82
+msgid "Add master zone"
+msgstr "Přidání Master zóny"
+
+#: index.php:57 inc/header.inc.php:79 add_supermaster.php:54
+#: add_supermaster.php:106
+msgid "Add supermaster"
+msgstr "Přidání supermastera"
+
+#: index.php:59 inc/header.inc.php:81 change_password.php:31
+#: change_password.php:49
+msgid "Change password"
+msgstr "Změna hesla"
+
+#: index.php:61 inc/header.inc.php:83
+msgid "Logout"
+msgstr ""
+
+#: search.php:61
+msgid "Zones found"
+msgstr ""
+
+#: search.php:67
+msgid "Master"
+msgstr ""
+
+#: search.php:79 edit.php:129
+msgid "Edit zone"
+msgstr ""
+
+#: search.php:84 list_zones.php:99 delete_domain.php:54
+msgid "Delete zone"
+msgstr "Odstranit zónu"
+
+#: search.php:115
+msgid "Records found"
+msgstr ""
+
+#: search.php:155
+msgid "Query"
+msgstr ""
+
+#: search.php:161
+msgid "Search"
+msgstr ""
+
+#: search.php:166
+msgid ""
+"Enter a hostname or IP address. SQL LIKE syntax supported: an underscore (_)"
+" in pattern matches any single character, a percent sign (%) matches any "
+"string of zero or more characters."
+msgstr ""
+
+#: inc/users.inc.php:382
+msgid "Password has been changed, please login."
+msgstr ""
+
+#: inc/record.inc.php:387
+msgid ""
+"You are trying to delete the SOA record. You are not allowed to remove it, "
+"unless you remove the entire zone."
+msgstr ""
+
+#: inc/record.inc.php:751
+msgid "Function returned an error (multiple zones matching this zone ID)."
+msgstr ""
+
+#: inc/toolkit.inc.php:33 reset_password.php:27
+msgid "You have to create a config.inc.php!"
+msgstr ""
+
+#: inc/toolkit.inc.php:154
+msgid "Show page"
+msgstr ""
+
+#: inc/toolkit.inc.php:173
+msgid "Show zones beginning with"
+msgstr ""
+
+#: inc/toolkit.inc.php:246
+msgid ""
+"Something has been successfully performed. What exactly, however, will "
+"remain a mystery."
+msgstr ""
+
+#: inc/toolkit.inc.php:258
+msgid "Success!"
+msgstr ""
+
+#: inc/toolkit.inc.php:269
+msgid "Successful!"
+msgstr ""
+
+#: inc/toolkit.inc.php:275
+msgid "back"
+msgstr ""
+
+#: inc/toolkit.inc.php:314
+msgid "Inactive"
+msgstr ""
+
+#: inc/toolkit.inc.php:318
+msgid "Active"
+msgstr ""
+
+#: inc/auth.inc.php:31
+msgid "You have logged out."
+msgstr ""
+
+#: inc/auth.inc.php:45
+msgid "Session expired, please login again."
+msgstr ""
+
+#: inc/auth.inc.php:93
+msgid "Authentication failed!"
+msgstr ""
+
+#: inc/auth.inc.php:106
+msgid ""
+"Authentication failed! - <a href=\"reset_password.php\">(forgot "
+"password)</a>"
+msgstr ""
+
+#: inc/auth.inc.php:127
+msgid "Log in"
+msgstr ""
+
+#: inc/auth.inc.php:143
+msgid "Go"
+msgstr ""
+
+#: inc/error.inc.php:24
+msgid "You do not have the permission to perform searches."
+msgstr ""
+
+#: inc/error.inc.php:25
+msgid "You do not have the permission to add a record to this zone."
+msgstr ""
+
+#: inc/error.inc.php:26
+msgid "You do not have the permission to edit this record."
+msgstr ""
+
+#: inc/error.inc.php:27
+msgid "You do not have the permission to view this record."
+msgstr ""
+
+#: inc/error.inc.php:28
+msgid "You do not have the permission to delete this record."
+msgstr ""
+
+#: inc/error.inc.php:29
+msgid "You do not have the permission to add a master zone."
+msgstr ""
+
+#: inc/error.inc.php:30
+msgid "You do not have the permission to add a slave zone."
+msgstr ""
+
+#: inc/error.inc.php:31
+msgid "You do not have the permission to delete a zone."
+msgstr ""
+
+#: inc/error.inc.php:32
+msgid "You do not have the permission to view this comment."
+msgstr ""
+
+#: inc/error.inc.php:33
+msgid "You do not have the permission to edit this comment."
+msgstr ""
+
+#: inc/error.inc.php:34
+msgid "You do not have the permission to delete a supermaster."
+msgstr ""
+
+#: inc/error.inc.php:35
+msgid "You do not have the permission to view this zone."
+msgstr ""
+
+#: inc/error.inc.php:36
+msgid "You do not have the permission to edit this user."
+msgstr ""
+
+#: inc/error.inc.php:37
+msgid "You do not have the permission to edit permission templates."
+msgstr ""
+
+#: inc/error.inc.php:38
+msgid "You do not have the permission to delete permission templates."
+msgstr ""
+
+#: inc/error.inc.php:39
+msgid "You do not have the permission to add a new user."
+msgstr ""
+
+#: inc/error.inc.php:40
+msgid "You do not have the permission to delete this user."
+msgstr ""
+
+#: inc/error.inc.php:41
+msgid "You do not have the permission to edit zone templates."
+msgstr ""
+
+#: inc/error.inc.php:42
+msgid "You do not have the permission to delete zone templates."
+msgstr ""
+
+#: inc/error.inc.php:43
+msgid "You do not have the permission to add a zone template."
+msgstr ""
+
+#: inc/error.inc.php:46
+msgid "This is an invalid zone name."
+msgstr ""
+
+#: inc/error.inc.php:47
+msgid "There is already a supermaster with this IP address."
+msgstr ""
+
+#: inc/error.inc.php:48
+msgid "There is already a zone with this name."
+msgstr ""
+
+#: inc/error.inc.php:51
+msgid "Username exist already, please choose another one."
+msgstr ""
+
+#: inc/error.inc.php:52
+msgid "User does not exist."
+msgstr ""
+
+#: inc/error.inc.php:53
+msgid "You did not enter the correct current password."
+msgstr ""
+
+#: inc/error.inc.php:54
+msgid "The two new password fields do not match."
+msgstr ""
+
+#: inc/error.inc.php:55
+msgid "This template is assigned to at least one user."
+msgstr ""
+
+#: inc/error.inc.php:58
+msgid "Invalid or unexpected input given."
+msgstr ""
+
+#: inc/error.inc.php:59
+#, php-format
+msgid "Invalid argument(s) given to function %s"
+msgstr ""
+
+#: inc/error.inc.php:60
+#, php-format
+msgid "Invalid argument(s) given to function %s %s"
+msgstr ""
+
+#: inc/error.inc.php:61
+msgid "Unknown error."
+msgstr ""
+
+#: inc/error.inc.php:62
+msgid "Enter a valid email address."
+msgstr ""
+
+#: inc/error.inc.php:63
+msgid "There is no zone with this ID."
+msgstr ""
+
+#: inc/error.inc.php:64
+msgid "There is no zone template with this ID."
+msgstr ""
+
+#: inc/error.inc.php:65
+msgid ""
+"The <a href=\"install/\">install/</a> directory exists, you must remove it "
+"first before proceeding."
+msgstr ""
+
+#: inc/error.inc.php:66
+msgid ""
+"Zone template with this name already exists, please choose another one."
+msgstr ""
+
+#: inc/error.inc.php:67
+msgid "Template name can't be an empty string."
+msgstr ""
+
+#: inc/error.inc.php:70
+msgid "No database name has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:71
+msgid "No database host has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:72
+msgid "No database username has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:73
+msgid "No database password has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:74
+msgid "No or unknown database type has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:75
+msgid "No database file has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:76
+msgid ""
+"It seems that you forgot to update the database after Poweradmin upgrade to "
+"new version."
+msgstr ""
+
+#: inc/error.inc.php:79
+msgid "Your content field doesnt have a legit value."
+msgstr ""
+
+#: inc/error.inc.php:80
+msgid "Invalid hostname."
+msgstr ""
+
+#: inc/error.inc.php:81
+msgid "You have invalid characters in your hostname."
+msgstr ""
+
+#: inc/error.inc.php:82
+msgid "A hostname can not start or end with a dash."
+msgstr ""
+
+#: inc/error.inc.php:83
+msgid "Given hostname or one of the labels is too short or too long."
+msgstr ""
+
+#: inc/error.inc.php:84
+msgid "Given hostname has too many slashes."
+msgstr ""
+
+#: inc/error.inc.php:85
+msgid "Unknown record type."
+msgstr ""
+
+#: inc/error.inc.php:86
+msgid "This is not a valid IPv4 or IPv6 address."
+msgstr ""
+
+#: inc/error.inc.php:87
+msgid "This is not a valid IPv6 address."
+msgstr ""
+
+#: inc/error.inc.php:88
+msgid "This is not a valid IPv4 address."
+msgstr ""
+
+#: inc/error.inc.php:89
+msgid ""
+"This is not a valid CNAME. Did you assign an MX or NS record to the record?"
+msgstr ""
+
+#: inc/error.inc.php:90
+msgid ""
+"This is not a valid record. There is already exists a CNAME with this name."
+msgstr ""
+
+#: inc/error.inc.php:91
+msgid ""
+"This is not a valid CNAME. There is already exists an A, AAAA or CNAME with "
+"this name."
+msgstr ""
+
+#: inc/error.inc.php:92
+msgid ""
+"You can not point a NS or MX record to a CNAME record. Remove or rame the "
+"CNAME record first, or take another name."
+msgstr ""
+
+#: inc/error.inc.php:93
+msgid "NS records must be a hostnames."
+msgstr ""
+
+#: inc/error.inc.php:94
+msgid "A prio field should be numeric."
+msgstr ""
+
+#: inc/error.inc.php:95
+msgid ""
+"Invalid value for name field of SOA record. It should be the name of the "
+"zone."
+msgstr ""
+
+#: inc/error.inc.php:96
+msgid "You have an error in the MNAME field of the SOA record."
+msgstr ""
+
+#: inc/error.inc.php:97
+msgid "Invalid value for content field of HINFO record."
+msgstr ""
+
+#: inc/error.inc.php:98
+msgid "The hostname is too long."
+msgstr ""
+
+#: inc/error.inc.php:99
+msgid "You are using an invalid top level domain."
+msgstr ""
+
+#: inc/error.inc.php:100
+msgid "Invalid value for TTL field. It should be numeric."
+msgstr ""
+
+#: inc/error.inc.php:101
+msgid "Invalid value for prio field. It should be numeric."
+msgstr ""
+
+#: inc/error.inc.php:102
+msgid "Invalid value for name field of SRV record."
+msgstr ""
+
+#: inc/error.inc.php:103
+msgid "Invalid value for the priority field of the SRV record."
+msgstr ""
+
+#: inc/error.inc.php:104
+msgid "Invalid value for the weight field of the SRV record."
+msgstr ""
+
+#: inc/error.inc.php:105
+msgid "Invalid SRV target."
+msgstr ""
+
+#: inc/error.inc.php:106
+msgid "Invalid characters have been used in this record."
+msgstr ""
+
+#: inc/error.inc.php:109
+msgid "Zone has been added successfully."
+msgstr ""
+
+#: inc/error.inc.php:110
+msgid "Zone has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:111
+msgid "Zones have been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:112
+msgid "The user has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:113
+msgid "The user has been created successfully."
+msgstr ""
+
+#: inc/error.inc.php:114
+msgid "The user has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:115
+msgid "The record has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:116
+msgid "The record has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:117
+msgid "The comment has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:118
+msgid "The supermaster has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:119
+msgid "The supermaster has been added successfully."
+msgstr ""
+
+#: inc/error.inc.php:120
+msgid "The permission template has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:121
+msgid "The permission template has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:122
+msgid "Zone template has been added successfully."
+msgstr ""
+
+#: inc/error.inc.php:123
+msgid "Zone template has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:124
+msgid "Zone template has been deleted successfully."
+msgstr ""
+
+#: change_password.php:35
+msgid "Current password"
+msgstr "Aktuální heslo"
+
+#: change_password.php:39 change_password.php:43
+msgid "New password"
+msgstr "Nové heslo"
+
+#: add_record.php:102 add_zone_templ_record.php:81
+msgid "The record was successfully added."
+msgstr "Záznam byl úspěšně přidán."
+
+#: add_record.php:111
+msgid "Add record to zone"
+msgstr "Přidat záznam do zóny"
+
+#: delete_domains.php:41
+msgid "Delete zones"
+msgstr ""
+
+#: delete_domains.php:63 delete_domain.php:68
+#, php-format
+msgid ""
+"You are about to delete a slave zone of which the master nameserver, %s, is "
+"a supermaster. Deleting the zone now, will result in temporary removal only."
+" Whenever the supermaster sends a notification for this zone, it will be "
+"added again!"
+msgstr ""
+
+#: add_supermaster.php:57
+msgid "You do not have the permission to add a new supermaster."
+msgstr "Nemáte oprávnění k přidání nového supermastera"
+
+#: add_supermaster.php:62 list_supermasters.php:36
+msgid "IP address of supermaster"
+msgstr "IP adresa supermastera"
+
+#: add_supermaster.php:72 list_supermasters.php:37 delete_supermaster.php:58
+msgid "Hostname in NS record"
+msgstr "Hostname v NS záznamu"
+
+#: add_supermaster.php:82 list_supermasters.php:38 delete_supermaster.php:59
+msgid "Account"
+msgstr "Účet"
+
+#: add_zone_templ_record.php:90
+msgid "Add record to zone template"
+msgstr "Přidat záznam do zóny šablony"
+
+#: edit_zone_templ_record.php:52
+msgid "Edit record in zone template"
+msgstr ""
+
+#: delete_record.php:92
+msgid ""
+"You are trying to delete a record that is needed for this zone to work."
+msgstr ""
+
+#: delete_perm_templ.php:43
+msgid "Delete permission template"
+msgstr ""
+
+#: edit.php:137
+msgid "This zone does not have any records. Weird."
+msgstr ""
+
+#: edit.php:210
+msgid "Edit comment"
+msgstr ""
+
+#: edit.php:295
+msgid "Owner of zone"
+msgstr ""
+
+#: edit.php:301
+msgid "No owner set for this zone."
+msgstr ""
+
+#: edit.php:310 delete_user.php:77
+msgid "Delete"
+msgstr ""
+
+#: edit.php:343
+msgid "Add"
+msgstr ""
+
+#: edit.php:372 edit.php:401 edit.php:424
+msgid "Change"
+msgstr ""
+
+#: list_zones.php:42
+msgid "You do not have the permission to see any zones."
+msgstr ""
+
+#: list_zones.php:49 list_supermasters.php:44
+msgid "There are no zones to show in this listing."
+msgstr ""
+
+#: list_zones.php:69
+msgid "Records"
+msgstr ""
+
+#: list_zones.php:71
+msgid "Serial"
+msgstr ""
+
+#: list_zones.php:97
+msgid "View zone"
+msgstr ""
+
+#: list_zones.php:116
+msgid "Delete zone(s)"
+msgstr ""
+
+#: install/index.php:47
+msgid "Installation step"
+msgstr ""
+
+#: install/index.php:62 install/index.php:80 install/index.php:135
+#: install/index.php:207 install/index.php:275 install/index.php:312
+msgid "Go to step"
+msgstr ""
+
+#: install/index.php:69
+msgid ""
+"This installer expects you to have a PowerDNS database accessable from this "
+"server. This installer also expects you to have never ran Poweradmin before,"
+" or that you want to overwrite the Poweradmin part of the database. If you "
+"have had Poweradmin running before, any data in the following tables will be"
+" destroyed: perm_items, perm_templ, perm_templ_items, users and zones. This "
+"installer will, of course, not touch the data in the PowerDNS tables of the "
+"database. However, it is recommended that you create a backup of your "
+"database before proceeding."
+msgstr ""
+
+#: install/index.php:71
+msgid ""
+"The alternative for this installer is a manual installation. Refer to the "
+"poweradmin.org website if you want to go down that road."
+msgstr ""
+
+#: install/index.php:73
+msgid ""
+"Finally, if you see any errors during the installation process, a problem "
+"report would be appreciated. You can report problems (and ask for help) on "
+"the <a href=\"http://groups.google.com/group/poweradmin\" target=\"blank\">poweradmin</a> mailinglist."
+msgstr ""
+
+#: install/index.php:75
+msgid "Do you want to proceed now?"
+msgstr ""
+
+#: install/index.php:86
+msgid ""
+"To prepare the database for using Poweradmin, the installer needs to modify "
+"the PowerDNS database. It will add a number of tables and it will fill these"
+" tables with some data. If the tables are already present, the installer "
+"will drop them first."
+msgstr ""
+
+#: install/index.php:88
+msgid ""
+"To do all of this, the installer needs to access the database with an "
+"account which has sufficient rights. If you trust the installer, you may "
+"give it the username and password of the database user root. Otherwise, make"
+" sure the user has enough rights, before actually proceeding."
+msgstr ""
+
+#: install/index.php:95
+msgid ""
+"The username to use to connect to the database, make sure the username has "
+"sufficient rights to perform administrative task to the PowerDNS database "
+"(the installer wants to drop, create and fill tables to the database)."
+msgstr ""
+
+#: install/index.php:100 install/index.php:179
+msgid "The password for this username."
+msgstr ""
+
+#: install/index.php:103
+msgid "Hostname"
+msgstr ""
+
+#: install/index.php:105
+msgid ""
+"The hostname on which the PowerDNS database resides. Frequently, this will "
+"be \"localhost\"."
+msgstr ""
+
+#: install/index.php:108
+msgid "DB Port"
+msgstr ""
+
+#: install/index.php:110
+msgid "The port the database server is listening on."
+msgstr ""
+
+#: install/index.php:113
+msgid "Database"
+msgstr ""
+
+#: install/index.php:115
+msgid "The name of the PowerDNS database."
+msgstr ""
+
+#: install/index.php:118
+msgid "Database type"
+msgstr ""
+
+#: install/index.php:124
+msgid "The type of the PowerDNS database."
+msgstr ""
+
+#: install/index.php:127
+msgid "Poweradmin administrator password"
+msgstr ""
+
+#: install/index.php:129
+msgid ""
+"The password of the Poweradmin administrator. This administrator has full "
+"rights to Poweradmin using the web interface."
+msgstr ""
+
+#: install/index.php:141
+msgid "Updating database..."
+msgstr ""
+
+#: install/index.php:166
+msgid "done!"
+msgstr ""
+
+#: install/index.php:168
+msgid "Now we will gather all details for the configuration itself."
+msgstr ""
+
+#: install/index.php:174
+msgid ""
+"The username for Poweradmin. This new user will have limited rights only."
+msgstr ""
+
+#: install/index.php:182
+msgid "Hostmaster"
+msgstr ""
+
+#: install/index.php:184
+msgid ""
+"When creating SOA records and no hostmaster is provided, this value here "
+"will be used. Should be in the form \"hostmaster.example.net\"."
+msgstr ""
+
+#: install/index.php:187
+msgid "Primary nameserver"
+msgstr ""
+
+#: install/index.php:189
+msgid ""
+"When creating new zones using the template, this value will be used as "
+"primary nameserver. Should be like \"ns1.example.net\"."
+msgstr ""
+
+#: install/index.php:192
+msgid "Secondary nameserver"
+msgstr ""
+
+#: install/index.php:194
+msgid ""
+"When creating new zones using the template, this value will be used as "
+"secondary nameserver. Should be like \"ns2.example.net\"."
+msgstr ""
+
+#: install/index.php:230
+msgid ""
+"You now want to give limited rights to Poweradmin so it can update the data "
+"in the tables. To do this, you should create a new user and give it rights "
+"to select, delete, insert and update records in the PowerDNS database."
+msgstr ""
+
+#: install/index.php:241
+msgid "In MySQL you should now perform the following command:"
+msgstr ""
+
+#: install/index.php:244
+msgid "On PgSQL you would use:"
+msgstr ""
+
+#: install/index.php:259
+msgid ""
+"After you have added the new user, proceed with this installation procedure."
+msgstr ""
+
+#: install/index.php:301
+msgid "The installer was able to write to the file \""
+msgstr ""
+
+#: install/index.php:301
+msgid ""
+"\". A basic configuration, based on the details you have given, has been "
+"created."
+msgstr ""
+
+#: install/index.php:303
+msgid "The installer is unable to write to the file \""
+msgstr ""
+
+#: install/index.php:303
+msgid ""
+"\" (which is in itself good). The configuration is printed here. You should "
+"now create the file \""
+msgstr ""
+
+#: install/index.php:303
+msgid ""
+"\" in the Poweradmin root directory yourself. It should contain the "
+"following few lines:"
+msgstr ""
+
+#: install/index.php:318
+msgid ""
+"Now we have finished the configuration, you should (must!) remove the "
+"directory \"install/\" from the Poweradmin root directory. You will not be "
+"able to use Poweradmin if it exists. Do it now."
+msgstr ""
+
+#: install/index.php:319
+msgid ""
+"After you have removed the directory, you can login to <a "
+"href=\"../index.php\">Poweradmin</a> with username \"admin\" and password \""
+msgstr ""
+
+#: install/index.php:319
+msgid ""
+"\". You are highly encouraged to change these as soon as you are logged in."
+msgstr ""
+
+#: list_supermasters.php:51 delete_supermaster.php:45
+msgid "Delete supermaster"
+msgstr ""
+
+#: add_zone_templ.php:41
+msgid "Add zone template for"
+msgstr "Přidat šablonu zóny pro"
+
+#: add_zone_templ.php:53 list_zone_templ.php:59
+msgid "Add zone template"
+msgstr "Přidání zóny šablony"
+
+#: delete_user.php:71
+msgid ""
+"You are about to delete a user. This user is owner for a number of zones. "
+"Please decide what to do with these zones."
+msgstr ""
+
+#: delete_user.php:76
+msgid "Zone"
+msgstr ""
+
+#: delete_user.php:78
+msgid "Leave"
+msgstr ""
+
+#: delete_user.php:79
+msgid "Add new owner"
+msgstr ""
+
+#: delete_user.php:80
+msgid "Owner to be added"
+msgstr ""
+
+#: delete_user.php:106
+msgid "Really delete this user?"
+msgstr ""
+
+#: reset_password.php:89
+msgid "Reset Password"
+msgstr ""
+
+#: reset_password.php:93
+msgid "Registered Email Address"
+msgstr ""
+
+#: reset_password.php:99
+msgid "Reset password"
+msgstr ""
+
+#: list_zone_templ.php:33
+msgid "Zone templates for"
+msgstr ""
+
+

+ 88 - 0
devadmin/html/poweradmin-2.1.7/locale/cs_CZ/LC_MESSAGES/cs_db.po

@@ -0,0 +1,88 @@
+# Poweradmin translation.
+# Copyright (C) 2011 Poweradmin Development Team
+# This file is distributed under the same license as the Poweradmin package.
+# 
+# Translators:
+#   <quimi@quimi.cz>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: Poweradmin\n"
+"Report-Msgid-Bugs-To: https://github.com/poweradmin/poweradmin/issues\n"
+"POT-Creation-Date: 2011-07-08 23:45+0300\n"
+"PO-Revision-Date: 2011-11-03 12:59+0000\n"
+"Last-Translator: quimi <quimi@quimi.cz>\n"
+"Language-Team: Czech (http://www.transifex.net/projects/p/poweradmin/team/cs/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: cs\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
+
+msgid "User is allowed to add new master zones."
+msgstr "Uživatel má právo přidávat nové master zóny."
+
+msgid "User is allowed to add new slave zones."
+msgstr "Uživatel má právo přidávat nové slave zóny."
+
+msgid "User is allowed to see the content and meta data of zones he owns."
+msgstr "Uživatel má právo vidět obsah a meta data zón, které vlastní."
+
+msgid "User is allowed to edit the content of zones he owns."
+msgstr "Uživatel má právo upravit obsah zón, které vlastní."
+
+msgid "User is allowed to edit the meta data of zones he owns."
+msgstr "Uživatel má právo upravit meta data zón, které vlastní."
+
+msgid ""
+"User is allowed to see the content and meta data of zones he does not own."
+msgstr "Uživatel má právo vidět obsah a meta data zón, které nevlastní."
+
+msgid "User is allowed to edit the content of zones he does not own."
+msgstr "Uživatel má právo upravit obsah zón, které nevlastní."
+
+msgid "User is allowed to edit the meta data of zones he does not own."
+msgstr "Uživatel má právo upravit meta data zón, které nevlastní."
+
+msgid "User is allowed to perform searches."
+msgstr "Uživatel má právo vyhledávat."
+
+msgid "User is allowed to view supermasters."
+msgstr "Uživatel má právo prohlížet supermastery."
+
+msgid "User is allowed to add new supermasters."
+msgstr "Uživatel má právo přidávat nového supermastera."
+
+msgid "User is allowed to edit supermasters."
+msgstr "Uživatel má právo upravit supermastera."
+
+msgid "User has full access. God-like. Redeemer."
+msgstr "Uživatel má plný přístup. Jako bůh. Vykupitel."
+
+msgid "User is allowed to see other users and their details."
+msgstr "Uživatel má právo vidět ostatní uživatele a jejich detaily."
+
+msgid "User is allowed to add new users."
+msgstr "Uživatel má právo přidávat nové uživatele."
+
+msgid "User is allowed to edit their own details."
+msgstr "Uživatel má právo editovat jejich vlastní údaje."
+
+msgid "User is allowed to edit other users."
+msgstr "Uživatel má právo upravovat ostatní uživatele."
+
+msgid "User is allowed to edit the password of other users."
+msgstr "Uživatel má právo editovat hesla ostatních uživatelů."
+
+msgid ""
+"User is allowed to change the permission template that is assigned to a "
+"user."
+msgstr ""
+"Uživatel má právo změnit oprávnění šablonu, která je k němu přiřazena."
+
+msgid "User is allowed to add new permission templates."
+msgstr "Uživatel má právo přidávat novou šablonu oprávnění."
+
+msgid "User is allowed to edit existing permission templates."
+msgstr "Uživatel má právo upravit stávající šablony oprávnění."
+
+

BIN
devadmin/html/poweradmin-2.1.7/locale/cs_CZ/LC_MESSAGES/messages.mo


+ 979 - 0
devadmin/html/poweradmin-2.1.7/locale/de_DE/LC_MESSAGES/de.po

@@ -0,0 +1,979 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+
+msgid ""
+msgstr ""
+"Project-Id-Version: poweradmin 2.0.3\n"
+"Report-Msgid-Bugs-To: Georg K&auml;fer <gkaefer@backbone.co.at>\n"
+"POT-Creation-Date: 2009-06-10 14:42+0200\n"
+"PO-Revision-Date: 2009-06-10 14:42+0200\n"
+"Last-Translator: Georg K&auml;fer <gkaefer@backbone.co.at>\n"
+"Language-Team: poweradmin german\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "The install/ directory exists, you must remove it first before proceeding."
+msgstr "Das install/ Verzeichnis existiert, Sie m&uuml;ssen es zuerst entfernen um fortfahren zu k&ouml;nnen."
+
+msgid "There is no zone with this ID."
+msgstr "Es existiert keine Zone mit dieser ID"
+
+#: add_perm_templ.php:35 list_perm_templ.php:60
+msgid "Add permission template"
+msgstr "Berechtigungs-Vorlage hinzuf&uuml;gen"
+
+#: add_perm_templ.php:39 add_perm_templ.php:50 add_record.php:86
+#: edit_perm_templ.php:51 edit_perm_templ.php:63 edit.php:92
+#: edit_record.php:63 list_perm_templ.php:35 list_zones.php:57 search.php:52
+#: search.php:85
+msgid "Name"
+msgstr "Name"
+
+#: add_perm_templ.php:43 add_perm_templ.php:51 add_user.php:63
+#: edit_perm_templ.php:55 edit_perm_templ.php:64 edit_user.php:129
+#: list_perm_templ.php:36 users.php:46
+msgid "Description"
+msgstr "Beschreibung"
+
+#: add_perm_templ.php:59 edit_perm_templ.php:80 edit_user.php:151
+msgid "descr"
+msgstr "descr"
+
+#: add_perm_templ.php:63 add_user.php:72 delete_user.php:101
+#: edit_perm_templ.php:84 edit.php:135 edit_record.php:105 edit_user.php:138
+#: users.php:104
+msgid "Commit changes"
+msgstr "&Auml;nderungen durchf&uuml;hren"
+
+#: edit.php:104
+msgid "Reset changes"
+msgstr "&Auml;nderungen r&uuml;cksetzen"
+
+#: add_record.php:71
+msgid "The record was successfully added."
+msgstr "Der Eintrag wurde erfolgreich hinzugef&uuml;gt."
+
+#: add_record.php:77
+msgid "Add record to zone"
+msgstr "Eintrag zur Zone hinzuf&uuml;gen"
+
+#: add_record.php:88 add_zone_master.php:115 delete_domain.php:58 edit.php:93
+#: edit.php:199 edit_record.php:65 list_zones.php:58 search.php:53
+#: search.php:86
+msgid "Type"
+msgstr "Typ"
+
+#: add_record.php:89 edit.php:95 edit_record.php:66 search.php:87
+msgid "Priority"
+msgstr "Priorit&auml;t"
+
+#: add_record.php:90 edit.php:94 edit_record.php:67 search.php:88
+msgid "Content"
+msgstr "Inhalt"
+
+#: add_record.php:91 edit.php:96 edit_record.php:68 search.php:89
+msgid "TTL"
+msgstr "TTL"
+
+#: add_record.php:124 edit.php:141
+msgid "Add record"
+msgstr "Eintrag hinzuf&uuml;gen"
+
+#: add_supermaster.php:40 add_supermaster.php:80 index.php:54
+#: inc/header.inc.php:66
+msgid "Add supermaster"
+msgstr "Supermaster hinzuf&uuml;gen"
+
+#: add_supermaster.php:43
+msgid "You do not have the permission to add a new supermaster."
+msgstr "Sie haben nicht die Berechtigung einen Supermaster hinzuzuf&uuml;gen."
+
+#: add_supermaster.php:48 list_supermasters.php:34
+msgid "IP address of supermaster"
+msgstr "IP Adresse des Supermaster"
+
+#: add_supermaster.php:58 delete_supermaster.php:52 list_supermasters.php:35
+msgid "Hostname in NS record"
+msgstr "Hostname im NS Eintrag"
+
+#: add_supermaster.php:68 delete_supermaster.php:53 list_supermasters.php:36
+msgid "Account"
+msgstr "Benutzerkonto"
+
+#: add_user.php:33 users.php:114
+msgid "Add user"
+msgstr "Benutzer hinzuf&uuml;gen"
+
+#: add_user.php:37 edit_user.php:102 users.php:44
+msgid "Username"
+msgstr "Benutzername"
+
+#: add_user.php:41 edit_user.php:106 users.php:45
+msgid "Fullname"
+msgstr "Vollst&auml;ndiger Name"
+
+#: add_user.php:45 edit_user.php:110 inc/auth.inc.php:99
+msgid "Password"
+msgstr "Passwort"
+
+#: add_user.php:49 edit_user.php:114 users.php:47
+msgid "Emailaddress"
+msgstr "Email Adresse"
+
+#: add_user.php:53 edit_user.php:118
+msgid "Permission template"
+msgstr "Berechtigungs Template"
+
+#: add_user.php:67 edit_user.php:133 users.php:49
+msgid "Enabled"
+msgstr "Aktiviert"
+
+#: add_zone_master.php:53
+msgid "IP address of web- or mailserver is invalid."
+msgstr "IP Adresse des Web- oder Mailservers ist ung&uuml;ltig."
+
+#: add_zone_master.php:79 index.php:48 inc/header.inc.php:60
+msgid "Add master zone"
+msgstr "Master Zone hinzuf&uuml;gen"
+
+#: add_zone_master.php:87 add_zone_slave.php:60
+msgid "Zone name"
+msgstr "Name der Zone"
+
+#: add_zone_master.php:93
+msgid "IP address of webserver"
+msgstr "IP Adresse des Webservers"
+
+#: add_zone_master.php:99
+msgid "IP address of mailserver"
+msgstr "IP Adresse des Mailservers"
+
+#: add_zone_master.php:105 add_zone_slave.php:72 delete_domain.php:57
+#: list_zones.php:60
+msgid "Owner"
+msgstr "Besitzer"
+
+#: add_zone_master.php:125
+msgid "Create zone without applying records-template"
+msgstr "Erstelle Zone ohne Zuhilfenahme der Datensatzvorlage"
+
+#: add_zone_master.php:131 add_zone_slave.php:84
+msgid "Add zone"
+msgstr "Zone hinzuf&uuml;gen"
+
+#: add_zone_slave.php:54 index.php:51 inc/header.inc.php:63
+msgid "Add slave zone"
+msgstr "Slave Zone hinzuf&uuml;gen"
+
+#: add_zone_slave.php:66 edit.php:229
+msgid "IP address of master NS"
+msgstr "IP Adresse des Master NS"
+
+#: change_password.php:29 change_password.php:47 index.php:56
+#: inc/header.inc.php:68
+msgid "Change password"
+msgstr "Passwort &auml;ndern"
+
+#: change_password.php:33
+msgid "Current password"
+msgstr "Bestehendes Passwort"
+
+#: change_password.php:37 change_password.php:41
+msgid "New password"
+msgstr "Neues Passwort"
+
+#: delete_domain.php:49 edit.php:143 list_zones.php:81 search.php:65
+msgid "Delete zone"
+msgstr "Zone l&ouml;schen"
+
+#: delete_domain.php:63
+#, php-format
+msgid "You are about to delete a slave zone of which the master nameserver, %s, is a supermaster. Deleting the zone now, will result in temporary removal only. Whenever the supermaster sends a notification for this zone, it will be added again!"
+msgstr "Sie sind dabei die Slave Zone zu l&ouml;schen, von der der Master Nameserver, %s, der Supermaster ist. Das l&ouml;schen der Zone bewirkt nur ein tempor&auml;res L&uuml;schen. Wann immer der Supermaster eine Notification sended, wird die Zone wieder hinzugef&uuml;gt!"
+
+#: delete_domain.php:67 delete_perm_templ.php:48 delete_record.php:78
+#: delete_supermaster.php:55
+msgid "Are you sure?"
+msgstr "Sind Sie sicher?"
+
+#: delete_domain.php:69 delete_perm_templ.php:49 delete_record.php:79
+#: delete_supermaster.php:56
+msgid "Yes"
+msgstr "Ja"
+
+#: delete_domain.php:70 delete_record.php:80 delete_supermaster.php:57
+msgid "No"
+msgstr "Nein"
+
+#: delete_perm_templ.php:42
+msgid "Delete permission template"
+msgstr "Berechtigungsvorlage l&ouml;schen"
+
+#: delete_record.php:54 edit.php:109 search.php:101
+msgid "Delete record"
+msgstr "Eintrag l&ouml;schen"
+
+#: delete_record.php:76
+msgid "You are trying to delete a record that is needed for this zone to work."
+msgstr "Sie versuchen einen Eintrag zu l&ouml;schen, der f&uuml;r den einwandfreien Betrieb der Zone zwingend notwendig ist."
+
+#: delete_supermaster.php:44 list_supermasters.php:49
+msgid "Delete supermaster"
+msgstr "Supermaster l&ouml;schen"
+
+#: delete_user.php:50 users.php:65
+msgid "Delete user"
+msgstr "Benutzer l&ouml;schen"
+
+#: delete_user.php:61
+msgid "You are about to delete a user. This user is owner for a number of zones. Please decide what to do with these zones."
+msgstr "Sie sind dabei einen Benutzer zu l&ouml;schen. Dieser Benutzer ist Besitzer diverser Zonen. Bitte entscheiden Sie, wie mit diesen Zonen zu verfahren ist."
+
+#: delete_user.php:66
+msgid "Zone"
+msgstr "Zone"
+
+#: delete_user.php:67 edit.php:164
+msgid "Delete"
+msgstr "L&ouml;schen"
+
+#: delete_user.php:68
+msgid "Leave"
+msgstr "Belassen"
+
+#: delete_user.php:69
+msgid "Add new owner"
+msgstr "Neuen Besitzer hinzuf&uuml;gen"
+
+#: delete_user.php:70
+msgid "Owner to be added"
+msgstr "Eigent&uuml;mer hinzugef&uuml;gt werden"
+
+#: delete_user.php:96
+msgid "Really delete this user?"
+msgstr "Wirklich diesen Benutzer l&ouml;schen?"
+
+#: edit_perm_templ.php:45 users.php:110
+msgid "Edit permission template"
+msgstr "Berechtigungsvorlage bearbeiten"
+
+#: edit.php:75 search.php:60
+msgid "Edit zone"
+msgstr "Zone editieren"
+
+#: edit.php:86
+msgid "This zone does not have any records. Weird."
+msgstr "Diese Zone hat keine Eintr&auml;ge. Schr&auml;g."
+
+#: edit.php:107 search.php:96
+msgid "Edit record"
+msgstr "Datensatz editieren"
+
+#: edit.php:149
+msgid "Owner of zone"
+msgstr "Besitzer der Zone"
+
+#: edit.php:155
+msgid "No owner set for this zone."
+msgstr "F&uuml;r diese Zone ist kein Besitzer festgelegt."
+
+#: edit.php:193
+msgid "Add"
+msgstr "Hinzuf&uuml;gen"
+
+#: edit.php:218 edit.php:240
+msgid "Change"
+msgstr "&Auml;ndern"
+
+#: edit_record.php:54
+msgid "Edit record in zone"
+msgstr "Eintrag der Zone editieren"
+
+#: edit_user.php:97 users.php:64
+msgid "Edit user"
+msgstr "Benutzer editieren"
+
+#: edit_user.php:143
+#, php-format
+msgid "This user has been assigned the permission template \"%s\"."
+msgstr "Diesem Benutzer wurde die Berechtigungsvorlage \"%s\" zugewiesen."
+
+#: edit_user.php:145
+msgid "The description for this template is"
+msgstr "Die Beschreibung f&uuml;r diese Vorlage ist"
+
+#: edit_user.php:147
+msgid "Based on this template, this user has the following permissions"
+msgstr "Basierend auf dieser Vorlage hat der Benutzer folgende Berechtigungen"
+
+#: index.php:26
+msgid "Welcome"
+msgstr "Willkommen"
+
+#: index.php:37 inc/header.inc.php:49
+msgid "Index"
+msgstr "Index"
+
+#: index.php:39 search.php:31 inc/header.inc.php:51
+msgid "Search zones and records"
+msgstr "Zonen und Eintr&auml;ge suchen"
+
+#: index.php:42 list_zones.php:38 inc/header.inc.php:54
+msgid "List zones"
+msgstr "Zonen auflisten"
+
+#: index.php:45 list_supermasters.php:30 inc/header.inc.php:57
+msgid "List supermasters"
+msgstr "Supermaster auflisten"
+
+#: index.php:57 users.php:39 inc/header.inc.php:69
+msgid "User administration"
+msgstr "Benutzeradministration"
+
+#: index.php:58 inc/header.inc.php:70
+msgid "Logout"
+msgstr "Ausloggen"
+
+#: list_perm_templ.php:31
+msgid "Permission templates"
+msgstr "Berechtigungsvorlagen"
+
+#: list_perm_templ.php:47
+msgid "Edit template"
+msgstr "Vorlagen bearbeiten"
+
+#: list_perm_templ.php:48
+msgid "Delete template"
+msgstr "Vorlage l&ouml;schen"
+
+#: list_supermasters.php:42 list_zones.php:43
+msgid "There are no zones to show in this listing."
+msgstr "In dieser Auflistung gibt es keine Zonen zum Anzeigen"
+
+#: list_zones.php:41
+msgid "You do not have the permission to see any zones."
+msgstr "Sie haben nicht die Berechtigung zum Anzeigen von Zonen."
+
+#: list_zones.php:59
+msgid "Records"
+msgstr "Eintr&auml;ge"
+
+#: list_zones.php:76
+msgid "View zone"
+msgstr "Zone anzeigen"
+
+#: search.php:48
+msgid "Zones found"
+msgstr "Zonen gefunden"
+
+#: search.php:54
+msgid "Master"
+msgstr "Master"
+
+#: search.php:81
+msgid "Records found"
+msgstr "Eintr&auml;ge gefunden"
+
+#: search.php:120
+msgid "Query"
+msgstr "Abfrage"
+
+#: search.php:124
+msgid "Enter a hostname or IP address. SQL LIKE syntax supported: an underscore (_) in pattern matches any single character, a percent sign (%) matches any string of zero or more characters."
+msgstr "Tragen Sie einen Hostnamen oder IP Adresse ein. SQL like Syntax wird unterst&uuml;tzt: ein Unterstrich (_) im Suchbegriff steht f&uuml;r ein beliebiges einzelnes Zeichen, ein Prozentzeichen (%) steht f&uuml;r ein oder mehrere beliebige Zeichen."
+
+#: search.php:129
+msgid "Search"
+msgstr "Suche"
+
+#: users.php:48
+msgid "Template"
+msgstr "Vorlage"
+
+#: inc/auth.inc.php:41
+msgid "Session expired, please login again."
+msgstr "Session ist abgelaufen, bitte erneut einloggen."
+
+#: inc/auth.inc.php:67
+msgid "Authentication failed!"
+msgstr "Authentifizierung fehlgeschlagen!"
+
+#: inc/auth.inc.php:89
+msgid "Log in"
+msgstr "Anmeldung"
+
+#: inc/auth.inc.php:104
+msgid "Go"
+msgstr "OK"
+
+#: inc/auth.inc.php:129
+msgid "You have logged out."
+msgstr "Sie sind nun abgemeldet."
+
+#: inc/database.inc.php:29
+msgid "Oops! An error occured!"
+msgstr "Uups! Ein Fehler ist aufgetreten!"
+
+#: inc/database.inc.php:73
+msgid "Unknown database type in inc/config.inc.php."
+msgstr "Unbekannter Datenbank Typ in inc/config.inc.php."
+
+#: inc/dns.inc.php:174
+msgid "If you specify an MX record it must be a hostname."
+msgstr "Wenn Sie einen MX Eintrag definieren, dann muzlig; es ein Hostname sein."
+
+#: inc/error.inc.php:27
+msgid "You do not have the permission to perform searches."
+msgstr "Sie haben nicht die Berechtigung zum Suchen."
+
+#: inc/error.inc.php:28
+msgid "You do not have the permission to add a record to this zone."
+msgstr "Sie haben f&uuml;r diese Zone nicht die Berechtigung zum hinzuf&uuml;gen eines Eintrages."
+
+#: inc/error.inc.php:29
+msgid "You do not have the permission to edit this record."
+msgstr "Sie haben nicht die Berechtigung zum Editieren dieses Datensatzes."
+
+#: inc/error.inc.php:30
+msgid "You do not have the permission to view this record."
+msgstr "Sie haben nicht die Berechtigung zum Ansehen dieses Eintrages."
+
+#: inc/error.inc.php:31
+msgid "You do not have the permission to delete this record."
+msgstr "Sie haben nicht die Berechtigung diesen Eintrag l&ouml;schen zu k&ouml;nnen."
+
+#: inc/error.inc.php:32
+msgid "You do not have the permission to add a master zone."
+msgstr "Sie haben nicht die Berechtigung zum Hinzuf&uuml;gen einer Master Zone."
+
+#: inc/error.inc.php:33
+msgid "You do not have the permission to add a slave zone."
+msgstr "Sie haben nicht die Berechtigung zum Hinzuf&uuml;gen einer Slave Zone"
+
+#: inc/error.inc.php:34
+msgid "You do not have the permission to delete a zone."
+msgstr "Sie haben nicht die Berechtigung zum L&ouml;schen einer Zone."
+
+#: inc/error.inc.php:35
+msgid "You do not have the permission to delete a supermaster."
+msgstr "Sie haben nicht die Berechtigung zum L&ouml;schen eines Supermasters."
+
+#: inc/error.inc.php:36
+msgid "You do not have the permission to view this zone."
+msgstr "Sie haben nicht die Berechtigung zum Anzeigen dieser Zone."
+
+#: inc/error.inc.php:37
+msgid "You do not have the permission to edit this user."
+msgstr "Sie haben nicht die Berechtigung zur Bearbeitung dieses Benutzers."
+
+#: inc/error.inc.php:38
+msgid "You do not have the permission to edit permission templates."
+msgstr "Sie haben nicht die Berechtigung zum Editieren von Berechtigungsvorlagen."
+
+#: inc/error.inc.php:39
+msgid "You do not have the permission to delete permission templates."
+msgstr "Sie haben nicht die Berechtigung zum L&ouml;schen von Berechtigungsvorlagen."
+
+#: inc/error.inc.php:40
+msgid "You do not have the permission to add a new user."
+msgstr "Sie haben nicht die Berechtigung zum Hinzuf&uuml;gen eines neuen Benutzers."
+
+#: inc/error.inc.php:41
+msgid "You do not have the permission to delete this user."
+msgstr "Sie haben nicht die Berechtigung zum L&ouml;schen dieses Benutzers."
+
+#: inc/error.inc.php:44
+msgid "This is an invalid zone name."
+msgstr "Dies ist ein ung&uuml;ltiger Zonenname."
+
+#: inc/error.inc.php:45
+msgid "There is already a supermaster with this IP address."
+msgstr "Es existiert bereits ein Supermaster mit dieser IP Adresse."
+
+#: inc/error.inc.php:46
+msgid "There is already a zone with this name."
+msgstr "Es existiert bereits eine Zone mit diesem Namen."
+
+#: inc/error.inc.php:49
+msgid "Username exist already, please choose another one."
+msgstr "Benutzername existiert bereits, bitte w&auml;hlen Sie einen anderen..."
+
+#: inc/error.inc.php:50
+msgid "User does not exist."
+msgstr "Benutzer existiert nicht."
+
+#: inc/error.inc.php:51
+msgid "You did not enter the correct current password."
+msgstr "Sie haben nicht das korrekte Passwort eingegeben."
+
+#: inc/error.inc.php:52
+msgid "The two new password fields do not match."
+msgstr "Die zwei Passw&ouml;rter stimmen nicht &uuml;berein."
+
+#: inc/error.inc.php:53
+msgid "This template is assigned to at least one user."
+msgstr "Diese Vorlage ist zumindest einem Benutzer zugewiesen."
+
+#: inc/error.inc.php:56
+msgid "Invalid or unexpected input given."
+msgstr "Ung&uuml;ltiger bzw. unerwarteter Input."
+
+#: inc/error.inc.php:57
+#, php-format
+msgid "Invalid argument(s) given to function %s"
+msgstr "Ung&uuml;ltige(s) Argument(e) zur Funktion %s angegeben"
+
+#: inc/error.inc.php:58
+#, php-format
+msgid "Invalid argument(s) given to function %s %s"
+msgstr "Ung&uuml;ltige(s) Argument(e) zur Funktion %s %s angegeben"
+
+#: inc/error.inc.php:59
+msgid "Unknown error."
+msgstr "Unbekannter Fehler."
+
+#: inc/error.inc.php:60
+msgid "Enter a valid email address."
+msgstr "Geben Sie eine g&uuml;ltige Email-Adresse ein."
+
+#: inc/error.inc.php:63
+msgid "Your content field doesnt have a legit value."
+msgstr "Ihr Eingabefeld besitzt keinen g&uuml;ltigen Wert."
+
+#: inc/error.inc.php:64
+msgid "Invalid hostname."
+msgstr "Ung&uuml;ltiger Hostname."
+
+msgid "You have invalid characters in your hostname."
+msgstr "Sie verwenden ung&uuml;ltige Zeichen in Ihrem Hostnamen."
+
+msgid "A hostname can not start or end with a dash."
+msgstr "Ein Hostname kann nicht mit einem Bindestrich beginnen bzw. enden."
+
+msgid "Given hostname or one of the labels is too short or too long."
+msgstr "Der angegeben Hostname oder eines der Labels ist zu kurz bzw. zu lang."
+
+msgid "Given hostname has too many slashes."
+msgstr "Der angegebene Hostname beinhaltet zu viele Schr&auml;gstriche."
+
+msgid "Unknown record type."
+msgstr "Unbekannter Datensatz-Typ."
+
+#: inc/error.inc.php:66
+msgid "This is not a valid IPv4 or IPv6 address."
+msgstr "Dies ist keine g&uuml;ltige IPv4 bzw. IPv6 Adresse."
+
+#: inc/error.inc.php:67
+msgid "This is not a valid IPv6 address."
+msgstr "Dies ist keine g&uuml;ltige IPv6 Adresse."
+
+#: inc/error.inc.php:68
+msgid "This is not a valid IPv4 address."
+msgstr "Dies ist keine g&uuml;ltige IPv4 Adresse."
+
+#: inc/error.inc.php:69
+msgid "This is not a valid CNAME. Did you assign an MX or NS record to the record?"
+msgstr "Dies ist kein g&uuml;ltiger CNAME. Haben Sie diesem Eintrag einen MX oder NS Eintrag zugewiesen?"
+
+msgid "You can not point a NS or MX record to a CNAME record. Remove or rame the CNAME record first, or take another name."
+msgstr "Sie k&ouml;nnen keinen NS bzw. MX Eintrag auf einen CNAME Eintrag zeigen lassen. Entfernen Sie den CNAME Eintrag zuerst bzw. benennen Sie den CNAME Eintrag um oder w&auml;hlen Sie einen anderen Namen."
+
+msgid "Invalid value for name field of SOA record. It should be the name of the zone."
+msgstr "Ung&uuml;ltiger Wert f&uuml;r den Namen des SOA Eintrags. Es sollte der Name der Zone sein."
+
+msgid "Invalid value for content field of HINFO record."
+msgstr "Ung&uuml;ltiger Wert f&uuml;r das Inhalts-Feld des HINFO Eintrags."
+
+msgid "Invalid value for content field of TXT record."
+msgstr "Ung&uuml;ltiger Wert f&uuml;r das Inhalts-Feld des TXT Eintrags."
+
+msgid "Invalid value for TTL field. It should be numeric."
+msgstr "Ung&uuml;ltiger Wert f&uuml;r das TTL Feld. Es sollte ein numerischer Wert sein."
+
+msgid "Invalid value for prio field. It should be numeric."
+msgstr "Ung&uuml;ltiger Wert f&uuml;r das Priorit&auml;ts Feld. Es sollte ein numerischer Wert sein."
+
+#: inc/error.inc.php:71
+msgid "NS records must be a hostnames."
+msgstr "NS Eintr&auml;ge m&uuml;ssen Hostnamen sein."
+
+#: inc/error.inc.php:73
+msgid "A prio field should be numeric."
+msgstr "Ein Priorit&auml;ts Feld sollte numerisch sein."
+
+#: inc/error.inc.php:74
+msgid "At least one of the five last SOA data fields is not numeric."
+msgstr "Zumindest eines der f&uuml;nf letzten SOA Daten Felder ist nicht numerisch."
+
+#: inc/error.inc.php:75
+msgid "You can only have five numeric fields in the SOA record."
+msgstr "Ein SOA Eintrag kann nur f&uuml;nf numerische Felder beinhalten."
+
+#: inc/error.inc.php:76
+msgid "The first part of your SOA record does not contain a valid hostname for a DNS server."
+msgstr "Der erste Teil Ihres SOA Eintrags beinhaltet f&uuml;r einen DNS Server keinen g&uuml;ltigen Hostnamen."
+
+#: inc/error.inc.php:79
+msgid "Zone has been added successfully."
+msgstr "Die Zone wurde erfolgreich hinzugef&uuml;gt."
+
+#: inc/error.inc.php:80
+msgid "Zone has been deleted successfully."
+msgstr "Die Zone wurde erfolgreich gel&ouml;scht."
+
+#: inc/error.inc.php:81
+msgid "The user has been updated successfully."
+msgstr "Der Benutzer wurde erfolgreich ge&auml;ndert."
+
+#: inc/error.inc.php:82
+msgid "The user has been created successfully."
+msgstr "Der Benutzer wurde erfolgreich hinzugef&uuml;gt."
+
+#: inc/error.inc.php:83
+msgid "The user has been deleted successfully."
+msgstr "Der Benutzer wurde erfolgreich gel&ouml;scht."
+
+#: inc/error.inc.php:84
+msgid "The record has been updated successfully."
+msgstr "Der Eintrag wurde erfolgreich ge&auml;ndert."
+
+#: inc/error.inc.php:85
+msgid "The record has been deleted successfully."
+msgstr "Der Eintrag wurde erfolgreich gel&ouml;scht."
+
+#: inc/error.inc.php:85
+msgid "The supermaster has been deleted successfully."
+msgstr "Der Supermaster wurde erfolgreich gel&ouml;scht."
+
+#: inc/error.inc.php:87
+msgid "The supermaster has been added successfully."
+msgstr "Der Supermaster wurde erfolgreich hinzugef&uuml;gt."
+
+#: inc/error.inc.php:88
+msgid "The permission template has been deleted successfully."
+msgstr "Die Berechtigungsvorlage wurde erfolgreich gel&ouml;scht."
+
+#: inc/record.inc.php:270
+msgid "You are trying to delete the SOA record. You are not allowed to remove it, unless you remove the entire zone."
+msgstr "Sie versuchen den SOA Eintrag zu l&ouml;schen. Solange Sie nicht die gesamte Zone l&ouml;schen, sind Sie hierf&uuml;r nicht berechtigt."
+
+#: inc/record.inc.php:603
+msgid "Function returned an error (multiple zones matching this zone ID)."
+msgstr "Funktion gab einen Fehler zur&uuml;ck (mehrere Zonen sind mit dieser Zonen ID &uuml;bereinstimmend)."
+
+#: inc/toolkit.inc.php:27
+msgid "You have to create a config.inc.php!"
+msgstr "Sie m&uuml;ssen die Datei config.inc.php erstellen!"
+
+#: inc/toolkit.inc.php:87
+msgid "Show page"
+msgstr "Seite anzeigen"
+
+#: inc/toolkit.inc.php:106
+msgid "Show zones beginning with"
+msgstr "Domains anzeigen - beginnend mit"
+
+#: inc/toolkit.inc.php:172
+msgid "Something has been successfully performed. What exactly, however, will remain a mystery."
+msgstr "Etwas wurde erfolgreich ausgef&uuml;hrt. Was genau -  wie auch immer - bleibt ein R&auml;tsel."
+
+#: inc/toolkit.inc.php:184
+msgid "Success!"
+msgstr "Erfolg!"
+
+#: inc/toolkit.inc.php:195
+msgid "Successful!"
+msgstr "Erfolgreich!"
+
+#: inc/toolkit.inc.php:201
+msgid "back"
+msgstr "zur&uuml;ck"
+
+#: inc/toolkit.inc.php:240
+msgid "Inactive"
+msgstr "Inaktiv"
+
+#: inc/toolkit.inc.php:244
+msgid "Active"
+msgstr "Aktiv"
+
+#: inc/users.inc.php:368
+msgid "Password has been changed, please login."
+msgstr "Passwort wurde erfolgreoch ge&auml;ndert, bitte loggen Sie sich ein."
+
+msgid "No database name has been set in config.inc.php."
+msgstr "Kein Datenbankname wurde in der Datei config.inc.php definiert."
+
+msgid "No database host has been set in config.inc.php."
+msgstr "Kein Datenbankhost wurde in der Datei config.inc.php definiert."
+
+msgid "No database username has been set in config.inc.php."
+msgstr "Es wurde kein Benutzername f&uuml;r die Datenbank in der Datei config.inc.php definiert."
+
+msgid "No database password has been set in config.inc.php."
+msgstr "Kein Datenbankpasswort wurde in der Datei config.inc.php definiert."
+
+msgid "No or unknown database type has been set in config.inc.php."
+msgstr "Kein oder ein ubekannter Datenbank-Typ wurde in der Datei config.inc.php definiert."
+
+msgid "You have an error in the MNAME field of the SOA record."
+msgstr "Sie haben einen Fehler im MNAME Feld des SOA Eintrags."
+
+msgid "Too many characters in the hostname."
+msgstr "Der Hostname beinhaltet zu viele Zeichen."
+
+msgid "You are using an invalid top level domain."
+msgstr "Sie verwenden eine ung&uuml;ltige Toplevel Domain."
+
+#: index.php:20
+msgid "Installation step"
+msgstr "Installationsschritt"
+
+#: index.php:26
+msgid "This installer expects you to have a PowerDNS database accessable from this server. This installer also expects you to have never ran Poweradmin before, or that you want to overwrite the Poweradmin part of the database. If you have had Poweradmin running before, any data in the following tables will be destroyed: perm_items, perm_templ, perm_templ_items, users and zones. This installer will, of course, not touch the data in the PowerDNS tables of the database. However, it is recommended that you create a backup of your database before proceeding."
+msgstr "Dieser Installer geht davon aus, dass von diesem Server aus auf eine PowerDNS Datenbank zugegriffen werden kann. Es wird ebenfalls davon ausgegangen, dass Poweradmin noch nie zuvor ausgef&uuml;hrt wurde bzw. dass Sie keine bestehende Poweradmin Datenbank &uuml;berschreiben wollen. Falls Poweradmin zuvor schon installiert war, dann werden die Daten folgender Tabellen gel&ouml;scht: perm_items, perm_templ, perm_templ_items, users and zones. Dieser Installer wird selbstverst&auml;ndlich keine &Auml;nderungen an den PowerDNS Tabellen Ihrer Datenbank vornehmen. Jedoch wird dringend empfohlen, ein Backup Ihrer Datenbank anzufertigen, bevor Sie an dieser Stelle fortfahren."
+
+#: index.php:28
+msgid "The alternative for this installer is a manual installation. Refer to the poweradmin.org website if you want to go down that road."
+msgstr "Die ALternative zu diesem Installer ist die manuelle Installation. Folgen Sie in diesem Fall den entsprechenden Anweisungen auf der Webseite poweradmin.org."
+
+#: index.php:30
+msgid "Finally, if you see any errors during the installation process, a problem report would be appreciated. You can report problems (and ask for help) on the <a href=\"http://groups.google.com/group/poweradmin\" target=\"blank\">poweradmin</a> mailinglist."
+msgstr "Abschlie&szlig;end eine Bitte: Wenn Sie w&auml;hrend der Installation einen Fehler feststellen sollten, dann w&auml;re ein entsprechender Fehlerreport begr&uuml;&szlig;enswert. Sie k&ouml;nnen Problemberichte und Hilfe-Anfragen in der <a href=\"http://groups.google.com/group/poweradmin\" target=\"blank\">poweradmin</a> Mailingliste berichten bzw. stellen."
+
+#: index.php:33
+msgid "Do you want to proceed now?"
+msgstr "Wollen Sie jetzt fortfahren?"
+
+#: index.php:37 index.php:80 index.php:133 index.php:175 index.php:206
+msgid "Go to step"
+msgstr "Gehen Sie zu Schritt"
+
+#: index.php:43
+msgid "To prepare the database for using Poweradmin, the installer needs to modify the PowerDNS database. It will add a number of tables and it will fill these tables with some data. If the tables are already present, the installer will drop them first."
+msgstr "Um die Datenbank f&uuml;r Poweradmin vorbereiten zu k&ouml;nnen, muss der Installer die PowerDNS Datenbank anpassen. Es werden eine Reihe von Tabellen hinzugef&uuml;gt und diese mit Daten bef&uuml;llt. Wenn diese Tabellen bereits existieren sollten, dann wird der Installer diese Tabellen zuerst l&ouml;schen."
+
+#: index.php:45
+msgid "To do all of this, the installer needs to access the database with an account which has sufficient rights. If you trust the installer, you may give it the username and password of the database user root. Otherwise, make sure the user has enough rights, before actually proceeding."
+msgstr "Um dies alles durchf&uuml;hren zu k&ouml;nnen, ben&ouml;tigt der Installer Zugriff auf die Datenbank mit einem Account, der &uuml;ber ausreichend Rechte verf&uuml;gt. Wenn Sie dem Installer vertrauen, k&ouml;nnen Sie den Benutzernamen und das Passwort des Datenbank-Benutzers root verwenden. Andernfalls stellen Sie bevor Sie fortfahren sicher, dass der Benutzer &uuml;ber ausreichend Rechte verf&uuml;gt."
+
+#: index.php:52
+msgid "The username to use to connect to the database, make sure the username has sufficient rights to perform administrative task to the PowerDNS database (the installer wants to drop, create and fill tables to the database)."
+msgstr "Stellen Sie sicher, dass der f&uuml;r die Datenbankverbindung verwendete Benutzername &uuml;ber ausreichend Rechte verf&uuml;gt, um administrative Aufgaben an der PowerDNS Datenbank durchf&uuml;hren zu k&ouml;nnen (der Installer will Tabellen anlegen, l&ouml;schen und mit Daten bef&uuml;llen)."
+
+#: index.php:57 index.php:153
+msgid "The password for this username."
+msgstr "Das Passwort f&uuml;r diesen Benutzernamen."
+
+#: index.php:60
+msgid "Hostname"
+msgstr "Hostname"
+
+#: index.php:62
+msgid "The hostname on which the PowerDNS database resides. Frequently, this will be \"localhost\"."
+msgstr "Der Hostname jenes Servers mit der PowerDNS Datenbank. H&auml;ufig ist dies \"localhost\"."
+
+#: index.php:65
+msgid "Database"
+msgstr "Datenbank"
+
+#: index.php:67
+msgid "The name of the PowerDNS database."
+msgstr "Der Name der PowerDNS Datenbank."
+
+#: index.php:70
+msgid "Database type"
+msgstr "Datenbank-Typ"
+
+#: index.php:76
+msgid "The type of the PowerDNS database."
+msgstr "Der Typ der PowerDNS Datenbank."
+
+#: index.php:86
+msgid "Updating database..."
+msgstr "Datenbank wird aktualisiert..."
+
+#: index.php:109
+msgid "done!"
+msgstr "erledigt!"
+
+#: index.php:111
+msgid "You now want to give limited rights to Poweradmin so it can update the data in the tables. To do this, you should create a new user and give it rights to select, delete, insert and update records in the PowerDNS database."
+msgstr "Um Daten in den Tabellen aktualisieren zu k&ouml;nnen, vergeben Sie nun eingeschr&auml;nkte Rechte an Poweradmin. Um dies zu erreichen, sollten Sie einen neuen Benutzer anlegen und diesem in der PowerDNS Datenbank folgende Rechte zuweisen: select, delete, insert und update records."
+
+#: index.php:113
+msgid "In MySQL you should now perform the following command:"
+msgstr "In MySQL sollten Sie nun folgenden Befehl ausf&uuml;hren:"
+
+#: index.php:116
+msgid "On PgSQL you would use:"
+msgstr "Mit PgSQL sollten Sie verwenden:"
+
+#: index.php:127
+msgid "After you have added the new user, proceed with this installation procedure."
+msgstr "Fahren Sie mit dieser Installationsroutine fort, nachdem Sie einen neuen Benutzer hinzugef&uuml;gt haben."
+
+#: index.php:142
+msgid "Now we will gather all details for the configuration itself."
+msgstr "Nun sammeln wir alle Details f&uuml;r die Konfiguration."
+
+#: index.php:148
+msgid "The username for Poweradmin. This new user will have limited rights only."
+msgstr "Der Benutzername f&uuml;r Poweradmin. Dieser neue Benutzer wird nur eingeschr&auml;nkte Rechte besitzen."
+
+#: index.php:156
+msgid "Hostmaster"
+msgstr "Hostmaster"
+
+#: index.php:158
+msgid "When creating SOA records and no hostmaster is provided, this value here will be used. Should be in the form \"hostmaster.example.net\"."
+msgstr "Wenn SOA Eintr&auml;ge erstellt werden und kein Hostmaster angegeben wird, dann wird folgender Wert per default verwendet. In Form von \"hostmaster.example.net\"."
+
+#: index.php:161
+msgid "Primary nameserver"
+msgstr "Prim&auml;rer Nameserver"
+
+#: index.php:163
+msgid "When creating new zones using the template, this value will be used as primary nameserver. Should be like \"ns1.example.net\"."
+msgstr "Bei der Anlage neuer Zonen mit diesem Template wird dieser Wert als Prim&auml;rer Nameserver verwendet. Wie z.B. \"ns1.example.net\"."
+
+#: index.php:166
+msgid "Secondary nameserver"
+msgstr "Sekund&auml;rer Nameserver"
+
+#: index.php:168
+msgid "When creating new zones using the template, this value will be used as secondary nameserver. Should be like \"ns2.example.net\"."
+msgstr "Bei der Anlage neuer Zonen mit diesem Template wird dieser Wert als Sekund&auml;rer Nameserver verwendet. Wie z.B. \ns2.example.net\"."
+
+#: index.php:197
+msgid "The installer was able to write to the file \""
+msgstr "Der Installer konnte die Datei beschreiben \""
+
+#: index.php:197
+msgid "\". A basic configuration, based on the details you have given, has been created."
+msgstr "\". Ein Konfiguration basierend auf Ihren Angaben wurde erstellt."
+
+#: index.php:199
+msgid "The installer is unable to write to the file \""
+msgstr "Der Installer kann die Datei nicht beschreiben \""
+
+#: index.php:199
+msgid "\" (which is in itself good). The configuration is printed here. You should now create the file \""
+msgstr "\" (was ansich gut ist). Die Konfiguration wird hier angezeigt. Sie sollten nun die Datei \""
+
+#: index.php:199
+msgid "\" in the Poweradmin root directory yourself. It should contain the following few lines:"
+msgstr "\" im Poweradmin root Verzeichnis erstellen. Sie sollte folgende Zeilen beinhalten:"
+
+#: index.php:212
+msgid "Now we have finished the configuration, you should (must!) remove the directory \"install/\" from the Poweradmin root directory. You will not be able to use Poweradmin if it exists. Do it now."
+msgstr "Die Konfiguration ist nun beendet. Sie sollten (m&uuml;ssen!) das Verzeichnis \"install/\" aus dem Poweradmin root Verzeichnis l&ouml;schen. Wenn das Verzeichnis existiert, k&ouml;nnen Sie Poweradmin nicht verwenden. L&ouml;schen Sie das Verzeichnis jetzt."
+
+#: index.php:213
+msgid "After you have removed the directory, you can login to <a href=\"../index.php\">Poweradmin</a> with username \"admin\" and password \""
+msgstr "Nachdem Sie das Verzeichnis gel&ouml;scht haben, k&ouml;nnen sie sich einloggen unter: <a href=\"../index.php\">Poweradmin</a> Benutzername \"admin\" und Passwort \""
+
+msgid "\". You are highly encouraged to change these as soon as you are logged in."
+msgstr "\". Sobald Sie eingeloggt sind wird empfohlen, diese Daten zu &auml;ndern."
+
+msgid "Invalid value for name field of SRV record."
+msgstr "Ung&uuml;ltiger Wert im Namensfeld des SRV Eintrags."
+
+msgid "Invalid value for the weight field of the SRV record."
+msgstr "Ung&uuml;ltiger Wert im Weight field des SRV Eintrags."
+
+msgid "Invalid value for the port field of the SRV record."
+msgstr "Ung&uuml;ltige Port-Angabe im SRV Eintrag."
+
+msgid "Invalid SRV target."
+msgstr "Ung&uuml;ltiges SRV Ziel."
+
+msgid "Invalid characters have been used in this record."
+msgstr "Ung&uuml;ltige Zeichen wurden in diesem Eintrag verwendet."
+
+msgid "Poweradmin administrator password"
+msgstr "Poweradmin Administrator Passwort"
+
+msgid "The password of the Poweradmin administrator. This administrator has full rights to Poweradmin using the web interface."
+msgstr "Das Passwort des Poweradmin Administrators. Dieser Admin hat alle Rechte im Poweradmin Web Interface."
+
+
+
+
+# The following is a list of strings that are not hard-code in the PHP 
+# files, but which are listed in the poweradmin database. Because of 
+# this, tools like xgettext will not notice these strings.
+# 
+# See also <https://www.poweradmin.org/wiki/TranslationContribution>.
+#
+
+msgid "User is allowed to add new master zones."
+msgstr "Benutzer ist berechtigt neue Master Zonen hinzuzuf&uuml;gen."
+
+msgid "User is allowed to add new slave zones."
+msgstr "Benutzer ist berechtigt neue Salve Zonen hinzuzuf&uuml;gen."
+
+msgid "User is allowed to see the content and meta data of zones he owns."
+msgstr "Benutzer ist berechtigt den Inhalt und die Meta Daten seiner Zonen anzuzeigen."
+
+msgid "User is allowed to edit the content of zones he owns."
+msgstr "Benutzer ist berechtigt den Inhalt seiner Zonen zu editieren."
+
+msgid "User is allowed to edit the meta data of zones he owns."
+msgstr "Benutzer ist berechtigt die Meta Daten seiner Zonen zu editieren."
+
+msgid "User is allowed to see the content and meta data of zones he does not own."
+msgstr "Benutzer ist berechtigt den Inhalt und die Meta Daten jener Zonen anzuzeigen, die er nicht besitzt."
+
+msgid "User is allowed to edit the content of zones he does not own."
+msgstr "Benutzer ist berechtigt den Inhalt und die Meta Daten jener Zonen zu editieren, die er nicht besitzt."
+
+msgid "User is allowed to edit the meta data of zones he does not own."
+msgstr "Benutzer ist berechtigt die Meta Daten jener Zonen zu editieren, die er nicht besitzt."
+
+msgid "User is allowed to perform searches."
+msgstr "Benutzer ist berechtigt Suchanfragen zu stellen."
+
+msgid "User is allowed to view supermasters."
+msgstr "Benutzer ist berechtigt Supermasters anzuzeigen."
+
+msgid "User is allowed to add new supermasters."
+msgstr "Benutzer ist berechtigt neue Supermasters hinzuzuf&uuml;gen."
+
+msgid "User is allowed to edit new supermasters."
+msgstr "Benutzer ist berechtigt neue Supermasters zu editieren."
+
+msgid "User is allowed to edit supermasters."
+msgstr "Benutzer ist berechtigt Supermasters zu editieren."
+
+msgid "User has full access. God-like. Redeemer."
+msgstr "Benutzer hat uneingeschr&auml;nkten Zugriff. Gottgleich..."
+
+msgid "User is allowed to see other users and their details."
+msgstr "Benutzer ist berechtigt andere Benutzer und deren Details anzuzeigen."
+
+msgid "User is allowed to add new users."
+msgstr "Benutzer ist berechtigt neue Benutzer hinzuzuf&uuml;gen."
+
+msgid "User is allowed to edit their own details."
+msgstr "Benutzer ist berechtigt seine eigenen Details zu editieren."
+
+msgid "User is allowed to edit other users."
+msgstr "Benutzer ist berechtigt andere Benutzer zu editieren."
+
+msgid "User is allowed to edit the password of other users."
+msgstr "Benutzer ist berechtigt das Passwort anderer Benutzer zu editieren."
+
+msgid "User is allowed to change the permission template that is assigned to a user."
+msgstr "Benutzer ist berechtigt die einem Benutzer zugewiesene Berechtigungs-Vorlage zu wechseln."
+
+msgid "User is allowed to add new permission templates."
+msgstr "Benutzer ist berechtigt eine neue Berechtigungs-Vorlage hinzuzuf&uuml;gen."
+
+msgid "User is allowed to edit existing permission templates."
+msgstr "Benutzer ist berechtigt eine bestehende Berechtigungs-Vorlage zu editieren."
+

BIN
devadmin/html/poweradmin-2.1.7/locale/de_DE/LC_MESSAGES/messages.mo


+ 1243 - 0
devadmin/html/poweradmin-2.1.7/locale/en_EN/LC_MESSAGES/en.po

@@ -0,0 +1,1243 @@
+# Poweradmin translation.
+# Copyright (C) 2011 Poweradmin Development Team
+# This file is distributed under the same license as the Poweradmin package.
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: Poweradmin\n"
+"Report-Msgid-Bugs-To: https://github.com/poweradmin/poweradmin/issues\n"
+"POT-Creation-Date: 2011-06-08 07:11+0300\n"
+"PO-Revision-Date: 2011-06-08 04:19+0000\n"
+"Last-Translator: edmondas <eg@fbsd.lt>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: en\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: add_perm_templ.php:40 list_perm_templ.php:61
+msgid "Add permission template"
+msgstr "Add permission template"
+
+#: add_perm_templ.php:44 add_perm_templ.php:55 add_record.php:120
+#: add_zone_templ.php:45 add_zone_templ_record.php:99 delete_domains.php:56
+#: edit.php:143 edit.php:240 edit_perm_templ.php:53 edit_perm_templ.php:65
+#: edit_record.php:67 edit_zone_templ.php:96 edit_zone_templ.php:173
+#: edit_zone_templ_record.php:61 list_perm_templ.php:36 list_zone_templ.php:37
+#: list_zones.php:67 search.php:65 search.php:119
+msgid "Name"
+msgstr "Name"
+
+#: add_perm_templ.php:48 add_perm_templ.php:56 add_user.php:67
+#: add_zone_templ.php:49 edit_perm_templ.php:57 edit_perm_templ.php:66
+#: edit_user.php:132 edit_zone_templ.php:177 list_perm_templ.php:37
+#: list_zone_templ.php:38 users.php:54
+msgid "Description"
+msgstr "Description"
+
+#: add_perm_templ.php:72 add_user.php:76 delete_user.php:111 edit.php:227
+#: edit_comment.php:87 edit_perm_templ.php:86 edit_record.php:109
+#: edit_user.php:141 edit_zone_templ.php:163 edit_zone_templ.php:181
+#: edit_zone_templ_record.php:91 users.php:121
+msgid "Commit changes"
+msgstr "Commit changes"
+
+#: add_record.php:102 add_zone_templ_record.php:81
+msgid "The record was successfully added."
+msgstr "The record was successfully added."
+
+#: add_record.php:111
+msgid "Add record to zone"
+msgstr "Add record to zone"
+
+#: add_record.php:122 add_zone_master.php:121 add_zone_templ_record.php:101
+#: delete_domain.php:63 delete_domains.php:58 edit.php:144 edit.php:242
+#: edit.php:349 edit_record.php:69 edit_zone_templ.php:97
+#: edit_zone_templ_record.php:63 list_zones.php:68 search.php:66
+#: search.php:120
+msgid "Type"
+msgstr "Type"
+
+#: add_record.php:123 add_zone_templ_record.php:102 edit.php:145 edit.php:243
+#: edit_record.php:71 edit_zone_templ.php:98 edit_zone_templ_record.php:65
+#: search.php:122
+msgid "Content"
+msgstr "Content"
+
+#: add_record.php:124 add_zone_templ_record.php:103 edit.php:146 edit.php:244
+#: edit_record.php:70 edit_zone_templ.php:99 edit_zone_templ_record.php:64
+#: search.php:121
+msgid "Priority"
+msgstr "Priority"
+
+#: add_record.php:125 add_zone_templ_record.php:104 edit.php:147 edit.php:245
+#: edit_record.php:72 edit_zone_templ.php:100 edit_zone_templ_record.php:66
+#: search.php:123
+msgid "TTL"
+msgstr "TTL"
+
+#: add_record.php:158 add_zone_templ_record.php:147 edit.php:287
+#: edit_zone_templ.php:183
+msgid "Add record"
+msgstr "Add record"
+
+#: add_supermaster.php:54 add_supermaster.php:106 inc/header.inc.php:79
+#: index.php:57
+msgid "Add supermaster"
+msgstr "Add supermaster"
+
+#: add_supermaster.php:57
+msgid "You do not have the permission to add a new supermaster."
+msgstr "You do not have the permission to add a new supermaster."
+
+#: add_supermaster.php:62 list_supermasters.php:36
+msgid "IP address of supermaster"
+msgstr "IP address of supermaster"
+
+#: add_supermaster.php:72 delete_supermaster.php:58 list_supermasters.php:37
+msgid "Hostname in NS record"
+msgstr "Hostname in NS record"
+
+#: add_supermaster.php:82 delete_supermaster.php:59 list_supermasters.php:38
+msgid "Account"
+msgstr "Account"
+
+#: add_user.php:35 users.php:135
+msgid "Add user"
+msgstr "Add user"
+
+#: add_user.php:39 edit_user.php:103 inc/auth.inc.php:133 install/index.php:93
+#: install/index.php:172 users.php:52
+msgid "Username"
+msgstr "Username"
+
+#: add_user.php:43 edit_user.php:107 users.php:53
+msgid "Fullname"
+msgstr "Fullname"
+
+#: add_user.php:47 edit_user.php:111 inc/auth.inc.php:137 install/index.php:98
+#: install/index.php:177
+msgid "Password"
+msgstr "Password"
+
+#: add_user.php:51 edit_user.php:115 users.php:55
+msgid "Emailaddress"
+msgstr "Emailaddress"
+
+#: add_user.php:56 edit_user.php:120
+msgid "Permission template"
+msgstr "Permission template"
+
+#: add_user.php:71 edit_user.php:136 users.php:57
+msgid "Enabled"
+msgstr "Enabled"
+
+#: add_zone_master.php:82 inc/header.inc.php:73 index.php:51
+msgid "Add master zone"
+msgstr "Add master zone"
+
+#: add_zone_master.php:91 add_zone_slave.php:73
+msgid "Zone name"
+msgstr "Zone name"
+
+#: add_zone_master.php:102 add_zone_slave.php:85 delete_domain.php:62
+#: delete_domains.php:57 list_zones.php:70 search.php:70
+msgid "Owner"
+msgstr "Owner"
+
+#: add_zone_master.php:132 edit.php:381 users.php:56
+msgid "Template"
+msgstr "Template"
+
+#: add_zone_master.php:146 add_zone_slave.php:106
+msgid "Add zone"
+msgstr "Add zone"
+
+#: add_zone_slave.php:67 inc/header.inc.php:76 index.php:54
+msgid "Add slave zone"
+msgstr "Add slave zone"
+
+#: add_zone_slave.php:79 edit.php:413
+msgid "IP address of master NS"
+msgstr "IP address of master NS"
+
+#: add_zone_templ.php:41
+msgid "Add zone template for"
+msgstr "Add zone template for"
+
+#: add_zone_templ.php:53 list_zone_templ.php:59
+msgid "Add zone template"
+msgstr "Add zone template"
+
+#: add_zone_templ_record.php:90
+msgid "Add record to zone template"
+msgstr "Add record to zone template"
+
+#: add_zone_templ_record.php:139 edit_zone_templ.php:145
+msgid "The following placeholders can be used in template records"
+msgstr "The following placeholders can be used in template records"
+
+#: add_zone_templ_record.php:142 edit_zone_templ.php:148
+msgid "substituted with current zone name"
+msgstr "substituted with current zone name"
+
+#: add_zone_templ_record.php:143 edit_zone_templ.php:149
+msgid "substituted with current date and 2 numbers"
+msgstr "substituted with current date and 2 numbers"
+
+#: change_password.php:31 change_password.php:49 inc/header.inc.php:81
+#: index.php:59
+msgid "Change password"
+msgstr "Change password"
+
+#: change_password.php:35
+msgid "Current password"
+msgstr "Current password"
+
+#: change_password.php:39 change_password.php:43
+msgid "New password"
+msgstr "New password"
+
+#: delete_domain.php:54 list_zones.php:99 search.php:84
+msgid "Delete zone"
+msgstr "Delete zone"
+
+#: delete_domain.php:68 delete_domains.php:63
+#, php-format
+msgid ""
+"You are about to delete a slave zone of which the master nameserver, %s, is "
+"a supermaster. Deleting the zone now, will result in temporary removal only."
+" Whenever the supermaster sends a notification for this zone, it will be "
+"added again!"
+msgstr ""
+"You are about to delete a slave zone of which the master nameserver, %s, is "
+"a supermaster. Deleting the zone now, will result in temporary removal only."
+" Whenever the supermaster sends a notification for this zone, it will be "
+"added again!"
+
+#: delete_domain.php:72 delete_domains.php:72 delete_perm_templ.php:49
+#: delete_record.php:94 delete_supermaster.php:61 delete_zone_templ.php:50
+#: delete_zone_templ_record.php:74
+msgid "Are you sure?"
+msgstr "Are you sure?"
+
+#: delete_domain.php:73 delete_domains.php:73 delete_perm_templ.php:50
+#: delete_record.php:95 delete_supermaster.php:62 delete_zone_templ.php:51
+#: delete_zone_templ_record.php:75
+msgid "Yes"
+msgstr "Yes"
+
+#: delete_domain.php:74 delete_domains.php:74 delete_perm_templ.php:51
+#: delete_record.php:96 delete_supermaster.php:63 delete_zone_templ.php:52
+#: delete_zone_templ_record.php:76
+msgid "No"
+msgstr "No"
+
+#: delete_domains.php:41
+msgid "Delete zones"
+msgstr "Delete zones"
+
+#: delete_perm_templ.php:43
+msgid "Delete permission template"
+msgstr "Delete permission template"
+
+#: delete_record.php:66 delete_zone_templ_record.php:53 edit.php:163
+#: edit_zone_templ.php:109 search.php:136
+msgid "Delete record"
+msgstr "Delete record"
+
+#: delete_record.php:92
+msgid ""
+"You are trying to delete a record that is needed for this zone to work."
+msgstr ""
+"You are trying to delete a record that is needed for this zone to work."
+
+#: delete_supermaster.php:45 list_supermasters.php:51
+msgid "Delete supermaster"
+msgstr "Delete supermaster"
+
+#: delete_user.php:60 users.php:75
+msgid "Delete user"
+msgstr "Delete user"
+
+#: delete_user.php:71
+msgid ""
+"You are about to delete a user. This user is owner for a number of zones. "
+"Please decide what to do with these zones."
+msgstr ""
+"You are about to delete a user. This user is owner for a number of zones. "
+"Please decide what to do with these zones."
+
+#: delete_user.php:76
+msgid "Zone"
+msgstr "Zone"
+
+#: delete_user.php:77 edit.php:310
+msgid "Delete"
+msgstr "Delete"
+
+#: delete_user.php:78
+msgid "Leave"
+msgstr "Leave"
+
+#: delete_user.php:79
+msgid "Add new owner"
+msgstr "Add new owner"
+
+#: delete_user.php:80
+msgid "Owner to be added"
+msgstr "Owner to be added"
+
+#: delete_user.php:106
+msgid "Really delete this user?"
+msgstr "Really delete this user?"
+
+#: delete_zone_templ.php:44 edit_zone_templ.php:184
+msgid "Delete zone template"
+msgstr "Delete zone template"
+
+#: edit.php:129 search.php:79
+msgid "Edit zone"
+msgstr "Edit zone"
+
+#: edit.php:137
+msgid "This zone does not have any records. Weird."
+msgstr "This zone does not have any records. Weird."
+
+#: edit.php:161 edit_zone_templ.php:107 search.php:131
+msgid "Edit record"
+msgstr "Edit record"
+
+#: edit.php:210
+msgid "Edit comment"
+msgstr "Edit comment"
+
+#: edit.php:219 edit_zone_templ.php:155
+msgid "Template Name"
+msgstr "Template Name"
+
+#: edit.php:223 edit_zone_templ.php:159
+msgid "Template Description"
+msgstr "Template Description"
+
+#: edit.php:228 edit_comment.php:88 edit_record.php:110 edit_user.php:142
+#: edit_zone_templ.php:164 edit_zone_templ_record.php:92 users.php:122
+msgid "Reset changes"
+msgstr "Reset changes"
+
+#: edit.php:229 edit_zone_templ.php:165
+msgid "Save as template"
+msgstr "Save as template"
+
+#: edit.php:295
+msgid "Owner of zone"
+msgstr "Owner of zone"
+
+#: edit.php:301
+msgid "No owner set for this zone."
+msgstr "No owner set for this zone."
+
+#: edit.php:343
+msgid "Add"
+msgstr "Add"
+
+#: edit.php:372 edit.php:401 edit.php:424
+msgid "Change"
+msgstr "Change"
+
+#: edit_comment.php:53
+msgid "Edit comment in zone"
+msgstr "Edit comment in zone"
+
+#: edit_perm_templ.php:47 users.php:131
+msgid "Edit permission template"
+msgstr "Edit permission template"
+
+#: edit_record.php:58
+msgid "Edit record in zone"
+msgstr "Edit record in zone"
+
+#: edit_user.php:98 users.php:71
+msgid "Edit user"
+msgstr "Edit user"
+
+#: edit_user.php:147
+#, php-format
+msgid "This user has been assigned the permission template \"%s\"."
+msgstr "This user has been assigned the permission template \"%s\"."
+
+#: edit_user.php:149
+msgid "The description for this template is"
+msgstr "The description for this template is"
+
+#: edit_user.php:151
+msgid "Based on this template, this user has the following permissions"
+msgstr "Based on this template, this user has the following permissions"
+
+#: edit_zone_templ.php:82
+msgid "Edit zone template"
+msgstr "Edit zone template"
+
+#: edit_zone_templ.php:90
+msgid "This template zone does not have any records yet."
+msgstr "This template zone does not have any records yet."
+
+#: edit_zone_templ.php:166
+msgid "Update zones"
+msgstr "Update zones"
+
+#: edit_zone_templ_record.php:52
+msgid "Edit record in zone template"
+msgstr "Edit record in zone template"
+
+#: inc/auth.inc.php:31
+msgid "You have logged out."
+msgstr "You have logged out."
+
+#: inc/auth.inc.php:45
+msgid "Session expired, please login again."
+msgstr "Session expired, please login again."
+
+#: inc/auth.inc.php:93
+msgid "Authentication failed!"
+msgstr "Authentication failed!"
+
+#: inc/auth.inc.php:106
+msgid ""
+"Authentication failed! - <a href=\"reset_password.php\">(forgot "
+"password)</a>"
+msgstr ""
+"Authentication failed! - <a href=\"reset_password.php\">(forgot "
+"password)</a>"
+
+#: inc/auth.inc.php:127
+msgid "Log in"
+msgstr "Log in"
+
+#: inc/auth.inc.php:143
+msgid "Go"
+msgstr "Go"
+
+#: inc/error.inc.php:24
+msgid "You do not have the permission to perform searches."
+msgstr "You do not have the permission to perform searches."
+
+#: inc/error.inc.php:25
+msgid "You do not have the permission to add a record to this zone."
+msgstr "You do not have the permission to add a record to this zone."
+
+#: inc/error.inc.php:26
+msgid "You do not have the permission to edit this record."
+msgstr "You do not have the permission to edit this record."
+
+#: inc/error.inc.php:27
+msgid "You do not have the permission to view this record."
+msgstr "You do not have the permission to view this record."
+
+#: inc/error.inc.php:28
+msgid "You do not have the permission to delete this record."
+msgstr "You do not have the permission to delete this record."
+
+#: inc/error.inc.php:29
+msgid "You do not have the permission to add a master zone."
+msgstr "You do not have the permission to add a master zone."
+
+#: inc/error.inc.php:30
+msgid "You do not have the permission to add a slave zone."
+msgstr "You do not have the permission to add a slave zone."
+
+#: inc/error.inc.php:31
+msgid "You do not have the permission to delete a zone."
+msgstr "You do not have the permission to delete a zone."
+
+#: inc/error.inc.php:32
+msgid "You do not have the permission to view this comment."
+msgstr "You do not have the permission to view this comment."
+
+#: inc/error.inc.php:33
+msgid "You do not have the permission to edit this comment."
+msgstr "You do not have the permission to edit this comment."
+
+#: inc/error.inc.php:34
+msgid "You do not have the permission to delete a supermaster."
+msgstr "You do not have the permission to delete a supermaster."
+
+#: inc/error.inc.php:35
+msgid "You do not have the permission to view this zone."
+msgstr "You do not have the permission to view this zone."
+
+#: inc/error.inc.php:36
+msgid "You do not have the permission to edit this user."
+msgstr "You do not have the permission to edit this user."
+
+#: inc/error.inc.php:37
+msgid "You do not have the permission to edit permission templates."
+msgstr "You do not have the permission to edit permission templates."
+
+#: inc/error.inc.php:38
+msgid "You do not have the permission to delete permission templates."
+msgstr "You do not have the permission to delete permission templates."
+
+#: inc/error.inc.php:39
+msgid "You do not have the permission to add a new user."
+msgstr "You do not have the permission to add a new user."
+
+#: inc/error.inc.php:40
+msgid "You do not have the permission to delete this user."
+msgstr "You do not have the permission to delete this user."
+
+#: inc/error.inc.php:41
+msgid "You do not have the permission to edit zone templates."
+msgstr "You do not have the permission to edit zone templates."
+
+#: inc/error.inc.php:42
+msgid "You do not have the permission to delete zone templates."
+msgstr "You do not have the permission to delete zone templates."
+
+#: inc/error.inc.php:43
+msgid "You do not have the permission to add a zone template."
+msgstr "You do not have the permission to add a zone template."
+
+#: inc/error.inc.php:46
+msgid "This is an invalid zone name."
+msgstr "This is an invalid zone name."
+
+#: inc/error.inc.php:47
+msgid "There is already a supermaster with this IP address."
+msgstr "There is already a supermaster with this IP address."
+
+#: inc/error.inc.php:48
+msgid "There is already a zone with this name."
+msgstr "There is already a zone with this name."
+
+#: inc/error.inc.php:51
+msgid "Username exist already, please choose another one."
+msgstr "Username exist already, please choose another one."
+
+#: inc/error.inc.php:52
+msgid "User does not exist."
+msgstr "User does not exist."
+
+#: inc/error.inc.php:53
+msgid "You did not enter the correct current password."
+msgstr "You did not enter the correct current password."
+
+#: inc/error.inc.php:54
+msgid "The two new password fields do not match."
+msgstr "The two new password fields do not match."
+
+#: inc/error.inc.php:55
+msgid "This template is assigned to at least one user."
+msgstr "This template is assigned to at least one user."
+
+#: inc/error.inc.php:58
+msgid "Invalid or unexpected input given."
+msgstr "Invalid or unexpected input given."
+
+#: inc/error.inc.php:59
+#, php-format
+msgid "Invalid argument(s) given to function %s"
+msgstr "Invalid argument(s) given to function %s"
+
+#: inc/error.inc.php:60
+#, php-format
+msgid "Invalid argument(s) given to function %s %s"
+msgstr "Invalid argument(s) given to function %s %s"
+
+#: inc/error.inc.php:61
+msgid "Unknown error."
+msgstr "Unknown error."
+
+#: inc/error.inc.php:62
+msgid "Enter a valid email address."
+msgstr "Enter a valid email address."
+
+#: inc/error.inc.php:63
+msgid "There is no zone with this ID."
+msgstr "There is no zone with this ID."
+
+#: inc/error.inc.php:64
+msgid "There is no zone template with this ID."
+msgstr "There is no zone template with this ID."
+
+#: inc/error.inc.php:65
+msgid ""
+"The <a href=\"install/\">install/</a> directory exists, you must remove it "
+"first before proceeding."
+msgstr ""
+"The <a href=\"install/\">install/</a> directory exists, you must remove it "
+"first before proceeding."
+
+#: inc/error.inc.php:66
+msgid ""
+"Zone template with this name already exists, please choose another one."
+msgstr ""
+"Zone template with this name already exists, please choose another one."
+
+#: inc/error.inc.php:67
+msgid "Template name can't be an empty string."
+msgstr "Template name can't be an empty string."
+
+#: inc/error.inc.php:70
+msgid "No database name has been set in config.inc.php."
+msgstr "No database name has been set in config.inc.php."
+
+#: inc/error.inc.php:71
+msgid "No database host has been set in config.inc.php."
+msgstr "No database host has been set in config.inc.php."
+
+#: inc/error.inc.php:72
+msgid "No database username has been set in config.inc.php."
+msgstr "No database username has been set in config.inc.php."
+
+#: inc/error.inc.php:73
+msgid "No database password has been set in config.inc.php."
+msgstr "No database password has been set in config.inc.php."
+
+#: inc/error.inc.php:74
+msgid "No or unknown database type has been set in config.inc.php."
+msgstr "No or unknown database type has been set in config.inc.php."
+
+#: inc/error.inc.php:75
+msgid ""
+"It seems that you forgot to update the database after Poweradmin upgrade to "
+"new version."
+msgstr ""
+"It seems that you forgot to update the database after Poweradmin upgrade to "
+"new version."
+
+#: inc/error.inc.php:78
+msgid "Your content field doesnt have a legit value."
+msgstr "Your content field doesnt have a legit value."
+
+#: inc/error.inc.php:79
+msgid "Invalid hostname."
+msgstr "Invalid hostname."
+
+#: inc/error.inc.php:80
+msgid "You have invalid characters in your hostname."
+msgstr "You have invalid characters in your hostname."
+
+#: inc/error.inc.php:81
+msgid "A hostname can not start or end with a dash."
+msgstr "A hostname can not start or end with a dash."
+
+#: inc/error.inc.php:82
+msgid "Given hostname or one of the labels is too short or too long."
+msgstr "Given hostname or one of the labels is too short or too long."
+
+#: inc/error.inc.php:83
+msgid "Given hostname has too many slashes."
+msgstr "Given hostname has too many slashes."
+
+#: inc/error.inc.php:84
+msgid "Unknown record type."
+msgstr "Unknown record type."
+
+#: inc/error.inc.php:85
+msgid "This is not a valid IPv4 or IPv6 address."
+msgstr "This is not a valid IPv4 or IPv6 address."
+
+#: inc/error.inc.php:86
+msgid "This is not a valid IPv6 address."
+msgstr "This is not a valid IPv6 address."
+
+#: inc/error.inc.php:87
+msgid "This is not a valid IPv4 address."
+msgstr "This is not a valid IPv4 address."
+
+#: inc/error.inc.php:88
+msgid ""
+"This is not a valid CNAME. Did you assign an MX or NS record to the record?"
+msgstr ""
+"This is not a valid CNAME. Did you assign an MX or NS record to the record?"
+
+#: inc/error.inc.php:89
+msgid ""
+"This is not a valid record. There is already exists a CNAME with this name."
+msgstr ""
+"This is not a valid record. There is already exists a CNAME with this name."
+
+#: inc/error.inc.php:90
+msgid ""
+"This is not a valid CNAME. There is already exists an A, AAAA or CNAME with "
+"this name."
+msgstr ""
+"This is not a valid CNAME. There is already exists an A, AAAA or CNAME with "
+"this name."
+
+#: inc/error.inc.php:91
+msgid ""
+"You can not point a NS or MX record to a CNAME record. Remove or rame the "
+"CNAME record first, or take another name."
+msgstr ""
+"You can not point a NS or MX record to a CNAME record. Remove or rame the "
+"CNAME record first, or take another name."
+
+#: inc/error.inc.php:92
+msgid "NS records must be a hostnames."
+msgstr "NS records must be a hostnames."
+
+#: inc/error.inc.php:93
+msgid "A prio field should be numeric."
+msgstr "A prio field should be numeric."
+
+#: inc/error.inc.php:94
+msgid ""
+"Invalid value for name field of SOA record. It should be the name of the "
+"zone."
+msgstr ""
+"Invalid value for name field of SOA record. It should be the name of the "
+"zone."
+
+#: inc/error.inc.php:95
+msgid "You have an error in the MNAME field of the SOA record."
+msgstr "You have an error in the MNAME field of the SOA record."
+
+#: inc/error.inc.php:96
+msgid "Invalid value for content field of HINFO record."
+msgstr "Invalid value for content field of HINFO record."
+
+#: inc/error.inc.php:97
+msgid "The hostname is too long."
+msgstr "The hostname is too long."
+
+#: inc/error.inc.php:98
+msgid "You are using an invalid top level domain."
+msgstr "You are using an invalid top level domain."
+
+#: inc/error.inc.php:99
+msgid "Invalid value for TTL field. It should be numeric."
+msgstr "Invalid value for TTL field. It should be numeric."
+
+#: inc/error.inc.php:100
+msgid "Invalid value for prio field. It should be numeric."
+msgstr "Invalid value for prio field. It should be numeric."
+
+#: inc/error.inc.php:101
+msgid "Invalid value for name field of SRV record."
+msgstr "Invalid value for name field of SRV record."
+
+#: inc/error.inc.php:102
+msgid "Invalid value for the priority field of the SRV record."
+msgstr "Invalid value for the priority field of the SRV record."
+
+#: inc/error.inc.php:103
+msgid "Invalid value for the weight field of the SRV record."
+msgstr "Invalid value for the weight field of the SRV record."
+
+#: inc/error.inc.php:104
+msgid "Invalid SRV target."
+msgstr "Invalid SRV target."
+
+#: inc/error.inc.php:105
+msgid "Invalid characters have been used in this record."
+msgstr "Invalid characters have been used in this record."
+
+#: inc/error.inc.php:108
+msgid "Zone has been added successfully."
+msgstr "Zone has been added successfully."
+
+#: inc/error.inc.php:109
+msgid "Zone has been deleted successfully."
+msgstr "Zone has been deleted successfully."
+
+#: inc/error.inc.php:110
+msgid "Zones have been updated successfully."
+msgstr "Zones have been updated successfully."
+
+#: inc/error.inc.php:111
+msgid "The user has been updated successfully."
+msgstr "The user has been updated successfully."
+
+#: inc/error.inc.php:112
+msgid "The user has been created successfully."
+msgstr "The user has been created successfully."
+
+#: inc/error.inc.php:113
+msgid "The user has been deleted successfully."
+msgstr "The user has been deleted successfully."
+
+#: inc/error.inc.php:114
+msgid "The record has been updated successfully."
+msgstr "The record has been updated successfully."
+
+#: inc/error.inc.php:115
+msgid "The record has been deleted successfully."
+msgstr "The record has been deleted successfully."
+
+#: inc/error.inc.php:116
+msgid "The comment has been updated successfully."
+msgstr "The comment has been updated successfully."
+
+#: inc/error.inc.php:117
+msgid "The supermaster has been deleted successfully."
+msgstr "The supermaster has been deleted successfully."
+
+#: inc/error.inc.php:118
+msgid "The supermaster has been added successfully."
+msgstr "The supermaster has been added successfully."
+
+#: inc/error.inc.php:119
+msgid "The permission template has been updated successfully."
+msgstr "The permission template has been updated successfully."
+
+#: inc/error.inc.php:120
+msgid "The permission template has been deleted successfully."
+msgstr "The permission template has been deleted successfully."
+
+#: inc/error.inc.php:121
+msgid "Zone template has been added successfully."
+msgstr "Zone template has been added successfully."
+
+#: inc/error.inc.php:122
+msgid "Zone template has been updated successfully."
+msgstr "Zone template has been updated successfully."
+
+#: inc/error.inc.php:123
+msgid "Zone template has been deleted successfully."
+msgstr "Zone template has been deleted successfully."
+
+#: inc/header.inc.php:59 index.php:37
+msgid "Index"
+msgstr "Index"
+
+#: inc/header.inc.php:61 index.php:39 search.php:32
+msgid "Search zones and records"
+msgstr "Search zones and records"
+
+#: inc/header.inc.php:64 index.php:42 list_zones.php:39
+msgid "List zones"
+msgstr "List zones"
+
+#: inc/header.inc.php:67 index.php:45
+msgid "List zone templates"
+msgstr "List zone templates"
+
+#: inc/header.inc.php:70 index.php:48 list_supermasters.php:32
+msgid "List supermasters"
+msgstr "List supermasters"
+
+#: inc/header.inc.php:82 index.php:60 users.php:47
+msgid "User administration"
+msgstr "User administration"
+
+#: inc/header.inc.php:83 index.php:61
+msgid "Logout"
+msgstr "Logout"
+
+#: inc/record.inc.php:387
+msgid ""
+"You are trying to delete the SOA record. You are not allowed to remove it, "
+"unless you remove the entire zone."
+msgstr ""
+"You are trying to delete the SOA record. You are not allowed to remove it, "
+"unless you remove the entire zone."
+
+#: inc/record.inc.php:751
+msgid "Function returned an error (multiple zones matching this zone ID)."
+msgstr "Function returned an error (multiple zones matching this zone ID)."
+
+#: inc/toolkit.inc.php:33 reset_password.php:27
+msgid "You have to create a config.inc.php!"
+msgstr "You have to create a config.inc.php!"
+
+#: inc/toolkit.inc.php:154
+msgid "Show page"
+msgstr "Show page"
+
+#: inc/toolkit.inc.php:173
+msgid "Show zones beginning with"
+msgstr "Show zones beginning with"
+
+#: inc/toolkit.inc.php:246
+msgid ""
+"Something has been successfully performed. What exactly, however, will "
+"remain a mystery."
+msgstr ""
+"Something has been successfully performed. What exactly, however, will "
+"remain a mystery."
+
+#: inc/toolkit.inc.php:258
+msgid "Success!"
+msgstr "Success!"
+
+#: inc/toolkit.inc.php:269
+msgid "Successful!"
+msgstr "Successful!"
+
+#: inc/toolkit.inc.php:275
+msgid "back"
+msgstr "back"
+
+#: inc/toolkit.inc.php:314
+msgid "Inactive"
+msgstr "Inactive"
+
+#: inc/toolkit.inc.php:318
+msgid "Active"
+msgstr "Active"
+
+#: inc/users.inc.php:382
+msgid "Password has been changed, please login."
+msgstr "Password has been changed, please login."
+
+#: index.php:26
+msgid "Welcome"
+msgstr "Welcome"
+
+#: install/index.php:47
+msgid "Installation step"
+msgstr "Installation step"
+
+#: install/index.php:62 install/index.php:80 install/index.php:135
+#: install/index.php:207 install/index.php:275 install/index.php:312
+msgid "Go to step"
+msgstr "Go to step"
+
+#: install/index.php:69
+msgid ""
+"This installer expects you to have a PowerDNS database accessable from this "
+"server. This installer also expects you to have never ran Poweradmin before,"
+" or that you want to overwrite the Poweradmin part of the database. If you "
+"have had Poweradmin running before, any data in the following tables will be"
+" destroyed: perm_items, perm_templ, perm_templ_items, users and zones. This "
+"installer will, of course, not touch the data in the PowerDNS tables of the "
+"database. However, it is recommended that you create a backup of your "
+"database before proceeding."
+msgstr ""
+"This installer expects you to have a PowerDNS database accessable from this "
+"server. This installer also expects you to have never ran Poweradmin before,"
+" or that you want to overwrite the Poweradmin part of the database. If you "
+"have had Poweradmin running before, any data in the following tables will be"
+" destroyed: perm_items, perm_templ, perm_templ_items, users and zones. This "
+"installer will, of course, not touch the data in the PowerDNS tables of the "
+"database. However, it is recommended that you create a backup of your "
+"database before proceeding."
+
+#: install/index.php:71
+msgid ""
+"The alternative for this installer is a manual installation. Refer to the "
+"poweradmin.org website if you want to go down that road."
+msgstr ""
+"The alternative for this installer is a manual installation. Refer to the "
+"poweradmin.org website if you want to go down that road."
+
+#: install/index.php:73
+msgid ""
+"Finally, if you see any errors during the installation process, a problem "
+"report would be appreciated. You can report problems (and ask for help) on "
+"the <a href=\"http://groups.google.com/group/poweradmin\" target=\"blank\">poweradmin</a> mailinglist."
+msgstr ""
+"Finally, if you see any errors during the installation process, a problem "
+"report would be appreciated. You can report problems (and ask for help) on "
+"the <a href=\"http://groups.google.com/group/poweradmin\" target=\"blank\">poweradmin</a> mailinglist."
+
+#: install/index.php:75
+msgid "Do you want to proceed now?"
+msgstr "Do you want to proceed now?"
+
+#: install/index.php:86
+msgid ""
+"To prepare the database for using Poweradmin, the installer needs to modify "
+"the PowerDNS database. It will add a number of tables and it will fill these"
+" tables with some data. If the tables are already present, the installer "
+"will drop them first."
+msgstr ""
+"To prepare the database for using Poweradmin, the installer needs to modify "
+"the PowerDNS database. It will add a number of tables and it will fill these"
+" tables with some data. If the tables are already present, the installer "
+"will drop them first."
+
+#: install/index.php:88
+msgid ""
+"To do all of this, the installer needs to access the database with an "
+"account which has sufficient rights. If you trust the installer, you may "
+"give it the username and password of the database user root. Otherwise, make"
+" sure the user has enough rights, before actually proceeding."
+msgstr ""
+"To do all of this, the installer needs to access the database with an "
+"account which has sufficient rights. If you trust the installer, you may "
+"give it the username and password of the database user root. Otherwise, make"
+" sure the user has enough rights, before actually proceeding."
+
+#: install/index.php:95
+msgid ""
+"The username to use to connect to the database, make sure the username has "
+"sufficient rights to perform administrative task to the PowerDNS database "
+"(the installer wants to drop, create and fill tables to the database)."
+msgstr ""
+"The username to use to connect to the database, make sure the username has "
+"sufficient rights to perform administrative task to the PowerDNS database "
+"(the installer wants to drop, create and fill tables to the database)."
+
+#: install/index.php:100 install/index.php:179
+msgid "The password for this username."
+msgstr "The password for this username."
+
+#: install/index.php:103
+msgid "Hostname"
+msgstr "Hostname"
+
+#: install/index.php:105
+msgid ""
+"The hostname on which the PowerDNS database resides. Frequently, this will "
+"be \"localhost\"."
+msgstr ""
+"The hostname on which the PowerDNS database resides. Frequently, this will "
+"be \"localhost\"."
+
+#: install/index.php:108
+msgid "DB Port"
+msgstr "DB Port"
+
+#: install/index.php:110
+msgid "The port the database server is listening on."
+msgstr "The port the database server is listening on."
+
+#: install/index.php:113
+msgid "Database"
+msgstr "Database"
+
+#: install/index.php:115
+msgid "The name of the PowerDNS database."
+msgstr "The name of the PowerDNS database."
+
+#: install/index.php:118
+msgid "Database type"
+msgstr "Database type"
+
+#: install/index.php:124
+msgid "The type of the PowerDNS database."
+msgstr "The type of the PowerDNS database."
+
+#: install/index.php:127
+msgid "Poweradmin administrator password"
+msgstr "Poweradmin administrator password"
+
+#: install/index.php:129
+msgid ""
+"The password of the Poweradmin administrator. This administrator has full "
+"rights to Poweradmin using the web interface."
+msgstr ""
+"The password of the Poweradmin administrator. This administrator has full "
+"rights to Poweradmin using the web interface."
+
+#: install/index.php:141
+msgid "Updating database..."
+msgstr "Updating database..."
+
+#: install/index.php:166
+msgid "done!"
+msgstr "done!"
+
+#: install/index.php:168
+msgid "Now we will gather all details for the configuration itself."
+msgstr "Now we will gather all details for the configuration itself."
+
+#: install/index.php:174
+msgid ""
+"The username for Poweradmin. This new user will have limited rights only."
+msgstr ""
+"The username for Poweradmin. This new user will have limited rights only."
+
+#: install/index.php:182
+msgid "Hostmaster"
+msgstr "Hostmaster"
+
+#: install/index.php:184
+msgid ""
+"When creating SOA records and no hostmaster is provided, this value here "
+"will be used. Should be in the form \"hostmaster.example.net\"."
+msgstr ""
+"When creating SOA records and no hostmaster is provided, this value here "
+"will be used. Should be in the form \"hostmaster.example.net\"."
+
+#: install/index.php:187
+msgid "Primary nameserver"
+msgstr "Primary nameserver"
+
+#: install/index.php:189
+msgid ""
+"When creating new zones using the template, this value will be used as "
+"primary nameserver. Should be like \"ns1.example.net\"."
+msgstr ""
+"When creating new zones using the template, this value will be used as "
+"primary nameserver. Should be like \"ns1.example.net\"."
+
+#: install/index.php:192
+msgid "Secondary nameserver"
+msgstr "Secondary nameserver"
+
+#: install/index.php:194
+msgid ""
+"When creating new zones using the template, this value will be used as "
+"secondary nameserver. Should be like \"ns2.example.net\"."
+msgstr ""
+"When creating new zones using the template, this value will be used as "
+"secondary nameserver. Should be like \"ns2.example.net\"."
+
+#: install/index.php:230
+msgid ""
+"You now want to give limited rights to Poweradmin so it can update the data "
+"in the tables. To do this, you should create a new user and give it rights "
+"to select, delete, insert and update records in the PowerDNS database."
+msgstr ""
+"You now want to give limited rights to Poweradmin so it can update the data "
+"in the tables. To do this, you should create a new user and give it rights "
+"to select, delete, insert and update records in the PowerDNS database."
+
+#: install/index.php:241
+msgid "In MySQL you should now perform the following command:"
+msgstr "In MySQL you should now perform the following command:"
+
+#: install/index.php:244
+msgid "On PgSQL you would use:"
+msgstr "On PgSQL you would use:"
+
+#: install/index.php:259
+msgid ""
+"After you have added the new user, proceed with this installation procedure."
+msgstr ""
+"After you have added the new user, proceed with this installation procedure."
+
+#: install/index.php:301
+msgid "The installer was able to write to the file \""
+msgstr "The installer was able to write to the file \""
+
+#: install/index.php:301
+msgid ""
+"\". A basic configuration, based on the details you have given, has been "
+"created."
+msgstr ""
+"\". A basic configuration, based on the details you have given, has been "
+"created."
+
+#: install/index.php:303
+msgid "The installer is unable to write to the file \""
+msgstr "The installer is unable to write to the file \""
+
+#: install/index.php:303
+msgid ""
+"\" (which is in itself good). The configuration is printed here. You should "
+"now create the file \""
+msgstr ""
+"\" (which is in itself good). The configuration is printed here. You should "
+"now create the file \""
+
+#: install/index.php:303
+msgid ""
+"\" in the Poweradmin root directory yourself. It should contain the "
+"following few lines:"
+msgstr ""
+"\" in the Poweradmin root directory yourself. It should contain the "
+"following few lines:"
+
+#: install/index.php:318
+msgid ""
+"Now we have finished the configuration, you should (must!) remove the "
+"directory \"install/\" from the Poweradmin root directory. You will not be "
+"able to use Poweradmin if it exists. Do it now."
+msgstr ""
+"Now we have finished the configuration, you should (must!) remove the "
+"directory \"install/\" from the Poweradmin root directory. You will not be "
+"able to use Poweradmin if it exists. Do it now."
+
+#: install/index.php:319
+msgid ""
+"After you have removed the directory, you can login to <a "
+"href=\"../index.php\">Poweradmin</a> with username \"admin\" and password \""
+msgstr ""
+"After you have removed the directory, you can login to <a "
+"href=\"../index.php\">Poweradmin</a> with username \"admin\" and password \""
+
+#: install/index.php:319
+msgid ""
+"\". You are highly encouraged to change these as soon as you are logged in."
+msgstr ""
+"\". You are highly encouraged to change these as soon as you are logged in."
+
+#: list_perm_templ.php:32
+msgid "Permission templates"
+msgstr "Permission templates"
+
+#: list_perm_templ.php:48 list_zone_templ.php:46
+msgid "Edit template"
+msgstr "Edit template"
+
+#: list_perm_templ.php:49 list_zone_templ.php:47
+msgid "Delete template"
+msgstr "Delete template"
+
+#: list_supermasters.php:44 list_zones.php:49
+msgid "There are no zones to show in this listing."
+msgstr "There are no zones to show in this listing."
+
+#: list_zone_templ.php:33
+msgid "Zone templates for"
+msgstr "Zone templates for"
+
+#: list_zones.php:42
+msgid "You do not have the permission to see any zones."
+msgstr "You do not have the permission to see any zones."
+
+#: list_zones.php:69
+msgid "Records"
+msgstr "Records"
+
+#: list_zones.php:71
+msgid "Serial"
+msgstr "Serial"
+
+#: list_zones.php:97
+msgid "View zone"
+msgstr "View zone"
+
+#: list_zones.php:116
+msgid "Delete zone(s)"
+msgstr "Delete zone(s)"
+
+#: reset_password.php:89
+msgid "Reset Password"
+msgstr "Reset Password"
+
+#: reset_password.php:93
+msgid "Registered Email Address"
+msgstr "Registered Email Address"
+
+#: reset_password.php:99
+msgid "Reset password"
+msgstr "Reset password"
+
+#: search.php:61
+msgid "Zones found"
+msgstr "Zones found"
+
+#: search.php:67
+msgid "Master"
+msgstr "Master"
+
+#: search.php:115
+msgid "Records found"
+msgstr "Records found"
+
+#: search.php:155
+msgid "Query"
+msgstr "Query"
+
+#: search.php:161
+msgid "Search"
+msgstr "Search"
+
+#: search.php:166
+msgid ""
+"Enter a hostname or IP address. SQL LIKE syntax supported: an underscore (_)"
+" in pattern matches any single character, a percent sign (%) matches any "
+"string of zero or more characters."
+msgstr ""
+"Enter a hostname or IP address. SQL LIKE syntax supported: an underscore (_)"
+" in pattern matches any single character, a percent sign (%) matches any "
+"string of zero or more characters."
+
+

BIN
devadmin/html/poweradmin-2.1.7/locale/en_EN/LC_MESSAGES/messages.mo


+ 887 - 0
devadmin/html/poweradmin-2.1.7/locale/fr_FR/LC_MESSAGES/fr.po

@@ -0,0 +1,887 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Emmanuel Seyman <eseyman@edd.fr>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: poweradmin 2.1.5\n"
+"Report-Msgid-Bugs-To: eseyman@edd.fr\n"
+"POT-Creation-Date: 2010-09-28 17:02+0200\n"
+"PO-Revision-Date: 2010-10-07 18:28+0200\n"
+"Last-Translator: Emmanuel Seyman <eseyman@edd.fr>\n"
+"Language-Team: poweradmin french\n"
+"Language: fr_FR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Virtaal 0.6.1\n"
+
+#: add_perm_templ.php:39 list_perm_templ.php:60
+msgid "Add permission template"
+msgstr "Ajouter un gabarit de droits"
+
+#: add_perm_templ.php:43 add_perm_templ.php:54 add_record.php:119
+#: add_zone_templ.php:43 add_zone_templ_record.php:98 edit_perm_templ.php:51
+#: edit_perm_templ.php:63 edit.php:104 edit.php:192 edit_record.php:66
+#: edit_zone_templ.php:69 edit_zone_templ_record.php:60 list_perm_templ.php:35
+#: list_zones.php:62 list_zone_templ.php:36 search.php:64 search.php:118
+msgid "Name"
+msgstr "Nom"
+
+#: add_perm_templ.php:47 add_perm_templ.php:55 add_user.php:66
+#: add_zone_templ.php:47 edit_perm_templ.php:55 edit_perm_templ.php:64
+#: edit_user.php:131 list_perm_templ.php:36 list_zone_templ.php:37
+#: users.php:48
+msgid "Description"
+msgstr "Description"
+
+#: add_perm_templ.php:71 add_user.php:75 delete_user.php:101
+#: edit_comment.php:86 edit_perm_templ.php:84 edit.php:180 edit_record.php:108
+#: edit_user.php:140 edit_zone_templ.php:125 edit_zone_templ_record.php:90
+#: users.php:107
+msgid "Commit changes"
+msgstr "Appliquer les modifications"
+
+#: add_record.php:101 add_zone_templ_record.php:80
+msgid "The record was successfully added."
+msgstr "L'enregistrement a été ajouté."
+
+#: add_record.php:110
+msgid "Add record to zone"
+msgstr "Ajouter l'enregistrement à la zone"
+
+#: add_record.php:121 add_zone_master.php:96 add_zone_templ_record.php:100
+#: delete_domain.php:62 edit.php:105 edit.php:194 edit.php:301
+#: edit_record.php:68 edit_zone_templ.php:70 edit_zone_templ_record.php:62
+#: list_zones.php:63 search.php:65 search.php:119
+msgid "Type"
+msgstr "Type"
+
+#: add_record.php:122 add_zone_templ_record.php:101 edit.php:106 edit.php:195
+#: edit_record.php:70 edit_zone_templ.php:71 edit_zone_templ_record.php:64
+#: search.php:121
+msgid "Content"
+msgstr "Contenu"
+
+#: add_record.php:123 add_zone_templ_record.php:102 edit.php:107 edit.php:196
+#: edit_record.php:69 edit_zone_templ.php:72 edit_zone_templ_record.php:63
+#: search.php:120
+msgid "Priority"
+msgstr "Priorité"
+
+#: add_record.php:124 add_zone_templ_record.php:103 edit.php:108 edit.php:197
+#: edit_record.php:71 edit_zone_templ.php:73 edit_zone_templ_record.php:65
+#: search.php:122
+msgid "TTL"
+msgstr "TTL"
+
+#: add_record.php:157 add_zone_templ_record.php:146 edit.php:239
+#: edit_zone_templ.php:129
+msgid "Add record"
+msgstr "Ajouter un enregistrement"
+
+#: add_supermaster.php:52 add_supermaster.php:92 index.php:56
+#: inc/header.inc.php:74
+msgid "Add supermaster"
+msgstr "Ajouter un supermaître"
+
+#: add_supermaster.php:55
+msgid "You do not have the permission to add a new supermaster."
+msgstr "Vous n'avez pas les droits pour ajouter un supermaître"
+
+#: add_supermaster.php:60 list_supermasters.php:35
+msgid "IP address of supermaster"
+msgstr "Adresse IP du supermaître"
+
+#: add_supermaster.php:70 delete_supermaster.php:52 list_supermasters.php:36
+msgid "Hostname in NS record"
+msgstr "Nom de machine de l'enregistrement NS"
+
+#: add_supermaster.php:80 delete_supermaster.php:53 list_supermasters.php:37
+msgid "Account"
+msgstr "Compte"
+
+#: add_user.php:34 users.php:121
+msgid "Add user"
+msgstr "Ajouter un utilisateur"
+
+#: add_user.php:38 edit_user.php:102 users.php:46
+msgid "Username"
+msgstr "Nom d'utilisateur"
+
+#: add_user.php:42 edit_user.php:106 users.php:47
+msgid "Fullname"
+msgstr "Nom complet"
+
+#: add_user.php:46 edit_user.php:110 inc/auth.inc.php:98
+msgid "Password"
+msgstr "Mot de passe"
+
+#: add_user.php:50 edit_user.php:114 users.php:49
+msgid "Emailaddress"
+msgstr "Courrier électronique"
+
+#: add_user.php:55 edit_user.php:119
+msgid "Permission template"
+msgstr "Gabarit de droits"
+
+#: add_user.php:70 edit_user.php:135 users.php:51
+msgid "Enabled"
+msgstr "Actif"
+
+#: add_zone_master.php:63 index.php:50 inc/header.inc.php:68
+msgid "Add master zone"
+msgstr "Ajouter une zone maître"
+
+#: add_zone_master.php:72 add_zone_slave.php:72
+msgid "Zone name"
+msgstr "Nom de zone"
+
+#: add_zone_master.php:78 add_zone_slave.php:84 delete_domain.php:61
+#: list_zones.php:65 search.php:69
+msgid "Owner"
+msgstr "Propriétaire"
+
+#: add_zone_master.php:106 users.php:50
+msgid "Template"
+msgstr "Gaba"
+
+#: add_zone_master.php:119 add_zone_slave.php:105
+msgid "Add zone"
+msgstr "Ajouter une zone"
+
+#: add_zone_slave.php:66 index.php:53 inc/header.inc.php:71
+msgid "Add slave zone"
+msgstr "Ajouter une zone esclave"
+
+#: add_zone_slave.php:78 edit.php:331
+msgid "IP address of master NS"
+msgstr "Adresse IP du NS maître"
+
+#: add_zone_templ.php:39
+msgid "Add zone template for"
+msgstr "Ajouter un gabarit de zone pour"
+
+#: add_zone_templ.php:51 list_zone_templ.php:58
+msgid "Add zone template"
+msgstr "Ajouter un gabarit de zone"
+
+#: add_zone_templ_record.php:89
+msgid "Add record to zone template"
+msgstr "Ajouter un enregistrement au gabarit de zone"
+
+#: add_zone_templ_record.php:138 edit_zone_templ.php:118
+msgid "The following placeholders can be used in template records"
+msgstr ""
+"Les caractères de remplacement suivants peuvent être utilisés dans des "
+"gabarits d'enregistrement"
+
+#: add_zone_templ_record.php:141 edit_zone_templ.php:121
+msgid "substituted with current zone name"
+msgstr "remplacé avec le nom de la zone actuelle"
+
+#: add_zone_templ_record.php:142 edit_zone_templ.php:122
+msgid "substituted with current date and 2 numbers"
+msgstr "remplacé avec la date actuelle et 2 chiffres"
+
+#: change_password.php:30 change_password.php:48 index.php:58
+#: inc/header.inc.php:76
+msgid "Change password"
+msgstr "Modification du mot de passe"
+
+#: change_password.php:34
+msgid "Current password"
+msgstr "Mot de passe actuel"
+
+#: change_password.php:38 change_password.php:42
+msgid "New password"
+msgstr "Nouveau mot de passe"
+
+#: delete_domain.php:53 list_zones.php:87 search.php:83
+msgid "Delete zone"
+msgstr "Supprimer la zone"
+
+#: delete_domain.php:67
+#, php-format
+msgid "You are about to delete a slave zone of which the master nameserver, %s, is a supermaster. Deleting the zone now, will result in temporary removal only. Whenever the supermaster sends a notification for this zone, it will be added again!"
+msgstr ""
+"Vous allez supprimer une zone esclave dont la zone maître, %s, est un "
+"supermaître. Supprimer la zone n'aura qu'un effet provisoire. Lorsque le "
+"supermaître enverra une notification pour cette zone, elle sera a nouveau "
+"ajoutée !"
+
+#: delete_domain.php:71 delete_perm_templ.php:48 delete_record.php:93
+#: delete_supermaster.php:55 delete_zone_templ.php:49
+#: delete_zone_templ_record.php:73
+msgid "Are you sure?"
+msgstr "Êtes vous sur ?"
+
+#: delete_domain.php:72 delete_perm_templ.php:49 delete_record.php:94
+#: delete_supermaster.php:56 delete_zone_templ.php:50
+#: delete_zone_templ_record.php:74
+msgid "Yes"
+msgstr "Oui"
+
+#: delete_domain.php:73 delete_perm_templ.php:50 delete_record.php:95
+#: delete_supermaster.php:57 delete_zone_templ.php:51
+#: delete_zone_templ_record.php:75
+msgid "No"
+msgstr "Non"
+
+#: delete_perm_templ.php:42
+msgid "Delete permission template"
+msgstr "Supprimer un gabarit de droits"
+
+#: delete_record.php:65 delete_zone_templ_record.php:52 edit.php:124
+#: edit_zone_templ.php:82 search.php:135
+msgid "Delete record"
+msgstr "Supprimer un enregistrement"
+
+#: delete_record.php:91
+msgid "You are trying to delete a record that is needed for this zone to work."
+msgstr ""
+"Vous allez supprimer un enregistrement indispensable au fonctionnement de "
+"cette zone."
+
+#: delete_supermaster.php:44 list_supermasters.php:50
+msgid "Delete supermaster"
+msgstr "Supprimer le supermaître"
+
+#: delete_user.php:50 users.php:67
+msgid "Delete user"
+msgstr "Supprimer l'utilisateur"
+
+#: delete_user.php:61
+msgid "You are about to delete a user. This user is owner for a number of zones. Please decide what to do with these zones."
+msgstr ""
+"Vous allez supprimer un utilisateur. Cet utilisateur est le propriétaire de "
+"zones. Vous devez décider quoi faire avec ces zones."
+
+#: delete_user.php:66
+msgid "Zone"
+msgstr "Zone"
+
+#: delete_user.php:67 edit.php:262
+msgid "Delete"
+msgstr "Supprimer"
+
+#: delete_user.php:68
+msgid "Leave"
+msgstr "Laisser"
+
+#: delete_user.php:69
+msgid "Add new owner"
+msgstr "Ajouter un propriétaire"
+
+#: delete_user.php:70
+msgid "Owner to be added"
+msgstr "Propriétaire a ajouter"
+
+#: delete_user.php:96
+msgid "Really delete this user?"
+msgstr "Supprimer vriament cet utilisateur ?"
+
+#: delete_zone_templ.php:43 edit_zone_templ.php:130
+msgid "Delete zone template"
+msgstr "Supprimer un gabarit de zone"
+
+#: edit_comment.php:52
+msgid "Edit comment in zone"
+msgstr "Modifier le commentaire de la zone"
+
+#: edit_comment.php:87 edit.php:181 edit_record.php:109 edit_user.php:141
+#: edit_zone_templ.php:126 edit_zone_templ_record.php:91 users.php:108
+msgid "Reset changes"
+msgstr "Annuler les modifications"
+
+#: edit_perm_templ.php:45 users.php:117
+msgid "Edit permission template"
+msgstr "Modifier un gabarit de droits"
+
+#: edit.php:90 search.php:78
+msgid "Edit zone"
+msgstr "Modifier la zone"
+
+#: edit.php:98
+msgid "This zone does not have any records. Weird."
+msgstr "Cette zone n'a pas d'enregistrements. Bizarre."
+
+#: edit.php:122 edit_zone_templ.php:80 search.php:130
+msgid "Edit record"
+msgstr "Modifier un enregistrement"
+
+#: edit.php:174
+msgid "Edit comment"
+msgstr "Modifier le commentaire"
+
+#: edit.php:247
+msgid "Owner of zone"
+msgstr "Propriétaire de la zone"
+
+#: edit.php:253
+msgid "No owner set for this zone."
+msgstr "Cette zone n'a pas de propriétaire."
+
+#: edit.php:295
+msgid "Add"
+msgstr "Ajouter"
+
+#: edit.php:320 edit.php:342
+msgid "Change"
+msgstr "Modifier"
+
+#: edit_record.php:57
+msgid "Edit record in zone"
+msgstr "Modifier l'enregistrement de la zone"
+
+#: edit_user.php:97 users.php:66
+msgid "Edit user"
+msgstr "Modifier l'utilisateur"
+
+#: edit_user.php:146
+#, php-format
+msgid "This user has been assigned the permission template \"%s\"."
+msgstr "Cet utilisateur a été attribué le gabarit de droits \"%s\"."
+
+#: edit_user.php:148
+msgid "The description for this template is"
+msgstr "La description de ce gabarit est"
+
+#: edit_user.php:150
+msgid "Based on this template, this user has the following permissions"
+msgstr "En se basant sur ce gabarit, l'utilisateur a les permissions suivantes"
+
+#: edit_zone_templ.php:55
+msgid "Edit zone template"
+msgstr "Modifier le gabarit de zone"
+
+#: edit_zone_templ.php:63
+msgid "This template zone does not have any records yet."
+msgstr "Ce gabarit de zone n'a pas encore d'enregistrements."
+
+#: edit_zone_templ_record.php:51
+msgid "Edit record in zone template"
+msgstr "Modifier un enregistrement dans le gabarit de zone"
+
+#: index.php:25
+msgid "Welcome"
+msgstr "Bienvenue"
+
+#: index.php:36 inc/header.inc.php:54
+msgid "Index"
+msgstr "Accueil"
+
+#: index.php:38 search.php:31 inc/header.inc.php:56
+msgid "Search zones and records"
+msgstr "Rechercher une zone ou un enregistrement"
+
+#: index.php:41 list_zones.php:38 inc/header.inc.php:59
+msgid "List zones"
+msgstr "Liste des zones"
+
+#: index.php:44 inc/header.inc.php:62
+msgid "List zone templates"
+msgstr "Liste des gabarits de zone"
+
+#: index.php:47 list_supermasters.php:31 inc/header.inc.php:65
+msgid "List supermasters"
+msgstr "Liste des supermaîtres"
+
+#: index.php:59 users.php:41 inc/header.inc.php:77
+msgid "User administration"
+msgstr "Administration des utilisateurs"
+
+#: index.php:60 inc/header.inc.php:78
+msgid "Logout"
+msgstr "Déconnexion"
+
+#: list_perm_templ.php:31
+msgid "Permission templates"
+msgstr "Gabarit de droits"
+
+#: list_perm_templ.php:47 list_zone_templ.php:45
+msgid "Edit template"
+msgstr "Modifier le gabarit"
+
+#: list_perm_templ.php:48 list_zone_templ.php:46
+msgid "Delete template"
+msgstr "Supprimer le gabarit"
+
+#: list_supermasters.php:43 list_zones.php:48
+msgid "There are no zones to show in this listing."
+msgstr "Cette liste ne contient aucune zone."
+
+#: list_zones.php:41
+msgid "You do not have the permission to see any zones."
+msgstr "Vous n'avez pas les droits pour ajouter des zones."
+
+#: list_zones.php:64
+msgid "Records"
+msgstr "Enregistrements"
+
+#: list_zones.php:66
+msgid "Serial"
+msgstr "Numéro de série"
+
+#: list_zones.php:82
+msgid "View zone"
+msgstr "Voir la zone"
+
+#: list_zone_templ.php:32
+msgid "Zone templates for"
+msgstr "Gabarit de zones pour"
+
+#: search.php:60
+msgid "Zones found"
+msgstr "Zones trouvées"
+
+#: search.php:66
+msgid "Master"
+msgstr "Maître"
+
+#: search.php:114
+msgid "Records found"
+msgstr "Enregistrements trouvés"
+
+#: search.php:154
+msgid "Query"
+msgstr "Recherche"
+
+#: search.php:160
+msgid "Search"
+msgstr "Rechercher"
+
+#: search.php:165
+msgid "Enter a hostname or IP address. SQL LIKE syntax supported: an underscore (_) in pattern matches any single character, a percent sign (%) matches any string of zero or more characters."
+msgstr ""
+"Soumettez un nom de machine ou une adresse IP. La syntaxe SQL LIKE est "
+"supportée : un tiret bas (_) dans le motif correspond à n'importe quel "
+"caractère, un sigle pour-cent (%) correspond à toute chaîne de zéro ou "
+"plusieurs caractères."
+
+#: inc/auth.inc.php:26
+msgid "You have logged out."
+msgstr "Vous avez été déconnecté."
+
+#: inc/auth.inc.php:39
+msgid "Session expired, please login again."
+msgstr "La session a expirée. Vous devez vous reconnecter."
+
+#: inc/auth.inc.php:66
+msgid "Authentication failed!"
+msgstr "L'authentification a échouée !"
+
+#: inc/auth.inc.php:88
+msgid "Log in"
+msgstr "Connexion"
+
+#: inc/auth.inc.php:104
+msgid "Go"
+msgstr "Exécuter"
+
+#: inc/error.inc.php:23
+msgid "You do not have the permission to perform searches."
+msgstr "Vous n'avez pas les droits pour faire des recherches."
+
+#: inc/error.inc.php:24
+msgid "You do not have the permission to add a record to this zone."
+msgstr "Vous n'avez pas les droits pour ajouter un enregistrement à cette zone."
+
+#: inc/error.inc.php:25
+msgid "You do not have the permission to edit this record."
+msgstr "Vous n'avez pas les droits pour modifier cet enregistrement."
+
+#: inc/error.inc.php:26
+msgid "You do not have the permission to view this record."
+msgstr "Vous n'avez pas les droits pour voir cet enregistrement."
+
+#: inc/error.inc.php:27
+msgid "You do not have the permission to delete this record."
+msgstr "Vous n'avez pas les droits pour supprimer cet enregistrement."
+
+#: inc/error.inc.php:28
+msgid "You do not have the permission to add a master zone."
+msgstr "Vous n'avez pas les droits pour ajouter une zone maître."
+
+#: inc/error.inc.php:29
+msgid "You do not have the permission to add a slave zone."
+msgstr "Vous n'avez pas les droits pour ajouter une zone esclave."
+
+#: inc/error.inc.php:30
+msgid "You do not have the permission to delete a zone."
+msgstr "Vous n'avez pas les droits pour supprimer des zones."
+
+#: inc/error.inc.php:31
+msgid "You do not have the permission to view this comment."
+msgstr "Vous n'avez pas les droits pour voir ce commentaire."
+
+#: inc/error.inc.php:32
+msgid "You do not have the permission to edit this comment."
+msgstr "Vous n'avez pas les droits pour modifier ce commentaire."
+
+#: inc/error.inc.php:33
+msgid "You do not have the permission to delete a supermaster."
+msgstr "Vous n'avez pas les droits pour supprimer un supermaître."
+
+#: inc/error.inc.php:34
+msgid "You do not have the permission to view this zone."
+msgstr "Vous n'avez pas les droits pour voir cette zone."
+
+#: inc/error.inc.php:35
+msgid "You do not have the permission to edit this user."
+msgstr "Vous n'avez pas les droits pour modifier cet utilisateur."
+
+#: inc/error.inc.php:36
+msgid "You do not have the permission to edit permission templates."
+msgstr "Vous n'avez pas les droits pour modifier les droits de gabarit."
+
+#: inc/error.inc.php:37
+msgid "You do not have the permission to delete permission templates."
+msgstr "Vous n'avez pas les droits pour supprimer les droits de gabarit."
+
+#: inc/error.inc.php:38
+msgid "You do not have the permission to add a new user."
+msgstr "Vous n'avez pas les droits pour ajouter un utilisateur."
+
+#: inc/error.inc.php:39
+msgid "You do not have the permission to delete this user."
+msgstr "Vous n'avez pas les droits pour supprimer cet utilisateur."
+
+#: inc/error.inc.php:40
+msgid "You do not have the permission to edit zone templates."
+msgstr "Vous n'avez pas les droits pour modifier les gabarits de zone."
+
+#: inc/error.inc.php:41
+msgid "You do not have the permission to delete zone templates."
+msgstr "Vous n'avez pas les droits pour supprimer les gabarits de zone."
+
+#: inc/error.inc.php:42
+msgid "You do not have the permission to add a zone templates."
+msgstr "Vous n'avez pas les droits pour ajouter un gabarit de zone."
+
+#: inc/error.inc.php:45
+msgid "This is an invalid zone name."
+msgstr "Ceci ,n'est pas un nom de zone valide."
+
+#: inc/error.inc.php:46
+msgid "There is already a supermaster with this IP address."
+msgstr "Il existe déjà un supermaître avec cette adresse IP."
+
+#: inc/error.inc.php:47
+msgid "There is already a zone with this name."
+msgstr "Il existe déjà une zone portant ce nom."
+
+#: inc/error.inc.php:50
+msgid "Username exist already, please choose another one."
+msgstr "Cet utilisateur existe déjà. Choisissez en un autre."
+
+#: inc/error.inc.php:51
+msgid "User does not exist."
+msgstr "L'utilisateur n'existe pas."
+
+#: inc/error.inc.php:52
+msgid "You did not enter the correct current password."
+msgstr "Vous n'avez pas donné le bon mot de passe actuel."
+
+#: inc/error.inc.php:53
+msgid "The two new password fields do not match."
+msgstr "Les deux mots de passe sont différents."
+
+#: inc/error.inc.php:54
+msgid "This template is assigned to at least one user."
+msgstr "Ce gabarit est assigné a au moins une personne."
+
+#: inc/error.inc.php:57
+msgid "Invalid or unexpected input given."
+msgstr "Saisie invalide ou inattendu."
+
+#: inc/error.inc.php:58
+#, php-format
+msgid "Invalid argument(s) given to function %s"
+msgstr "Un argument invalide a été donné à la fonction %s"
+
+#: inc/error.inc.php:59
+#, php-format
+msgid "Invalid argument(s) given to function %s %s"
+msgstr "Un argument invalide a été donné à la fonction %s %s"
+
+#: inc/error.inc.php:60
+msgid "Unknown error."
+msgstr "Erreur inconnue."
+
+#: inc/error.inc.php:61
+msgid "Enter a valid email address."
+msgstr "Entrez une adresse de courrier électronique valable."
+
+#: inc/error.inc.php:62
+msgid "There is no zone with this ID."
+msgstr "Il n'y a aucune zone avec cet ID."
+
+#: inc/error.inc.php:63
+msgid "There is no zone template with this ID."
+msgstr "Il n'y a aucun gabarit de zone avec cet ID."
+
+#: inc/error.inc.php:64
+msgid "The <a href=\"install/\">install/</a> directory exists, you must remove it first before proceeding."
+msgstr ""
+"Le repertoire <a href=\"install/\">install/</a> existe, vous devez le retirer "
+"avant de continuer."
+
+#: inc/error.inc.php:67
+msgid "No database name has been set in config.inc.php."
+msgstr "Le nom de la base de données n'a pas été trouvé dans config.inc.php."
+
+#: inc/error.inc.php:68
+msgid "No database host has been set in config.inc.php."
+msgstr ""
+"Le serveur de la base de données n'a pas été trouvé dans config.inc.php."
+
+#: inc/error.inc.php:69
+msgid "No database username has been set in config.inc.php."
+msgstr ""
+"L'utilisateur de la base de données n'a pas été trouvé dans config.inc.php."
+
+#: inc/error.inc.php:70
+msgid "No database password has been set in config.inc.php."
+msgstr ""
+"Le mot de passe de la base de données n'a pas été trouvé dans "
+"config.inc.php."
+
+#: inc/error.inc.php:71
+msgid "No or unknown database type has been set in config.inc.php."
+msgstr "Le type de la base de données n'a pas été trouvé dans config.inc.php."
+
+#: inc/error.inc.php:74
+msgid "Your content field doesnt have a legit value."
+msgstr "La valeur du champ contenu n'est pas valable."
+
+#: inc/error.inc.php:75
+msgid "Invalid hostname."
+msgstr "Nom de machine invalide."
+
+#: inc/error.inc.php:76
+msgid "You have invalid characters in your hostname."
+msgstr "Il y a des caractères invalides dans votre nom de machine."
+
+#: inc/error.inc.php:77
+msgid "A hostname can not start or end with a dash."
+msgstr "Un nom de machine ne peut pas commencer ou finir avec un tiret."
+
+#: inc/error.inc.php:78
+msgid "Given hostname or one of the labels is too short or too long."
+msgstr ""
+"Le nom de machine donné ou l'une de ses étiquettes est trop long ou trop "
+"court."
+
+#: inc/error.inc.php:79
+msgid "Given hostname has too many slashes."
+msgstr "Le nom de machine donné contient trop de tirets."
+
+#: inc/error.inc.php:80
+msgid "Unknown record type."
+msgstr "Type d'enregistrement inconnu."
+
+#: inc/error.inc.php:81
+msgid "This is not a valid IPv4 or IPv6 address."
+msgstr "Ceci n'est pas une adresse IPv4 ou IPv6 valide."
+
+#: inc/error.inc.php:82
+msgid "This is not a valid IPv6 address."
+msgstr "Ceci n'est pas une adresse IPv6 valide."
+
+#: inc/error.inc.php:83
+msgid "This is not a valid IPv4 address."
+msgstr "Ceci n'est pas une adresse IPv4 valide."
+
+#: inc/error.inc.php:84
+msgid "This is not a valid CNAME. Did you assign an MX or NS record to the record?"
+msgstr ""
+"Ceci n'est pas un CNAME valide. Avez vous assigné un enregistrement MX ou NS "
+"à l'enregistrement ?"
+
+#: inc/error.inc.php:85
+msgid "This is not a valid record. There is already exists a CNAME with this name."
+msgstr ""
+"Ceci n'est pas un enregistrement valide. Il existe déjà un CNAME avec ce "
+"nom."
+
+#: inc/error.inc.php:86
+msgid "This is not a valid CNAME. There is already exists an A, AAAA or CNAME with this name."
+msgstr ""
+"Ceci n'est pas un CNAME valide. Il existe déjà un A, AAAA ou CNAME avec ce "
+"nom."
+
+#: inc/error.inc.php:87
+msgid "You can not point a NS or MX record to a CNAME record. Remove or rame the CNAME record first, or take another name."
+msgstr ""
+"Vous ne pouvez pas faire pointer un enregistrement NS ou MX vers un "
+"enregistrement CNAME. Retirez ou renommez l'enregistrement CNAME d'abord ou "
+"choisissez un autre nom."
+
+#: inc/error.inc.php:88
+msgid "NS records must be a hostnames."
+msgstr "Les enregistrements NS doivent être des noms de machines."
+
+#: inc/error.inc.php:89
+msgid "A prio field should be numeric."
+msgstr "Un champ de priorité doit être numérique."
+
+#: inc/error.inc.php:90
+msgid "Invalid value for name field of SOA record. It should be the name of the zone."
+msgstr ""
+"Valeur invalide pour le champ nom de l'enregistrement SOA. Il devrait être "
+"le nom de la zone."
+
+#: inc/error.inc.php:91
+msgid "You have an error in the MNAME field of the SOA record."
+msgstr "Vous avez une erreur dans le champ MNAME de l'enregistrement SOA."
+
+#: inc/error.inc.php:92
+msgid "Invalid value for content field of HINFO record."
+msgstr "La valeur du champ contenu pour l'enregistrement HINFO est invalide."
+
+#: inc/error.inc.php:93
+msgid "The hostname is too long."
+msgstr "Le nom de machine est trop long."
+
+#: inc/error.inc.php:94
+msgid "You are using an invalid top level domain."
+msgstr "Vous utilisez un nom de domaine racine invalide."
+
+#: inc/error.inc.php:95
+msgid "Invalid value for TTL field. It should be numeric."
+msgstr "La valeur du champ TTL est invalide. Il devrait être numérique."
+
+#: inc/error.inc.php:96
+msgid "Invalid value for prio field. It should be numeric."
+msgstr "La valeur du champ priorité est invalide. Il devrait être numérique."
+
+#: inc/error.inc.php:97
+msgid "Invalid value for name field of SRV record."
+msgstr "La valeur du champ nom pour l'enregistrement SRV est invalide."
+
+#: inc/error.inc.php:98
+msgid "Invalid value for the priority field of the SRV record."
+msgstr "La valeur du champ priorité pour l'enregistrement SRV est invalide."
+
+#: inc/error.inc.php:99
+msgid "Invalid value for the weight field of the SRV record."
+msgstr "La valeur du champ poids pour l'enregistrement SRV est invalide."
+
+#: inc/error.inc.php:100
+msgid "Invalid SRV target."
+msgstr "Cible SRV invalide."
+
+#: inc/error.inc.php:101
+msgid "Invalid characters have been used in this record."
+msgstr "Des caractères invalides ont été utilisés dans cet enregistrement."
+
+#: inc/error.inc.php:104
+msgid "Zone has been added successfully."
+msgstr "La zone a été ajouté avec succès."
+
+#: inc/error.inc.php:105
+msgid "Zone has been deleted successfully."
+msgstr "La zone a été supprimé avec succès."
+
+#: inc/error.inc.php:106
+msgid "The user has been updated successfully."
+msgstr "L'utilisateur a été mis à jour avec succès."
+
+#: inc/error.inc.php:107
+msgid "The user has been created successfully."
+msgstr "L'utilisateur a été ajouté avec succès."
+
+#: inc/error.inc.php:108
+msgid "The user has been deleted successfully."
+msgstr "L'utilisateur a été supprimé avec succès."
+
+#: inc/error.inc.php:109
+msgid "The record has been updated successfully."
+msgstr "L'enregistrement a été mis à jour avec succès."
+
+#: inc/error.inc.php:110
+msgid "The record has been deleted successfully."
+msgstr "L'enregistrement a été supprimé avec succès."
+
+#: inc/error.inc.php:111
+msgid "The comment has been updated successfully."
+msgstr "Le commentaire a été mis à jour avec succès."
+
+#: inc/error.inc.php:112
+msgid "The supermaster has been deleted successfully."
+msgstr "Le supermaître a été supprimé avec succès."
+
+#: inc/error.inc.php:113
+msgid "The supermaster has been added successfully."
+msgstr "Le supermaître a été ajouté avec succès."
+
+#: inc/error.inc.php:114
+msgid "The permission template has been deleted successfully."
+msgstr "Le gabarit de droits a été supprimé avec succès."
+
+#: inc/error.inc.php:115
+msgid "Zone template has been added successfully."
+msgstr "Le gabarit de zone a été ajouté avec succès."
+
+#: inc/error.inc.php:116
+msgid "Zone template has been updated successfully."
+msgstr "Le gabarit de zone a été mis à jour avec succès."
+
+#: inc/error.inc.php:117
+msgid "Zone template has been deleted successfully."
+msgstr "Le gabarit de zone a été supprimé avec succès."
+
+#: inc/record.inc.php:331
+msgid "You are trying to delete the SOA record. You are not allowed to remove it, unless you remove the entire zone."
+msgstr ""
+"Vous essayez de supprimer l'enregistrement SOA. Vous ne pouvez pas le "
+"retirer sauf en retirant toute la zone."
+
+#: inc/record.inc.php:695
+msgid "Function returned an error (multiple zones matching this zone ID)."
+msgstr "La fonction a renvoyée une erreur (plusieurs zones ont cet ID)."
+
+#: inc/toolkit.inc.php:31
+msgid "You have to create a config.inc.php!"
+msgstr "Vous devez créer un config.inc.php !"
+
+#: inc/toolkit.inc.php:151
+msgid "Show page"
+msgstr "Voir la page"
+
+#: inc/toolkit.inc.php:170
+msgid "Show zones beginning with"
+msgstr "Voir les zones commençant avec"
+
+#: inc/toolkit.inc.php:236
+msgid "Something has been successfully performed. What exactly, however, will remain a mystery."
+msgstr ""
+"Quelque chose s'est bien passé. Par contre, on ne saura jamais quoi, "
+"exactement."
+
+#: inc/toolkit.inc.php:248
+msgid "Success!"
+msgstr "Succès !"
+
+#: inc/toolkit.inc.php:259
+msgid "Successful!"
+msgstr "Avec succès !"
+
+#: inc/toolkit.inc.php:265
+msgid "back"
+msgstr "retour"
+
+#: inc/toolkit.inc.php:304
+msgid "Inactive"
+msgstr "Inactif"
+
+#: inc/toolkit.inc.php:308
+msgid "Active"
+msgstr "Actif"
+
+#: inc/users.inc.php:364
+msgid "Password has been changed, please login."
+msgstr "Votre mot de passe a été modifié. Veuillez vous reconnecter."

+ 79 - 0
devadmin/html/poweradmin-2.1.7/locale/fr_FR/LC_MESSAGES/fr_db.po

@@ -0,0 +1,79 @@
+# Emmanuel Seyman <eseyman@edd.fr>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: poweradmin 2.1.5\n"
+"Report-Msgid-Bugs-To: eseyman@edd.fr\n"
+"POT-Creation-Date: 2010-10-20 17:58+0200\n"
+"PO-Revision-Date: 2010-10-20 18:00+0200\n"
+"Last-Translator: Emmanuel Seyman <eseyman@edd.fr>\n"
+"Language-Team: poweradmin french\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Virtaal 0.6.1\n"
+
+msgid "User is allowed to add new master zones."
+msgstr "L'utilisateur peut ajouter des zones maîtres."
+
+msgid "User is allowed to add new slave zones."
+msgstr "L'utilisateur peut ajouter des zones esclaves."
+
+msgid "User is allowed to see the content and meta data of zones he owns."
+msgstr "L'utilisateur peut voir le contenu et les méta-données de ses zones."
+
+msgid "User is allowed to edit the content of zones he owns."
+msgstr "L'utilisateur peut modifier le contenu et les méta-données de ses zones."
+
+msgid "User is allowed to edit the meta data of zones he owns."
+msgstr "L'utilisateur peut voir les méta-données de ses zones."
+
+msgid "User is allowed to see the content and meta data of zones he does not own."
+msgstr "L'utilisateur peut voir le contenu et les méta-données des zones dont il n'est pas le propriétaire."
+
+msgid "User is allowed to edit the content of zones he does not own."
+msgstr "L'utilisateur peut modifier le contenu et les méta-données des zones dont il n'est pas le propriétaire."
+
+msgid "User is allowed to edit the meta data of zones he does not own."
+msgstr "L'utilisateur peut modifier les méta-données des zones dont il n'est pas le propriétaire."
+
+msgid "User is allowed to perform searches."
+msgstr "L'utilisateur peut faire des recherches."
+
+msgid "User is allowed to view supermasters."
+msgstr "L'utilisateur peut voir les super-maîtres."
+
+msgid "User is allowed to add new supermasters."
+msgstr "L'utilisateur peut ajouter des super-maîtres."
+
+msgid "User is allowed to edit new supermasters."
+msgstr "L'utilisateur peut modifier les super-maîtres."
+
+msgid "User has full access. God-like. Redeemer."
+msgstr "L'utilisateur a tous les droits. Il est comme Dieu."
+
+msgid "User is allowed to see other users and their details."
+msgstr "L'utilisateur peut voir les autres utilisateurs et leurs infos."
+
+msgid "User is allowed to add new users."
+msgstr "L'utilisateur peut ajouter des utilisateurs."
+
+msgid "User is allowed to edit their own details."
+msgstr "L'utilisateur peut modifier ses propres infos."
+
+msgid "User is allowed to edit other users."
+msgstr "L'utilisateur peut modifier les autres utilisateurs."
+
+msgid "User is allowed to edit the password of other users."
+msgstr "L'utilisateur peut modifier le mot de passe d'autres utilisateurs."
+
+msgid "User is allowed to change the permission template that is assigned to a user."
+msgstr "L'utilisateur peut modifier le gabarit assigné à un utilisateur."
+
+msgid "User is allowed to add new permission templates."
+msgstr "L'utilisateur peut ajouter des gabarits de permissions."
+
+msgid "User is allowed to edit existing permission templates."
+msgstr "L'utilisateur peut modif des gabarits de permissions."

BIN
devadmin/html/poweradmin-2.1.7/locale/fr_FR/LC_MESSAGES/messages.mo


+ 82 - 0
devadmin/html/poweradmin-2.1.7/locale/i18n-template-db.pot

@@ -0,0 +1,82 @@
+# Poweradmin translation.
+# Copyright (C) 2011 Poweradmin Development Team
+# This file is distributed under the same license as the Poweradmin package.
+# Rejo Zenger <rejo@poweradmin.org>, 2008.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Poweradmin 2.1.6\n"
+"Report-Msgid-Bugs-To: edmondas@poweradmin.org\n"
+"POT-Creation-Date: 2011-07-08 23:45+0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: en_EN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "User is allowed to add new master zones."
+msgstr ""
+
+msgid "User is allowed to add new slave zones."
+msgstr ""
+
+msgid "User is allowed to see the content and meta data of zones he owns."
+msgstr ""
+
+msgid "User is allowed to edit the content of zones he owns."
+msgstr ""
+
+msgid "User is allowed to edit the meta data of zones he owns."
+msgstr ""
+
+msgid "User is allowed to see the content and meta data of zones he does not own."
+msgstr ""
+
+msgid "User is allowed to edit the content of zones he does not own."
+msgstr ""
+
+msgid "User is allowed to edit the meta data of zones he does not own."
+msgstr ""
+
+msgid "User is allowed to perform searches."
+msgstr ""
+
+msgid "User is allowed to view supermasters."
+msgstr ""
+
+msgid "User is allowed to add new supermasters."
+msgstr ""
+
+msgid "User is allowed to edit supermasters."
+msgstr ""
+
+msgid "User has full access. God-like. Redeemer."
+msgstr ""
+
+msgid "User is allowed to see other users and their details."
+msgstr ""
+
+msgid "User is allowed to add new users."
+msgstr ""
+
+msgid "User is allowed to edit their own details."
+msgstr ""
+
+msgid "User is allowed to edit other users."
+msgstr ""
+
+msgid "User is allowed to edit the password of other users."
+msgstr ""
+
+msgid "User is allowed to change the permission template that is assigned to a user."
+msgstr ""
+
+msgid "User is allowed to add new permission templates."
+msgstr ""
+
+msgid "User is allowed to edit existing permission templates."
+msgstr ""
+

+ 1085 - 0
devadmin/html/poweradmin-2.1.7/locale/i18n-template-php.pot

@@ -0,0 +1,1085 @@
+# Poweradmin translation.
+# Copyright (C) 2011 Poweradmin Development Team
+# This file is distributed under the same license as the Poweradmin package.
+# Rejo Zenger <rejo@poweradmin.org>, 2008.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Poweradmin 2.1.6\n"
+"Report-Msgid-Bugs-To: edmondas@poweradmin.org\n"
+"POT-Creation-Date: 2011-07-08 23:45+0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: en_EN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: edit_record.php:58
+msgid "Edit record in zone"
+msgstr ""
+
+#: edit_record.php:67 list_perm_templ.php:36 edit_zone_templ.php:96
+#: edit_zone_templ.php:173 search.php:65 search.php:119 add_perm_templ.php:44
+#: add_perm_templ.php:55 add_record.php:120 delete_domains.php:56
+#: add_zone_templ_record.php:99 edit_zone_templ_record.php:61 edit.php:143
+#: edit.php:240 list_zones.php:67 add_zone_templ.php:45 list_zone_templ.php:37
+#: edit_perm_templ.php:53 edit_perm_templ.php:65
+msgid "Name"
+msgstr ""
+
+#: edit_record.php:69 edit_zone_templ.php:97 search.php:66 search.php:120
+#: add_record.php:122 add_zone_master.php:121 delete_domains.php:58
+#: add_zone_templ_record.php:101 edit_zone_templ_record.php:63 edit.php:144
+#: edit.php:242 edit.php:349 list_zones.php:68 delete_domain.php:63
+msgid "Type"
+msgstr ""
+
+#: edit_record.php:70 edit_zone_templ.php:99 search.php:121 add_record.php:124
+#: add_zone_templ_record.php:103 edit_zone_templ_record.php:64 edit.php:146
+#: edit.php:244
+msgid "Priority"
+msgstr ""
+
+#: edit_record.php:71 edit_zone_templ.php:98 search.php:122 add_record.php:123
+#: add_zone_templ_record.php:102 edit_zone_templ_record.php:65 edit.php:145
+#: edit.php:243
+msgid "Content"
+msgstr ""
+
+#: edit_record.php:72 edit_zone_templ.php:100 search.php:123
+#: add_record.php:125 add_zone_templ_record.php:104
+#: edit_zone_templ_record.php:66 edit.php:147 edit.php:245
+msgid "TTL"
+msgstr ""
+
+#: edit_record.php:109 users.php:121 edit_comment.php:87 edit_user.php:141
+#: edit_zone_templ.php:163 edit_zone_templ.php:181 add_perm_templ.php:72
+#: edit_zone_templ_record.php:91 edit.php:227 delete_user.php:111
+#: edit_perm_templ.php:86 add_user.php:76
+msgid "Commit changes"
+msgstr ""
+
+#: edit_record.php:110 users.php:122 edit_comment.php:88 edit_user.php:142
+#: edit_zone_templ.php:164 edit_zone_templ_record.php:92 edit.php:228
+msgid "Reset changes"
+msgstr ""
+
+#: users.php:47 index.php:60 inc/header.inc.php:82
+msgid "User administration"
+msgstr ""
+
+#: users.php:52 edit_user.php:103 inc/auth.inc.php:133 install/index.php:93
+#: install/index.php:172 add_user.php:39
+msgid "Username"
+msgstr ""
+
+#: users.php:53 edit_user.php:107 add_user.php:43
+msgid "Fullname"
+msgstr ""
+
+#: users.php:54 list_perm_templ.php:37 edit_user.php:132
+#: edit_zone_templ.php:177 add_perm_templ.php:48 add_perm_templ.php:56
+#: add_zone_templ.php:49 list_zone_templ.php:38 edit_perm_templ.php:57
+#: edit_perm_templ.php:66 add_user.php:67
+msgid "Description"
+msgstr ""
+
+#: users.php:55 edit_user.php:115 add_user.php:51
+msgid "Email address"
+msgstr ""
+
+#: users.php:56 add_zone_master.php:132 edit.php:381
+msgid "Template"
+msgstr ""
+
+#: users.php:57 edit_user.php:136 add_user.php:71
+msgid "Enabled"
+msgstr ""
+
+#: users.php:71 edit_user.php:98
+msgid "Edit user"
+msgstr ""
+
+#: users.php:75 delete_user.php:60
+msgid "Delete user"
+msgstr ""
+
+#: users.php:131 edit_perm_templ.php:47
+msgid "Edit permission template"
+msgstr ""
+
+#: users.php:135 add_user.php:35
+msgid "Add user"
+msgstr ""
+
+#: list_perm_templ.php:32
+msgid "Permission templates"
+msgstr ""
+
+#: list_perm_templ.php:48 list_zone_templ.php:46
+msgid "Edit template"
+msgstr ""
+
+#: list_perm_templ.php:49 list_zone_templ.php:47
+msgid "Delete template"
+msgstr ""
+
+#: list_perm_templ.php:61 add_perm_templ.php:40
+msgid "Add permission template"
+msgstr ""
+
+#: edit_comment.php:53
+msgid "Edit comment in zone"
+msgstr ""
+
+#: edit_user.php:111 inc/auth.inc.php:137 install/index.php:98
+#: install/index.php:177 add_user.php:47
+msgid "Password"
+msgstr ""
+
+#: edit_user.php:120 add_user.php:56
+msgid "Permission template"
+msgstr ""
+
+#: edit_user.php:147
+#, php-format
+msgid "This user has been assigned the permission template \"%s\"."
+msgstr ""
+
+#: edit_user.php:149
+msgid "The description for this template is"
+msgstr ""
+
+#: edit_user.php:151
+msgid "Based on this template, this user has the following permissions"
+msgstr ""
+
+#: edit_zone_templ.php:82
+msgid "Edit zone template"
+msgstr ""
+
+#: edit_zone_templ.php:90
+msgid "This template zone does not have any records yet."
+msgstr ""
+
+#: edit_zone_templ.php:107 search.php:131 edit.php:161
+msgid "Edit record"
+msgstr ""
+
+#: edit_zone_templ.php:109 delete_zone_templ_record.php:53 search.php:136
+#: delete_record.php:66 edit.php:163
+msgid "Delete record"
+msgstr ""
+
+#: edit_zone_templ.php:145 add_zone_templ_record.php:139
+msgid "The following placeholders can be used in template records"
+msgstr ""
+
+#: edit_zone_templ.php:148 add_zone_templ_record.php:142
+msgid "substituted with current zone name"
+msgstr ""
+
+#: edit_zone_templ.php:149 add_zone_templ_record.php:143
+msgid "substituted with current date and 2 numbers"
+msgstr ""
+
+#: edit_zone_templ.php:155 edit.php:219
+msgid "Template Name"
+msgstr ""
+
+#: edit_zone_templ.php:159 edit.php:223
+msgid "Template Description"
+msgstr ""
+
+#: edit_zone_templ.php:165 edit.php:229
+msgid "Save as template"
+msgstr ""
+
+#: edit_zone_templ.php:166
+msgid "Update zones"
+msgstr ""
+
+#: edit_zone_templ.php:183 add_record.php:158 add_zone_templ_record.php:147
+#: edit.php:287
+msgid "Add record"
+msgstr ""
+
+#: edit_zone_templ.php:184 delete_zone_templ.php:44
+msgid "Delete zone template"
+msgstr ""
+
+#: add_zone_slave.php:67 index.php:54 inc/header.inc.php:76
+msgid "Add slave zone"
+msgstr ""
+
+#: add_zone_slave.php:73 add_zone_master.php:91
+msgid "Zone name"
+msgstr ""
+
+#: add_zone_slave.php:79 edit.php:413
+msgid "IP address of master NS"
+msgstr ""
+
+#: add_zone_slave.php:85 search.php:70 add_zone_master.php:102
+#: delete_domains.php:57 list_zones.php:70 delete_domain.php:62
+msgid "Owner"
+msgstr ""
+
+#: add_zone_slave.php:106 add_zone_master.php:146
+msgid "Add zone"
+msgstr ""
+
+#: delete_zone_templ.php:50 delete_zone_templ_record.php:74
+#: delete_domains.php:72 delete_record.php:94 delete_perm_templ.php:49
+#: delete_domain.php:72 delete_supermaster.php:61
+msgid "Are you sure?"
+msgstr ""
+
+#: delete_zone_templ.php:51 delete_zone_templ_record.php:75
+#: delete_domains.php:73 delete_record.php:95 delete_perm_templ.php:50
+#: delete_domain.php:73 delete_supermaster.php:62
+msgid "Yes"
+msgstr ""
+
+#: delete_zone_templ.php:52 delete_zone_templ_record.php:76
+#: delete_domains.php:74 delete_record.php:96 delete_perm_templ.php:51
+#: delete_domain.php:74 delete_supermaster.php:63
+msgid "No"
+msgstr ""
+
+#: index.php:26
+msgid "Welcome"
+msgstr ""
+
+#: index.php:37 inc/header.inc.php:59
+msgid "Index"
+msgstr ""
+
+#: index.php:39 search.php:32 inc/header.inc.php:61
+msgid "Search zones and records"
+msgstr ""
+
+#: index.php:42 inc/header.inc.php:64 list_zones.php:39
+msgid "List zones"
+msgstr ""
+
+#: index.php:45 inc/header.inc.php:67
+msgid "List zone templates"
+msgstr ""
+
+#: index.php:48 inc/header.inc.php:70 list_supermasters.php:32
+msgid "List supermasters"
+msgstr ""
+
+#: index.php:51 inc/header.inc.php:73 add_zone_master.php:82
+msgid "Add master zone"
+msgstr ""
+
+#: index.php:57 inc/header.inc.php:79 add_supermaster.php:54
+#: add_supermaster.php:106
+msgid "Add supermaster"
+msgstr ""
+
+#: index.php:59 inc/header.inc.php:81 change_password.php:31
+#: change_password.php:49
+msgid "Change password"
+msgstr ""
+
+#: index.php:61 inc/header.inc.php:83
+msgid "Logout"
+msgstr ""
+
+#: search.php:61
+msgid "Zones found"
+msgstr ""
+
+#: search.php:67
+msgid "Master"
+msgstr ""
+
+#: search.php:79 edit.php:129
+msgid "Edit zone"
+msgstr ""
+
+#: search.php:84 list_zones.php:99 delete_domain.php:54
+msgid "Delete zone"
+msgstr ""
+
+#: search.php:115
+msgid "Records found"
+msgstr ""
+
+#: search.php:155
+msgid "Query"
+msgstr ""
+
+#: search.php:161
+msgid "Search"
+msgstr ""
+
+#: search.php:166
+msgid "Enter a hostname or IP address. SQL LIKE syntax supported: an underscore (_) in pattern matches any single character, a percent sign (%) matches any string of zero or more characters."
+msgstr ""
+
+#: inc/users.inc.php:382
+msgid "Password has been changed, please login."
+msgstr ""
+
+#: inc/record.inc.php:387
+msgid "You are trying to delete the SOA record. You are not allowed to remove it, unless you remove the entire zone."
+msgstr ""
+
+#: inc/record.inc.php:751
+msgid "Function returned an error (multiple zones matching this zone ID)."
+msgstr ""
+
+#: inc/toolkit.inc.php:33 reset_password.php:27
+msgid "You have to create a config.inc.php!"
+msgstr ""
+
+#: inc/toolkit.inc.php:154
+msgid "Show page"
+msgstr ""
+
+#: inc/toolkit.inc.php:173
+msgid "Show zones beginning with"
+msgstr ""
+
+#: inc/toolkit.inc.php:246
+msgid "Something has been successfully performed. What exactly, however, will remain a mystery."
+msgstr ""
+
+#: inc/toolkit.inc.php:258
+msgid "Success!"
+msgstr ""
+
+#: inc/toolkit.inc.php:269
+msgid "Successful!"
+msgstr ""
+
+#: inc/toolkit.inc.php:275
+msgid "back"
+msgstr ""
+
+#: inc/toolkit.inc.php:314
+msgid "Inactive"
+msgstr ""
+
+#: inc/toolkit.inc.php:318
+msgid "Active"
+msgstr ""
+
+#: inc/auth.inc.php:31
+msgid "You have logged out."
+msgstr ""
+
+#: inc/auth.inc.php:45
+msgid "Session expired, please login again."
+msgstr ""
+
+#: inc/auth.inc.php:93
+msgid "Authentication failed!"
+msgstr ""
+
+#: inc/auth.inc.php:106
+msgid "Authentication failed! - <a href=\"reset_password.php\">(forgot password)</a>"
+msgstr ""
+
+#: inc/auth.inc.php:127
+msgid "Log in"
+msgstr ""
+
+#: inc/auth.inc.php:143
+msgid "Go"
+msgstr ""
+
+#: inc/error.inc.php:24
+msgid "You do not have the permission to perform searches."
+msgstr ""
+
+#: inc/error.inc.php:25
+msgid "You do not have the permission to add a record to this zone."
+msgstr ""
+
+#: inc/error.inc.php:26
+msgid "You do not have the permission to edit this record."
+msgstr ""
+
+#: inc/error.inc.php:27
+msgid "You do not have the permission to view this record."
+msgstr ""
+
+#: inc/error.inc.php:28
+msgid "You do not have the permission to delete this record."
+msgstr ""
+
+#: inc/error.inc.php:29
+msgid "You do not have the permission to add a master zone."
+msgstr ""
+
+#: inc/error.inc.php:30
+msgid "You do not have the permission to add a slave zone."
+msgstr ""
+
+#: inc/error.inc.php:31
+msgid "You do not have the permission to delete a zone."
+msgstr ""
+
+#: inc/error.inc.php:32
+msgid "You do not have the permission to view this comment."
+msgstr ""
+
+#: inc/error.inc.php:33
+msgid "You do not have the permission to edit this comment."
+msgstr ""
+
+#: inc/error.inc.php:34
+msgid "You do not have the permission to delete a supermaster."
+msgstr ""
+
+#: inc/error.inc.php:35
+msgid "You do not have the permission to view this zone."
+msgstr ""
+
+#: inc/error.inc.php:36
+msgid "You do not have the permission to edit this user."
+msgstr ""
+
+#: inc/error.inc.php:37
+msgid "You do not have the permission to edit permission templates."
+msgstr ""
+
+#: inc/error.inc.php:38
+msgid "You do not have the permission to delete permission templates."
+msgstr ""
+
+#: inc/error.inc.php:39
+msgid "You do not have the permission to add a new user."
+msgstr ""
+
+#: inc/error.inc.php:40
+msgid "You do not have the permission to delete this user."
+msgstr ""
+
+#: inc/error.inc.php:41
+msgid "You do not have the permission to edit zone templates."
+msgstr ""
+
+#: inc/error.inc.php:42
+msgid "You do not have the permission to delete zone templates."
+msgstr ""
+
+#: inc/error.inc.php:43
+msgid "You do not have the permission to add a zone template."
+msgstr ""
+
+#: inc/error.inc.php:46
+msgid "This is an invalid zone name."
+msgstr ""
+
+#: inc/error.inc.php:47
+msgid "There is already a supermaster with this IP address."
+msgstr ""
+
+#: inc/error.inc.php:48
+msgid "There is already a zone with this name."
+msgstr ""
+
+#: inc/error.inc.php:51
+msgid "Username exist already, please choose another one."
+msgstr ""
+
+#: inc/error.inc.php:52
+msgid "User does not exist."
+msgstr ""
+
+#: inc/error.inc.php:53
+msgid "You did not enter the correct current password."
+msgstr ""
+
+#: inc/error.inc.php:54
+msgid "The two new password fields do not match."
+msgstr ""
+
+#: inc/error.inc.php:55
+msgid "This template is assigned to at least one user."
+msgstr ""
+
+#: inc/error.inc.php:58
+msgid "Invalid or unexpected input given."
+msgstr ""
+
+#: inc/error.inc.php:59
+#, php-format
+msgid "Invalid argument(s) given to function %s"
+msgstr ""
+
+#: inc/error.inc.php:60
+#, php-format
+msgid "Invalid argument(s) given to function %s %s"
+msgstr ""
+
+#: inc/error.inc.php:61
+msgid "Unknown error."
+msgstr ""
+
+#: inc/error.inc.php:62
+msgid "Enter a valid email address."
+msgstr ""
+
+#: inc/error.inc.php:63
+msgid "There is no zone with this ID."
+msgstr ""
+
+#: inc/error.inc.php:64
+msgid "There is no zone template with this ID."
+msgstr ""
+
+#: inc/error.inc.php:65
+msgid "The <a href=\"install/\">install/</a> directory exists, you must remove it first before proceeding."
+msgstr ""
+
+#: inc/error.inc.php:66
+msgid "Zone template with this name already exists, please choose another one."
+msgstr ""
+
+#: inc/error.inc.php:67
+msgid "Template name can't be an empty string."
+msgstr ""
+
+#: inc/error.inc.php:70
+msgid "No database name has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:71
+msgid "No database host has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:72
+msgid "No database username has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:73
+msgid "No database password has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:74
+msgid "No or unknown database type has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:75
+msgid "No database file has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:76
+msgid "It seems that you forgot to update the database after Poweradmin upgrade to new version."
+msgstr ""
+
+#: inc/error.inc.php:79
+msgid "Your content field doesnt have a legit value."
+msgstr ""
+
+#: inc/error.inc.php:80
+msgid "Invalid hostname."
+msgstr ""
+
+#: inc/error.inc.php:81
+msgid "You have invalid characters in your hostname."
+msgstr ""
+
+#: inc/error.inc.php:82
+msgid "A hostname can not start or end with a dash."
+msgstr ""
+
+#: inc/error.inc.php:83
+msgid "Given hostname or one of the labels is too short or too long."
+msgstr ""
+
+#: inc/error.inc.php:84
+msgid "Given hostname has too many slashes."
+msgstr ""
+
+#: inc/error.inc.php:85
+msgid "Unknown record type."
+msgstr ""
+
+#: inc/error.inc.php:86
+msgid "This is not a valid IPv4 or IPv6 address."
+msgstr ""
+
+#: inc/error.inc.php:87
+msgid "This is not a valid IPv6 address."
+msgstr ""
+
+#: inc/error.inc.php:88
+msgid "This is not a valid IPv4 address."
+msgstr ""
+
+#: inc/error.inc.php:89
+msgid "This is not a valid CNAME. Did you assign an MX or NS record to the record?"
+msgstr ""
+
+#: inc/error.inc.php:90
+msgid "This is not a valid record. There is already exists a CNAME with this name."
+msgstr ""
+
+#: inc/error.inc.php:91
+msgid "This is not a valid CNAME. There is already exists an A, AAAA or CNAME with this name."
+msgstr ""
+
+#: inc/error.inc.php:92
+msgid "You can not point a NS or MX record to a CNAME record. Remove or rame the CNAME record first, or take another name."
+msgstr ""
+
+#: inc/error.inc.php:93
+msgid "NS records must be a hostnames."
+msgstr ""
+
+#: inc/error.inc.php:94
+msgid "A prio field should be numeric."
+msgstr ""
+
+#: inc/error.inc.php:95
+msgid "Invalid value for name field of SOA record. It should be the name of the zone."
+msgstr ""
+
+#: inc/error.inc.php:96
+msgid "You have an error in the MNAME field of the SOA record."
+msgstr ""
+
+#: inc/error.inc.php:97
+msgid "Invalid value for content field of HINFO record."
+msgstr ""
+
+#: inc/error.inc.php:98
+msgid "The hostname is too long."
+msgstr ""
+
+#: inc/error.inc.php:99
+msgid "You are using an invalid top level domain."
+msgstr ""
+
+#: inc/error.inc.php:100
+msgid "Invalid value for TTL field. It should be numeric."
+msgstr ""
+
+#: inc/error.inc.php:101
+msgid "Invalid value for prio field. It should be numeric."
+msgstr ""
+
+#: inc/error.inc.php:102
+msgid "Invalid value for name field of SRV record."
+msgstr ""
+
+#: inc/error.inc.php:103
+msgid "Invalid value for the priority field of the SRV record."
+msgstr ""
+
+#: inc/error.inc.php:104
+msgid "Invalid value for the weight field of the SRV record."
+msgstr ""
+
+#: inc/error.inc.php:105
+msgid "Invalid SRV target."
+msgstr ""
+
+#: inc/error.inc.php:106
+msgid "Invalid characters have been used in this record."
+msgstr ""
+
+#: inc/error.inc.php:109
+msgid "Zone has been added successfully."
+msgstr ""
+
+#: inc/error.inc.php:110
+msgid "Zone has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:111
+msgid "Zones have been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:112
+msgid "The user has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:113
+msgid "The user has been created successfully."
+msgstr ""
+
+#: inc/error.inc.php:114
+msgid "The user has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:115
+msgid "The record has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:116
+msgid "The record has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:117
+msgid "The comment has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:118
+msgid "The supermaster has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:119
+msgid "The supermaster has been added successfully."
+msgstr ""
+
+#: inc/error.inc.php:120
+msgid "The permission template has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:121
+msgid "The permission template has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:122
+msgid "Zone template has been added successfully."
+msgstr ""
+
+#: inc/error.inc.php:123
+msgid "Zone template has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:124
+msgid "Zone template has been deleted successfully."
+msgstr ""
+
+#: change_password.php:35
+msgid "Current password"
+msgstr ""
+
+#: change_password.php:39 change_password.php:43
+msgid "New password"
+msgstr ""
+
+#: add_record.php:102 add_zone_templ_record.php:81
+msgid "The record was successfully added."
+msgstr ""
+
+#: add_record.php:111
+msgid "Add record to zone"
+msgstr ""
+
+#: delete_domains.php:41
+msgid "Delete zones"
+msgstr ""
+
+#: delete_domains.php:63 delete_domain.php:68
+#, php-format
+msgid "You are about to delete a slave zone of which the master nameserver, %s, is a supermaster. Deleting the zone now, will result in temporary removal only. Whenever the supermaster sends a notification for this zone, it will be added again!"
+msgstr ""
+
+#: add_supermaster.php:57
+msgid "You do not have the permission to add a new supermaster."
+msgstr ""
+
+#: add_supermaster.php:62 list_supermasters.php:36
+msgid "IP address of supermaster"
+msgstr ""
+
+#: add_supermaster.php:72 list_supermasters.php:37 delete_supermaster.php:58
+msgid "Hostname in NS record"
+msgstr ""
+
+#: add_supermaster.php:82 list_supermasters.php:38 delete_supermaster.php:59
+msgid "Account"
+msgstr ""
+
+#: add_zone_templ_record.php:90
+msgid "Add record to zone template"
+msgstr ""
+
+#: edit_zone_templ_record.php:52
+msgid "Edit record in zone template"
+msgstr ""
+
+#: delete_record.php:92
+msgid "You are trying to delete a record that is needed for this zone to work."
+msgstr ""
+
+#: delete_perm_templ.php:43
+msgid "Delete permission template"
+msgstr ""
+
+#: edit.php:137
+msgid "This zone does not have any records. Weird."
+msgstr ""
+
+#: edit.php:210
+msgid "Edit comment"
+msgstr ""
+
+#: edit.php:295
+msgid "Owner of zone"
+msgstr ""
+
+#: edit.php:301
+msgid "No owner set for this zone."
+msgstr ""
+
+#: edit.php:310 delete_user.php:77
+msgid "Delete"
+msgstr ""
+
+#: edit.php:343
+msgid "Add"
+msgstr ""
+
+#: edit.php:372 edit.php:401 edit.php:424
+msgid "Change"
+msgstr ""
+
+#: list_zones.php:42
+msgid "You do not have the permission to see any zones."
+msgstr ""
+
+#: list_zones.php:49 list_supermasters.php:44
+msgid "There are no zones to show in this listing."
+msgstr ""
+
+#: list_zones.php:69
+msgid "Records"
+msgstr ""
+
+#: list_zones.php:71
+msgid "Serial"
+msgstr ""
+
+#: list_zones.php:97
+msgid "View zone"
+msgstr ""
+
+#: list_zones.php:116
+msgid "Delete zone(s)"
+msgstr ""
+
+#: install/index.php:47
+msgid "Installation step"
+msgstr ""
+
+#: install/index.php:62 install/index.php:80 install/index.php:135
+#: install/index.php:207 install/index.php:275 install/index.php:312
+msgid "Go to step"
+msgstr ""
+
+#: install/index.php:69
+msgid "This installer expects you to have a PowerDNS database accessable from this server. This installer also expects you to have never ran Poweradmin before, or that you want to overwrite the Poweradmin part of the database. If you have had Poweradmin running before, any data in the following tables will be destroyed: perm_items, perm_templ, perm_templ_items, users and zones. This installer will, of course, not touch the data in the PowerDNS tables of the database. However, it is recommended that you create a backup of your database before proceeding."
+msgstr ""
+
+#: install/index.php:71
+msgid "The alternative for this installer is a manual installation. Refer to the poweradmin.org website if you want to go down that road."
+msgstr ""
+
+#: install/index.php:73
+msgid "Finally, if you see any errors during the installation process, a problem report would be appreciated. You can report problems (and ask for help) on the <a href=\"http://groups.google.com/group/poweradmin\" target=\"blank\">poweradmin</a> mailinglist."
+msgstr ""
+
+#: install/index.php:75
+msgid "Do you want to proceed now?"
+msgstr ""
+
+#: install/index.php:86
+msgid "To prepare the database for using Poweradmin, the installer needs to modify the PowerDNS database. It will add a number of tables and it will fill these tables with some data. If the tables are already present, the installer will drop them first."
+msgstr ""
+
+#: install/index.php:88
+msgid "To do all of this, the installer needs to access the database with an account which has sufficient rights. If you trust the installer, you may give it the username and password of the database user root. Otherwise, make sure the user has enough rights, before actually proceeding."
+msgstr ""
+
+#: install/index.php:95
+msgid "The username to use to connect to the database, make sure the username has sufficient rights to perform administrative task to the PowerDNS database (the installer wants to drop, create and fill tables to the database)."
+msgstr ""
+
+#: install/index.php:100 install/index.php:179
+msgid "The password for this username."
+msgstr ""
+
+#: install/index.php:103
+msgid "Hostname"
+msgstr ""
+
+#: install/index.php:105
+msgid "The hostname on which the PowerDNS database resides. Frequently, this will be \"localhost\"."
+msgstr ""
+
+#: install/index.php:108
+msgid "DB Port"
+msgstr ""
+
+#: install/index.php:110
+msgid "The port the database server is listening on."
+msgstr ""
+
+#: install/index.php:113
+msgid "Database"
+msgstr ""
+
+#: install/index.php:115
+msgid "The name of the PowerDNS database."
+msgstr ""
+
+#: install/index.php:118
+msgid "Database type"
+msgstr ""
+
+#: install/index.php:124
+msgid "The type of the PowerDNS database."
+msgstr ""
+
+#: install/index.php:127
+msgid "Poweradmin administrator password"
+msgstr ""
+
+#: install/index.php:129
+msgid "The password of the Poweradmin administrator. This administrator has full rights to Poweradmin using the web interface."
+msgstr ""
+
+#: install/index.php:141
+msgid "Updating database..."
+msgstr ""
+
+#: install/index.php:166
+msgid "done!"
+msgstr ""
+
+#: install/index.php:168
+msgid "Now we will gather all details for the configuration itself."
+msgstr ""
+
+#: install/index.php:174
+msgid "The username for Poweradmin. This new user will have limited rights only."
+msgstr ""
+
+#: install/index.php:182
+msgid "Hostmaster"
+msgstr ""
+
+#: install/index.php:184
+msgid "When creating SOA records and no hostmaster is provided, this value here will be used. Should be in the form \"hostmaster.example.net\"."
+msgstr ""
+
+#: install/index.php:187
+msgid "Primary nameserver"
+msgstr ""
+
+#: install/index.php:189
+msgid "When creating new zones using the template, this value will be used as primary nameserver. Should be like \"ns1.example.net\"."
+msgstr ""
+
+#: install/index.php:192
+msgid "Secondary nameserver"
+msgstr ""
+
+#: install/index.php:194
+msgid "When creating new zones using the template, this value will be used as secondary nameserver. Should be like \"ns2.example.net\"."
+msgstr ""
+
+#: install/index.php:230
+msgid "You now want to give limited rights to Poweradmin so it can update the data in the tables. To do this, you should create a new user and give it rights to select, delete, insert and update records in the PowerDNS database."
+msgstr ""
+
+#: install/index.php:241
+msgid "In MySQL you should now perform the following command:"
+msgstr ""
+
+#: install/index.php:244
+msgid "On PgSQL you would use:"
+msgstr ""
+
+#: install/index.php:259
+msgid "After you have added the new user, proceed with this installation procedure."
+msgstr ""
+
+#: install/index.php:301
+msgid "The installer was able to write to the file \""
+msgstr ""
+
+#: install/index.php:301
+msgid "\". A basic configuration, based on the details you have given, has been created."
+msgstr ""
+
+#: install/index.php:303
+msgid "The installer is unable to write to the file \""
+msgstr ""
+
+#: install/index.php:303
+msgid "\" (which is in itself good). The configuration is printed here. You should now create the file \""
+msgstr ""
+
+#: install/index.php:303
+msgid "\" in the Poweradmin root directory yourself. It should contain the following few lines:"
+msgstr ""
+
+#: install/index.php:318
+msgid "Now we have finished the configuration, you should (must!) remove the directory \"install/\" from the Poweradmin root directory. You will not be able to use Poweradmin if it exists. Do it now."
+msgstr ""
+
+#: install/index.php:319
+msgid "After you have removed the directory, you can login to <a href=\"../index.php\">Poweradmin</a> with username \"admin\" and password \""
+msgstr ""
+
+#: install/index.php:319
+msgid "\". You are highly encouraged to change these as soon as you are logged in."
+msgstr ""
+
+#: list_supermasters.php:51 delete_supermaster.php:45
+msgid "Delete supermaster"
+msgstr ""
+
+#: add_zone_templ.php:41
+msgid "Add zone template for"
+msgstr ""
+
+#: add_zone_templ.php:53 list_zone_templ.php:59
+msgid "Add zone template"
+msgstr ""
+
+#: delete_user.php:71
+msgid "You are about to delete a user. This user is owner for a number of zones. Please decide what to do with these zones."
+msgstr ""
+
+#: delete_user.php:76
+msgid "Zone"
+msgstr ""
+
+#: delete_user.php:78
+msgid "Leave"
+msgstr ""
+
+#: delete_user.php:79
+msgid "Add new owner"
+msgstr ""
+
+#: delete_user.php:80
+msgid "Owner to be added"
+msgstr ""
+
+#: delete_user.php:106
+msgid "Really delete this user?"
+msgstr ""
+
+#: reset_password.php:89
+msgid "Reset Password"
+msgstr ""
+
+#: reset_password.php:93
+msgid "Registered Email Address"
+msgstr ""
+
+#: reset_password.php:99
+msgid "Reset password"
+msgstr ""
+
+#: list_zone_templ.php:33
+msgid "Zone templates for"
+msgstr ""

+ 1167 - 0
devadmin/html/poweradmin-2.1.7/locale/ja_JP/LC_MESSAGES/ja.po

@@ -0,0 +1,1167 @@
+# Poweradmin translation.
+# Copyright (C) 2011 Poweradmin Development Team
+# This file is distributed under the same license as the Poweradmin package.
+# 
+# Translators:
+#   <eg@fbsd.lt>, 2011.
+# Koichi MATSUMOTO <mzch@me.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: Poweradmin\n"
+"Report-Msgid-Bugs-To: https://github.com/poweradmin/poweradmin/issues\n"
+"POT-Creation-Date: 2011-07-08 23:45+0300\n"
+"PO-Revision-Date: 2012-02-14 08:14+0000\n"
+"Last-Translator: Koichi MATSUMOTO <mzch@me.com>\n"
+"Language-Team: Japanese (http://www.transifex.com/projects/p/poweradmin/language/ja/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ja\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: edit_record.php:58
+msgid "Edit record in zone"
+msgstr "次のゾーンのレコードを編集:"
+
+#: edit_record.php:67 list_perm_templ.php:36 edit_zone_templ.php:96
+#: edit_zone_templ.php:173 search.php:65 search.php:119 add_perm_templ.php:44
+#: add_perm_templ.php:55 add_record.php:120 delete_domains.php:56
+#: add_zone_templ_record.php:99 edit_zone_templ_record.php:61 edit.php:143
+#: edit.php:240 list_zones.php:67 add_zone_templ.php:45 list_zone_templ.php:37
+#: edit_perm_templ.php:53 edit_perm_templ.php:65
+msgid "Name"
+msgstr "名前"
+
+#: edit_record.php:69 edit_zone_templ.php:97 search.php:66 search.php:120
+#: add_record.php:122 add_zone_master.php:121 delete_domains.php:58
+#: add_zone_templ_record.php:101 edit_zone_templ_record.php:63 edit.php:144
+#: edit.php:242 edit.php:349 list_zones.php:68 delete_domain.php:63
+msgid "Type"
+msgstr "タイプ"
+
+#: edit_record.php:70 edit_zone_templ.php:99 search.php:121 add_record.php:124
+#: add_zone_templ_record.php:103 edit_zone_templ_record.php:64 edit.php:146
+#: edit.php:244
+msgid "Priority"
+msgstr "プライオリティ"
+
+#: edit_record.php:71 edit_zone_templ.php:98 search.php:122 add_record.php:123
+#: add_zone_templ_record.php:102 edit_zone_templ_record.php:65 edit.php:145
+#: edit.php:243
+msgid "Content"
+msgstr "内容"
+
+#: edit_record.php:72 edit_zone_templ.php:100 search.php:123
+#: add_record.php:125 add_zone_templ_record.php:104
+#: edit_zone_templ_record.php:66 edit.php:147 edit.php:245
+msgid "TTL"
+msgstr "TTL"
+
+#: edit_record.php:109 users.php:121 edit_comment.php:87 edit_user.php:141
+#: edit_zone_templ.php:163 edit_zone_templ.php:181 add_perm_templ.php:72
+#: edit_zone_templ_record.php:91 edit.php:227 delete_user.php:111
+#: edit_perm_templ.php:86 add_user.php:76
+msgid "Commit changes"
+msgstr "変更を反映"
+
+#: edit_record.php:110 users.php:122 edit_comment.php:88 edit_user.php:142
+#: edit_zone_templ.php:164 edit_zone_templ_record.php:92 edit.php:228
+msgid "Reset changes"
+msgstr "変更をリセット"
+
+#: users.php:47 index.php:60 inc/header.inc.php:82
+msgid "User administration"
+msgstr "ユーザー管理"
+
+#: users.php:52 edit_user.php:103 inc/auth.inc.php:133 install/index.php:93
+#: install/index.php:172 add_user.php:39
+msgid "Username"
+msgstr "ユーザー名"
+
+#: users.php:53 edit_user.php:107 add_user.php:43
+msgid "Fullname"
+msgstr "氏名"
+
+#: users.php:54 list_perm_templ.php:37 edit_user.php:132
+#: edit_zone_templ.php:177 add_perm_templ.php:48 add_perm_templ.php:56
+#: add_zone_templ.php:49 list_zone_templ.php:38 edit_perm_templ.php:57
+#: edit_perm_templ.php:66 add_user.php:67
+msgid "Description"
+msgstr "説明"
+
+#: users.php:55 edit_user.php:115 add_user.php:51
+msgid "Email address"
+msgstr "メールアドレス"
+
+#: users.php:56 add_zone_master.php:132 edit.php:381
+msgid "Template"
+msgstr "テンプレート"
+
+#: users.php:57 edit_user.php:136 add_user.php:71
+msgid "Enabled"
+msgstr "有効"
+
+#: users.php:71 edit_user.php:98
+msgid "Edit user"
+msgstr "次のユーザーを編集:"
+
+#: users.php:75 delete_user.php:60
+msgid "Delete user"
+msgstr "次のユーザーを削除:"
+
+#: users.php:131 edit_perm_templ.php:47
+msgid "Edit permission template"
+msgstr "次の権限テンプレートを編集:"
+
+#: users.php:135 add_user.php:35
+msgid "Add user"
+msgstr "ユーザーを追加"
+
+#: list_perm_templ.php:32
+msgid "Permission templates"
+msgstr "権限テンプレート"
+
+#: list_perm_templ.php:48 list_zone_templ.php:46
+msgid "Edit template"
+msgstr "テンプレートを編集"
+
+#: list_perm_templ.php:49 list_zone_templ.php:47
+msgid "Delete template"
+msgstr "テンプレートを削除"
+
+#: list_perm_templ.php:61 add_perm_templ.php:40
+msgid "Add permission template"
+msgstr "権限テンプレートを追加"
+
+#: edit_comment.php:53
+msgid "Edit comment in zone"
+msgstr "次のゾーンのコメントを編集:"
+
+#: edit_user.php:111 inc/auth.inc.php:137 install/index.php:98
+#: install/index.php:177 add_user.php:47
+msgid "Password"
+msgstr "パスワード"
+
+#: edit_user.php:120 add_user.php:56
+msgid "Permission template"
+msgstr "権限テンプレート"
+
+#: edit_user.php:147
+#, php-format
+msgid "This user has been assigned the permission template \"%s\"."
+msgstr "このユーザーには、権限テンプレート \"%s\" が割り当てられています。"
+
+#: edit_user.php:149
+msgid "The description for this template is"
+msgstr "このテンプレートの説明は、"
+
+#: edit_user.php:151
+msgid "Based on this template, this user has the following permissions"
+msgstr "このテンプレートに基づいて、ユーザーには次の権限が与えられています"
+
+#: edit_zone_templ.php:82
+msgid "Edit zone template"
+msgstr "次のゾーンテンプレートを編集:"
+
+#: edit_zone_templ.php:90
+msgid "This template zone does not have any records yet."
+msgstr "このテンプレートゾーンにはレコードがありません。"
+
+#: edit_zone_templ.php:107 search.php:131 edit.php:161
+msgid "Edit record"
+msgstr "レコードを編集"
+
+#: edit_zone_templ.php:109 delete_zone_templ_record.php:53 search.php:136
+#: delete_record.php:66 edit.php:163
+msgid "Delete record"
+msgstr "レコードを削除"
+
+#: edit_zone_templ.php:145 add_zone_templ_record.php:139
+msgid "The following placeholders can be used in template records"
+msgstr "次のプレースホルダーをテンプレートレコードで使うことができます"
+
+#: edit_zone_templ.php:148 add_zone_templ_record.php:142
+msgid "substituted with current zone name"
+msgstr "現在のゾーン名で置換されます"
+
+#: edit_zone_templ.php:149 add_zone_templ_record.php:143
+msgid "substituted with current date and 2 numbers"
+msgstr "現在の日付と2桁の数字で置換されます"
+
+#: edit_zone_templ.php:155 edit.php:219
+msgid "Template Name"
+msgstr "テンプレート名"
+
+#: edit_zone_templ.php:159 edit.php:223
+msgid "Template Description"
+msgstr "テンプレート詳細"
+
+#: edit_zone_templ.php:165 edit.php:229
+msgid "Save as template"
+msgstr "テンプレートとして保存"
+
+#: edit_zone_templ.php:166
+msgid "Update zones"
+msgstr "ゾーンを更新"
+
+#: edit_zone_templ.php:183 add_record.php:158 add_zone_templ_record.php:147
+#: edit.php:287
+msgid "Add record"
+msgstr "レコードを追加"
+
+#: edit_zone_templ.php:184 delete_zone_templ.php:44
+msgid "Delete zone template"
+msgstr "次のゾーンテンプレートを削除:"
+
+#: add_zone_slave.php:67 index.php:54 inc/header.inc.php:76
+msgid "Add slave zone"
+msgstr "スレーブゾーンを追加"
+
+#: add_zone_slave.php:73 add_zone_master.php:91
+msgid "Zone name"
+msgstr "ゾーン名"
+
+#: add_zone_slave.php:79 edit.php:413
+msgid "IP address of master NS"
+msgstr "マスター NS の IP アドレス"
+
+#: add_zone_slave.php:85 search.php:70 add_zone_master.php:102
+#: delete_domains.php:57 list_zones.php:70 delete_domain.php:62
+msgid "Owner"
+msgstr "オーナー"
+
+#: add_zone_slave.php:106 add_zone_master.php:146
+msgid "Add zone"
+msgstr "ゾーンを追加"
+
+#: delete_zone_templ.php:50 delete_zone_templ_record.php:74
+#: delete_domains.php:72 delete_record.php:94 delete_perm_templ.php:49
+#: delete_domain.php:72 delete_supermaster.php:61
+msgid "Are you sure?"
+msgstr "よろしいですか?"
+
+#: delete_zone_templ.php:51 delete_zone_templ_record.php:75
+#: delete_domains.php:73 delete_record.php:95 delete_perm_templ.php:50
+#: delete_domain.php:73 delete_supermaster.php:62
+msgid "Yes"
+msgstr "はい"
+
+#: delete_zone_templ.php:52 delete_zone_templ_record.php:76
+#: delete_domains.php:74 delete_record.php:96 delete_perm_templ.php:51
+#: delete_domain.php:74 delete_supermaster.php:63
+msgid "No"
+msgstr "いいえ"
+
+#: index.php:26
+msgid "Welcome"
+msgstr "ようこそ"
+
+#: index.php:37 inc/header.inc.php:59
+msgid "Index"
+msgstr "ホーム"
+
+#: index.php:39 search.php:32 inc/header.inc.php:61
+msgid "Search zones and records"
+msgstr "ゾーンとレコードの検索"
+
+#: index.php:42 inc/header.inc.php:64 list_zones.php:39
+msgid "List zones"
+msgstr "ゾーン一覧"
+
+#: index.php:45 inc/header.inc.php:67
+msgid "List zone templates"
+msgstr "ゾーンテンプレート一覧"
+
+#: index.php:48 inc/header.inc.php:70 list_supermasters.php:32
+msgid "List supermasters"
+msgstr "スーパーマスター一覧"
+
+#: index.php:51 inc/header.inc.php:73 add_zone_master.php:82
+msgid "Add master zone"
+msgstr "マスターゾーンを追加"
+
+#: index.php:57 inc/header.inc.php:79 add_supermaster.php:54
+#: add_supermaster.php:106
+msgid "Add supermaster"
+msgstr "スーパーマスターを追加"
+
+#: index.php:59 inc/header.inc.php:81 change_password.php:31
+#: change_password.php:49
+msgid "Change password"
+msgstr "パスワードの変更"
+
+#: index.php:61 inc/header.inc.php:83
+msgid "Logout"
+msgstr "ログアウト"
+
+#: search.php:61
+msgid "Zones found"
+msgstr "マッチしたゾーン"
+
+#: search.php:67
+msgid "Master"
+msgstr "マスター"
+
+#: search.php:79 edit.php:129
+msgid "Edit zone"
+msgstr "次のゾーンを編集:"
+
+#: search.php:84 list_zones.php:99 delete_domain.php:54
+msgid "Delete zone"
+msgstr "次のゾーンを削除:"
+
+#: search.php:115
+msgid "Records found"
+msgstr "マッチしたレコード"
+
+#: search.php:155
+msgid "Query"
+msgstr "問い合わせ"
+
+#: search.php:161
+msgid "Search"
+msgstr "検索"
+
+#: search.php:166
+msgid ""
+"Enter a hostname or IP address. SQL LIKE syntax supported: an underscore (_)"
+" in pattern matches any single character, a percent sign (%) matches any "
+"string of zero or more characters."
+msgstr "ホスト名か IP アドレスを入力して下さい。SQL ライクな文法をサポートしています: アンダースコア (_) は任意の一文字にマッチし、パーセント記号 (%) は、空文字列を含む任意の長さの文字列にマッチします。"
+
+#: inc/users.inc.php:382
+msgid "Password has been changed, please login."
+msgstr "パスワードが変更されました。ログインし直して下さい。"
+
+#: inc/record.inc.php:387
+msgid ""
+"You are trying to delete the SOA record. You are not allowed to remove it, "
+"unless you remove the entire zone."
+msgstr "SOA レコードを削除しようとしましたが、ゾーン全体を削除しない限り、SOA レコードを削除することはできません。"
+
+#: inc/record.inc.php:751
+msgid "Function returned an error (multiple zones matching this zone ID)."
+msgstr "関数がエラーを返しました (同一のゾーンIDが複数のゾーンにマッチしました)。"
+
+#: inc/toolkit.inc.php:33 reset_password.php:27
+msgid "You have to create a config.inc.php!"
+msgstr "config.inc.php を作成して下さい!"
+
+#: inc/toolkit.inc.php:154
+msgid "Show page"
+msgstr "ページを表示"
+
+#: inc/toolkit.inc.php:173
+msgid "Show zones beginning with"
+msgstr "次で始まるゾーンを表示"
+
+#: inc/toolkit.inc.php:246
+msgid ""
+"Something has been successfully performed. What exactly, however, will "
+"remain a mystery."
+msgstr "何かが実行されました。しかし何が実行されたのかわかりません。"
+
+#: inc/toolkit.inc.php:258
+msgid "Success!"
+msgstr "正常終了!"
+
+#: inc/toolkit.inc.php:269
+msgid "Successful!"
+msgstr "正常終了!"
+
+#: inc/toolkit.inc.php:275
+msgid "back"
+msgstr "戻る"
+
+#: inc/toolkit.inc.php:314
+msgid "Inactive"
+msgstr "無効"
+
+#: inc/toolkit.inc.php:318
+msgid "Active"
+msgstr "有効"
+
+#: inc/auth.inc.php:31
+msgid "You have logged out."
+msgstr "ログアウトしました。"
+
+#: inc/auth.inc.php:45
+msgid "Session expired, please login again."
+msgstr "セッションの有効期限が切れました。ログインし直して下さい。"
+
+#: inc/auth.inc.php:93
+msgid "Authentication failed!"
+msgstr "認証に失敗しました!"
+
+#: inc/auth.inc.php:106
+msgid ""
+"Authentication failed! - <a href=\"reset_password.php\">(forgot "
+"password)</a>"
+msgstr "認証に失敗! - <a href=\"reset_password.php\">(パスワードを紛失)</a>"
+
+#: inc/auth.inc.php:127
+msgid "Log in"
+msgstr "ログイン"
+
+#: inc/auth.inc.php:143
+msgid "Go"
+msgstr "実行する"
+
+#: inc/error.inc.php:24
+msgid "You do not have the permission to perform searches."
+msgstr "検索を実行する権限がありません。"
+
+#: inc/error.inc.php:25
+msgid "You do not have the permission to add a record to this zone."
+msgstr "このゾーンにレコードを追加する権限がありません。"
+
+#: inc/error.inc.php:26
+msgid "You do not have the permission to edit this record."
+msgstr "このレコードを編集する権限がありません。"
+
+#: inc/error.inc.php:27
+msgid "You do not have the permission to view this record."
+msgstr "このレコードを閲覧する権限がありません。"
+
+#: inc/error.inc.php:28
+msgid "You do not have the permission to delete this record."
+msgstr "このレコードを削除する権限がありません。"
+
+#: inc/error.inc.php:29
+msgid "You do not have the permission to add a master zone."
+msgstr "マスターゾーンを追加する権限がありません。"
+
+#: inc/error.inc.php:30
+msgid "You do not have the permission to add a slave zone."
+msgstr "スレーブゾーンを追加する権限がありません。"
+
+#: inc/error.inc.php:31
+msgid "You do not have the permission to delete a zone."
+msgstr "ゾーンを削除する権限がありません。"
+
+#: inc/error.inc.php:32
+msgid "You do not have the permission to view this comment."
+msgstr "このコメントを閲覧する権限がありません。"
+
+#: inc/error.inc.php:33
+msgid "You do not have the permission to edit this comment."
+msgstr "このコメントを編集する権限がありません。"
+
+#: inc/error.inc.php:34
+msgid "You do not have the permission to delete a supermaster."
+msgstr "スーパーマスターを削除する権限がありません。"
+
+#: inc/error.inc.php:35
+msgid "You do not have the permission to view this zone."
+msgstr "このゾーンを閲覧する権限がありません。"
+
+#: inc/error.inc.php:36
+msgid "You do not have the permission to edit this user."
+msgstr "このユーザーの情報を編集する権限がありません。"
+
+#: inc/error.inc.php:37
+msgid "You do not have the permission to edit permission templates."
+msgstr "権限テンプレートを編集する権限がありません。"
+
+#: inc/error.inc.php:38
+msgid "You do not have the permission to delete permission templates."
+msgstr "権限テンプレートを削除する権限がありません。"
+
+#: inc/error.inc.php:39
+msgid "You do not have the permission to add a new user."
+msgstr "新規にユーザーを追加する権限がありません。"
+
+#: inc/error.inc.php:40
+msgid "You do not have the permission to delete this user."
+msgstr "このユーザーを削除する権限がありません。"
+
+#: inc/error.inc.php:41
+msgid "You do not have the permission to edit zone templates."
+msgstr "ゾーンテンプレートを編集する権限がありません。"
+
+#: inc/error.inc.php:42
+msgid "You do not have the permission to delete zone templates."
+msgstr "ゾーンテンプレートを削除する権限がありません。"
+
+#: inc/error.inc.php:43
+msgid "You do not have the permission to add a zone template."
+msgstr "ゾーンテンプレートを追加する権限がありません。"
+
+#: inc/error.inc.php:46
+msgid "This is an invalid zone name."
+msgstr "不適切なゾーン名です。"
+
+#: inc/error.inc.php:47
+msgid "There is already a supermaster with this IP address."
+msgstr "同じ IP アドレスのスーパーマスターが既にあります。"
+
+#: inc/error.inc.php:48
+msgid "There is already a zone with this name."
+msgstr "同じ名前のゾーンが既にあります。"
+
+#: inc/error.inc.php:51
+msgid "Username exist already, please choose another one."
+msgstr "同じユーザー名が既にあります。別のユーザー名を指定して下さい。"
+
+#: inc/error.inc.php:52
+msgid "User does not exist."
+msgstr "ユーザーが存在しません。"
+
+#: inc/error.inc.php:53
+msgid "You did not enter the correct current password."
+msgstr "現在のパスワードに間違ったパスワードが入力されました。"
+
+#: inc/error.inc.php:54
+msgid "The two new password fields do not match."
+msgstr "二つの新しいパスワード欄に入力された内容が一致しません。"
+
+#: inc/error.inc.php:55
+msgid "This template is assigned to at least one user."
+msgstr "このテンプレートは少なくとも一人のユーザーに割り当てられています。"
+
+#: inc/error.inc.php:58
+msgid "Invalid or unexpected input given."
+msgstr "正しくないか、もしくは不適切な入力です。"
+
+#: inc/error.inc.php:59
+#, php-format
+msgid "Invalid argument(s) given to function %s"
+msgstr "関数 %s に不正な引数が渡されました。"
+
+#: inc/error.inc.php:60
+#, php-format
+msgid "Invalid argument(s) given to function %s %s"
+msgstr "関数 %s %s に不正な引数が渡されました。"
+
+#: inc/error.inc.php:61
+msgid "Unknown error."
+msgstr "未知のエラーです。"
+
+#: inc/error.inc.php:62
+msgid "Enter a valid email address."
+msgstr "正しいメールアドレスを入力して下さい。"
+
+#: inc/error.inc.php:63
+msgid "There is no zone with this ID."
+msgstr "この ID を持つゾーンはありません。"
+
+#: inc/error.inc.php:64
+msgid "There is no zone template with this ID."
+msgstr "この ID を持つゾーンテンプレートはありません。"
+
+#: inc/error.inc.php:65
+msgid ""
+"The <a href=\"install/\">install/</a> directory exists, you must remove it "
+"first before proceeding."
+msgstr "<a href=\"install/\">Install</a> ディレクトリを削除しないと次の処理に進めません。"
+
+#: inc/error.inc.php:66
+msgid ""
+"Zone template with this name already exists, please choose another one."
+msgstr "同じ名前のゾーンテンプレートが既に存在します。別の名前に変更して下さい。"
+
+#: inc/error.inc.php:67
+msgid "Template name can't be an empty string."
+msgstr "テンプレート名に空白文字を含めることはできません。"
+
+#: inc/error.inc.php:70
+msgid "No database name has been set in config.inc.php."
+msgstr "config.inc.php にデータベース名が設定されていません。"
+
+#: inc/error.inc.php:71
+msgid "No database host has been set in config.inc.php."
+msgstr "config.inc.php にデータベースホスト名が設定されていません。"
+
+#: inc/error.inc.php:72
+msgid "No database username has been set in config.inc.php."
+msgstr "config.inc.php にデータベースユーザー名が設定されていません。"
+
+#: inc/error.inc.php:73
+msgid "No database password has been set in config.inc.php."
+msgstr "config.inc.php にデータベースパスワードが設定されていません。"
+
+#: inc/error.inc.php:74
+msgid "No or unknown database type has been set in config.inc.php."
+msgstr "config.inc.php にデータベースタイプが設定されていないか、未知の値が設定されています。"
+
+#: inc/error.inc.php:75
+msgid "No database file has been set in config.inc.php."
+msgstr "config.inc.php にデータベースファイルが設定されていません。"
+
+#: inc/error.inc.php:76
+msgid ""
+"It seems that you forgot to update the database after Poweradmin upgrade to "
+"new version."
+msgstr "Poweradmin を新しいバージョンにアップグレードした後でデータベースを更新し忘れているようです。"
+
+#: inc/error.inc.php:79
+msgid "Your content field doesnt have a legit value."
+msgstr "内容欄に入力した値が不適切です。"
+
+#: inc/error.inc.php:80
+msgid "Invalid hostname."
+msgstr "不適切なホスト名です。"
+
+#: inc/error.inc.php:81
+msgid "You have invalid characters in your hostname."
+msgstr "ホスト名に不適切な文字があります。"
+
+#: inc/error.inc.php:82
+msgid "A hostname can not start or end with a dash."
+msgstr "ホスト名をダッシュで始めたりダッシュで終わらせることはできません。"
+
+#: inc/error.inc.php:83
+msgid "Given hostname or one of the labels is too short or too long."
+msgstr "指定のホスト名、またはラベルの中に短すぎるか長すぎるものがあります。"
+
+#: inc/error.inc.php:84
+msgid "Given hostname has too many slashes."
+msgstr "指定のホスト名にはスラッシュが多すぎます。"
+
+#: inc/error.inc.php:85
+msgid "Unknown record type."
+msgstr "未知のレコードタイプです。"
+
+#: inc/error.inc.php:86
+msgid "This is not a valid IPv4 or IPv6 address."
+msgstr "IPv4 アドレスとしても IPv6 アドレスとしても正しい値ではありません。"
+
+#: inc/error.inc.php:87
+msgid "This is not a valid IPv6 address."
+msgstr "IPv6 アドレスとして正しい値ではありません。"
+
+#: inc/error.inc.php:88
+msgid "This is not a valid IPv4 address."
+msgstr "IPv4 アドレスとして正しい値ではありません。"
+
+#: inc/error.inc.php:89
+msgid ""
+"This is not a valid CNAME. Did you assign an MX or NS record to the record?"
+msgstr "不適切な CNAME です。MX か NS をレコードに割り当てていませんか?"
+
+#: inc/error.inc.php:90
+msgid ""
+"This is not a valid record. There is already exists a CNAME with this name."
+msgstr "不適切なレコードです。この名前の CNAME が既に存在します。"
+
+#: inc/error.inc.php:91
+msgid ""
+"This is not a valid CNAME. There is already exists an A, AAAA or CNAME with "
+"this name."
+msgstr "不適切な CNAME です。A、もしくはAAAA、CNAME レコードのいずれかに同じホスト名が存在します。"
+
+#: inc/error.inc.php:92
+msgid ""
+"You can not point a NS or MX record to a CNAME record. Remove or rame the "
+"CNAME record first, or take another name."
+msgstr "NS レコードもしくは MX レコードを CNAME レコード に向けることはできません。CNAME レコードの名前を変更、または削除するか、もしくは別のホスト名を指定して下さい。"
+
+#: inc/error.inc.php:93
+msgid "NS records must be a hostnames."
+msgstr "NS レコードにはホスト名を指定しなくてはなりません。"
+
+#: inc/error.inc.php:94
+msgid "A prio field should be numeric."
+msgstr "プライオリティは数字でなければなりません。"
+
+#: inc/error.inc.php:95
+msgid ""
+"Invalid value for name field of SOA record. It should be the name of the "
+"zone."
+msgstr "SOA レコードの name 項目に不適切な値が設定されています。そこはゾーン名でなければなりません。"
+
+#: inc/error.inc.php:96
+msgid "You have an error in the MNAME field of the SOA record."
+msgstr "SOA レコードの MNAME 項目にエラーがあります。"
+
+#: inc/error.inc.php:97
+msgid "Invalid value for content field of HINFO record."
+msgstr "HINFO レコードの content 項目に不適切な値が設定されています。"
+
+#: inc/error.inc.php:98
+msgid "The hostname is too long."
+msgstr "ホスト名が長すぎます。"
+
+#: inc/error.inc.php:99
+msgid "You are using an invalid top level domain."
+msgstr "不正なトップレベルドメインを使おうとしています。"
+
+#: inc/error.inc.php:100
+msgid "Invalid value for TTL field. It should be numeric."
+msgstr "TTL に不適切な値が設定されています。TTL は数字でなければなりません。"
+
+#: inc/error.inc.php:101
+msgid "Invalid value for prio field. It should be numeric."
+msgstr "プライオリティに不適切な値が設定されています。プライオリティは数字でなければなりません。"
+
+#: inc/error.inc.php:102
+msgid "Invalid value for name field of SRV record."
+msgstr "SRV レコードのドメイン名項目に不適切な値が設定されています。"
+
+#: inc/error.inc.php:103
+msgid "Invalid value for the priority field of the SRV record."
+msgstr "SRV レコードの priority 項目に不適切な値が設定されています。"
+
+#: inc/error.inc.php:104
+msgid "Invalid value for the weight field of the SRV record."
+msgstr "SRV レコードの Weight 項目に不適切な値が設定されています。"
+
+#: inc/error.inc.php:105
+msgid "Invalid SRV target."
+msgstr "不適切な SRV ターゲットです。"
+
+#: inc/error.inc.php:106
+msgid "Invalid characters have been used in this record."
+msgstr "このレコードは、不適切な文字が使用されています。"
+
+#: inc/error.inc.php:109
+msgid "Zone has been added successfully."
+msgstr "ゾーンが追加されました。"
+
+#: inc/error.inc.php:110
+msgid "Zone has been deleted successfully."
+msgstr "指定のゾーンは削除されました。"
+
+#: inc/error.inc.php:111
+msgid "Zones have been updated successfully."
+msgstr "指定のゾーンは更新されました。"
+
+#: inc/error.inc.php:112
+msgid "The user has been updated successfully."
+msgstr "指定のユーザーは更新されました。"
+
+#: inc/error.inc.php:113
+msgid "The user has been created successfully."
+msgstr "ユーザーが作成されました。"
+
+#: inc/error.inc.php:114
+msgid "The user has been deleted successfully."
+msgstr "指定のユーザーは削除されました。"
+
+#: inc/error.inc.php:115
+msgid "The record has been updated successfully."
+msgstr "指定のレコードは更新されました。"
+
+#: inc/error.inc.php:116
+msgid "The record has been deleted successfully."
+msgstr "指定のレコードは削除されました。"
+
+#: inc/error.inc.php:117
+msgid "The comment has been updated successfully."
+msgstr "コメントが更新されました。"
+
+#: inc/error.inc.php:118
+msgid "The supermaster has been deleted successfully."
+msgstr "指定のスーパーマスターは削除されました。"
+
+#: inc/error.inc.php:119
+msgid "The supermaster has been added successfully."
+msgstr "スーパーマスターが追加されました。"
+
+#: inc/error.inc.php:120
+msgid "The permission template has been updated successfully."
+msgstr "指定の権限テンプレートは更新されました。"
+
+#: inc/error.inc.php:121
+msgid "The permission template has been deleted successfully."
+msgstr "指定の権限テンプレートは削除されました。"
+
+#: inc/error.inc.php:122
+msgid "Zone template has been added successfully."
+msgstr "ゾーンテンプレートが追加されました。"
+
+#: inc/error.inc.php:123
+msgid "Zone template has been updated successfully."
+msgstr "指定のゾーンテンプレートは更新されました。"
+
+#: inc/error.inc.php:124
+msgid "Zone template has been deleted successfully."
+msgstr "指定のゾーンテンプレートは削除されました。"
+
+#: change_password.php:35
+msgid "Current password"
+msgstr "現在のパスワード"
+
+#: change_password.php:39 change_password.php:43
+msgid "New password"
+msgstr "新しいパスワード"
+
+#: add_record.php:102 add_zone_templ_record.php:81
+msgid "The record was successfully added."
+msgstr "レコードが追加されました。"
+
+#: add_record.php:111
+msgid "Add record to zone"
+msgstr "次のゾーンにレコードを追加:"
+
+#: delete_domains.php:41
+msgid "Delete zones"
+msgstr "ゾーンを削除"
+
+#: delete_domains.php:63 delete_domain.php:68
+#, php-format
+msgid ""
+"You are about to delete a slave zone of which the master nameserver, %s, is "
+"a supermaster. Deleting the zone now, will result in temporary removal only."
+" Whenever the supermaster sends a notification for this zone, it will be "
+"added again!"
+msgstr "マスターネームサーバ (%s) がスーパーマスターであるスレーブゾーンを削除しようとしています。ゾーンを削除しても一時的に削除されるだけで、スーパーマスターからこのゾーンが通知されると、再度ゾーンが追加されていまいます!"
+
+#: add_supermaster.php:57
+msgid "You do not have the permission to add a new supermaster."
+msgstr "新たにスーパーマスターを追加する権限がありません。"
+
+#: add_supermaster.php:62 list_supermasters.php:36
+msgid "IP address of supermaster"
+msgstr "スーパーマスターの IP アドレス"
+
+#: add_supermaster.php:72 list_supermasters.php:37 delete_supermaster.php:58
+msgid "Hostname in NS record"
+msgstr "NS レコードのホスト名"
+
+#: add_supermaster.php:82 list_supermasters.php:38 delete_supermaster.php:59
+msgid "Account"
+msgstr "アカウント"
+
+#: add_zone_templ_record.php:90
+msgid "Add record to zone template"
+msgstr "次のゾーンテンプレートにレコードを追加:"
+
+#: edit_zone_templ_record.php:52
+msgid "Edit record in zone template"
+msgstr "次のゾーンテンプレートのレコードを編集:"
+
+#: delete_record.php:92
+msgid ""
+"You are trying to delete a record that is needed for this zone to work."
+msgstr "このゾーンになくてはならないレコードを削除しようとしています。"
+
+#: delete_perm_templ.php:43
+msgid "Delete permission template"
+msgstr "次の権限テンプレートを削除"
+
+#: edit.php:137
+msgid "This zone does not have any records. Weird."
+msgstr "このゾーンにはレコードがありません。変ですね。"
+
+#: edit.php:210
+msgid "Edit comment"
+msgstr "コメントを編集"
+
+#: edit.php:295
+msgid "Owner of zone"
+msgstr "ゾーンのオーナー"
+
+#: edit.php:301
+msgid "No owner set for this zone."
+msgstr "このゾーンにはオーナーが設定されていません。"
+
+#: edit.php:310 delete_user.php:77
+msgid "Delete"
+msgstr "削除"
+
+#: edit.php:343
+msgid "Add"
+msgstr "追加"
+
+#: edit.php:372 edit.php:401 edit.php:424
+msgid "Change"
+msgstr "変更"
+
+#: list_zones.php:42
+msgid "You do not have the permission to see any zones."
+msgstr "ゾーンを閲覧する権限がありません。"
+
+#: list_zones.php:49 list_supermasters.php:44
+msgid "There are no zones to show in this listing."
+msgstr "この一覧に表示するゾーンはありません。"
+
+#: list_zones.php:69
+msgid "Records"
+msgstr "レコード数"
+
+#: list_zones.php:71
+msgid "Serial"
+msgstr "シリアル"
+
+#: list_zones.php:97
+msgid "View zone"
+msgstr "次のゾーンを表示:"
+
+#: list_zones.php:116
+msgid "Delete zone(s)"
+msgstr "ゾーンを削除"
+
+#: install/index.php:47
+msgid "Installation step"
+msgstr "インストールステップ"
+
+#: install/index.php:62 install/index.php:80 install/index.php:135
+#: install/index.php:207 install/index.php:275 install/index.php:312
+msgid "Go to step"
+msgstr "ステップ"
+
+#: install/index.php:69
+msgid ""
+"This installer expects you to have a PowerDNS database accessable from this "
+"server. This installer also expects you to have never ran Poweradmin before,"
+" or that you want to overwrite the Poweradmin part of the database. If you "
+"have had Poweradmin running before, any data in the following tables will be"
+" destroyed: perm_items, perm_templ, perm_templ_items, users and zones. This "
+"installer will, of course, not touch the data in the PowerDNS tables of the "
+"database. However, it is recommended that you create a backup of your "
+"database before proceeding."
+msgstr "このインストーラーは、PowerDNS のデータベースにこのサーバーからアクセスすることができることを前提としています。また、以前に Poweradmin を実行したことがないか、したことがあってもデータベースで Poweradmin が使用した箇所を上書きすることが前提となります。もし、以前に Poweradmin を実行していたのなら、次のテーブルのデータがクリアされます: perm_itemrs、perm_templ、perm_templ_items、users、zones。当然のことながらこのインストーラーはデータベースの PowerDNS のテーブルに変更を加えることはありませんが、念のため処理を始める前にデータベースのバックアップを行うことをお勧めします。"
+
+#: install/index.php:71
+msgid ""
+"The alternative for this installer is a manual installation. Refer to the "
+"poweradmin.org website if you want to go down that road."
+msgstr "このインストーラーを使わずに、手動でインストールすることもできます。その場合は、poweradmin.org のウェブサイトをご覧下さい。"
+
+#: install/index.php:73
+msgid ""
+"Finally, if you see any errors during the installation process, a problem "
+"report would be appreciated. You can report problems (and ask for help) on "
+"the <a href=\"http://groups.google.com/group/poweradmin\" target=\"blank\">poweradmin</a> mailinglist."
+msgstr "最後に、インストール処理中にエラーが発生した場合、問題を報告していただけるとありがたく思います。<a href=\"http://groups.google.com/group/poweradmin\" target=\"blank\">poweradmin</a> メーリングリストに問題を報告して解決策を尋ねることができます。"
+
+#: install/index.php:75
+msgid "Do you want to proceed now?"
+msgstr "続けてもよろしいですか?"
+
+#: install/index.php:86
+msgid ""
+"To prepare the database for using Poweradmin, the installer needs to modify "
+"the PowerDNS database. It will add a number of tables and it will fill these"
+" tables with some data. If the tables are already present, the installer "
+"will drop them first."
+msgstr "Poweradmin で使用するデータベースを準備するために、インストーラーは、PowerDNS データベースを更新する必要があります。インストーラーはテーブルをいくつか追加しデータを設定します。テーブルが既に存在する場合、インストーラーは最初にテーブルをドロップします。"
+
+#: install/index.php:88
+msgid ""
+"To do all of this, the installer needs to access the database with an "
+"account which has sufficient rights. If you trust the installer, you may "
+"give it the username and password of the database user root. Otherwise, make"
+" sure the user has enough rights, before actually proceeding."
+msgstr "上記の作業を行うため、インストーラはそれに必要な権限を持つアカウントでデータベースにアクセスする必要があります。インストーラを信頼するなら、データベースの root ユーザーのユーザー名とパスワードを指定して下さい。root でアクセスさせてくなければ、実際に処理を継続する前に、入力したユーザーに必要な権限があることを確認して下さい。"
+
+#: install/index.php:95
+msgid ""
+"The username to use to connect to the database, make sure the username has "
+"sufficient rights to perform administrative task to the PowerDNS database "
+"(the installer wants to drop, create and fill tables to the database)."
+msgstr "データベース接続に使用するユーザー名です。このユーザーには、Poweradmin データベースに対する管理タスクを実行する権限があることを確認して下さい (インストーラは、データベースに対して、テーブルの作成/削除、データの書き込みを行います)。"
+
+#: install/index.php:100 install/index.php:179
+msgid "The password for this username."
+msgstr "このユーザーに対するパスワード"
+
+#: install/index.php:103
+msgid "Hostname"
+msgstr "ホスト名"
+
+#: install/index.php:105
+msgid ""
+"The hostname on which the PowerDNS database resides. Frequently, this will "
+"be \"localhost\"."
+msgstr "PowerDNS データベースが存在するホストのホスト名。たいていの場合は、\"localhost\" です。"
+
+#: install/index.php:108
+msgid "DB Port"
+msgstr "DB ポート"
+
+#: install/index.php:110
+msgid "The port the database server is listening on."
+msgstr "データベースサーバーが待機しているポート"
+
+#: install/index.php:113
+msgid "Database"
+msgstr "データベース"
+
+#: install/index.php:115
+msgid "The name of the PowerDNS database."
+msgstr "PowerDNS データベースの名前"
+
+#: install/index.php:118
+msgid "Database type"
+msgstr "データベースタイプ"
+
+#: install/index.php:124
+msgid "The type of the PowerDNS database."
+msgstr "PowerDNS データベースのタイプ"
+
+#: install/index.php:127
+msgid "Poweradmin administrator password"
+msgstr "Poweradmin 管理者のパスワード"
+
+#: install/index.php:129
+msgid ""
+"The password of the Poweradmin administrator. This administrator has full "
+"rights to Poweradmin using the web interface."
+msgstr "Poweradmin 管理者のパスワードです。この管理者はウェブインターフェースを使って Poweradmin のすべての操作を実行する権限を持ちます。"
+
+#: install/index.php:141
+msgid "Updating database..."
+msgstr "データベースを更新中..."
+
+#: install/index.php:166
+msgid "done!"
+msgstr "完了!"
+
+#: install/index.php:168
+msgid "Now we will gather all details for the configuration itself."
+msgstr "設定に必要な情報をすべて収集します。"
+
+#: install/index.php:174
+msgid ""
+"The username for Poweradmin. This new user will have limited rights only."
+msgstr "Poweradmin のユーザー名。この新しいユーザーは権限が制限されます。"
+
+#: install/index.php:182
+msgid "Hostmaster"
+msgstr "ホストマスター"
+
+#: install/index.php:184
+msgid ""
+"When creating SOA records and no hostmaster is provided, this value here "
+"will be used. Should be in the form \"hostmaster.example.net\"."
+msgstr "SOA レコードを作成する際に hostmaster を設定しなければ、この値が使用されます。\"hostmaster.example.net\" といった形式でなくてはなりません。"
+
+#: install/index.php:187
+msgid "Primary nameserver"
+msgstr "プライマリ・ネームサーバー"
+
+#: install/index.php:189
+msgid ""
+"When creating new zones using the template, this value will be used as "
+"primary nameserver. Should be like \"ns1.example.net\"."
+msgstr "テンプレートを使用して新しくゾーンを作成する際に、この値がプライマリネームサーバとして使用されます。\"ns1.example.net\" のように指定して下さい。"
+
+#: install/index.php:192
+msgid "Secondary nameserver"
+msgstr "セカンダリ・ネームサーバー"
+
+#: install/index.php:194
+msgid ""
+"When creating new zones using the template, this value will be used as "
+"secondary nameserver. Should be like \"ns2.example.net\"."
+msgstr "テンプレートを使用して新しくゾーンを作成する際に、この値がセカンダリネームサーバとして使用されます。\"ns2.example.net\" のように指定して下さい。"
+
+#: install/index.php:230
+msgid ""
+"You now want to give limited rights to Poweradmin so it can update the data "
+"in the tables. To do this, you should create a new user and give it rights "
+"to select, delete, insert and update records in the PowerDNS database."
+msgstr "Poweradmin の権限に制限を加えようとお考えなら、ここでテーブルのデータを更新することができます。そのためには、新しいユーザーを作成して、PowerDNS データベースにレコードを select, insert, update する権限だけを与えるべきです。"
+
+#: install/index.php:241
+msgid "In MySQL you should now perform the following command:"
+msgstr "MySQL で、次のコマンドを実行して下さい:"
+
+#: install/index.php:244
+msgid "On PgSQL you would use:"
+msgstr "PgSQL で、次のコマンドを実行して下さい:"
+
+#: install/index.php:259
+msgid ""
+"After you have added the new user, proceed with this installation procedure."
+msgstr "新しいユーザーを追加した後で、このインストールプロセスを継続します。"
+
+#: install/index.php:301
+msgid "The installer was able to write to the file \""
+msgstr "インストーラは、ファイル \""
+
+#: install/index.php:301
+msgid ""
+"\". A basic configuration, based on the details you have given, has been "
+"created."
+msgstr "\" へ書き込みを行いました。指定された情報に基づいて基本設定を作成しました。"
+
+#: install/index.php:303
+msgid "The installer is unable to write to the file \""
+msgstr "インストーラは、ファイル \""
+
+#: install/index.php:303
+msgid ""
+"\" (which is in itself good). The configuration is printed here. You should "
+"now create the file \""
+msgstr "\" に書き込みができません (書き込みができないこと自体は構いません)。設定内容を以下に表示しますので、ファイル \""
+
+#: install/index.php:303
+msgid ""
+"\" in the Poweradmin root directory yourself. It should contain the "
+"following few lines:"
+msgstr "\" を Poweradmin のルートディレクトリに直接作成して下さい。ファイルには表示された行を必ず含めて下さい:"
+
+#: install/index.php:318
+msgid ""
+"Now we have finished the configuration, you should (must!) remove the "
+"directory \"install/\" from the Poweradmin root directory. You will not be "
+"able to use Poweradmin if it exists. Do it now."
+msgstr "設定が完了しました。ディレクトリ \"install\" を Poweradmin のルートディレクトリから **必ず** 削除して下さい! そのディレクトリがあると、Poweradmin を使うことはできません。今すぐ削除して下さい。"
+
+#: install/index.php:319
+msgid ""
+"After you have removed the directory, you can login to <a "
+"href=\"../index.php\">Poweradmin</a> with username \"admin\" and password \""
+msgstr "ディレクトリを削除したら、<a href=\"../index.php\">Poweradmin</a> にユーザー \"admin\"、パスワード \""
+
+#: install/index.php:319
+msgid ""
+"\". You are highly encouraged to change these as soon as you are logged in."
+msgstr "\" でログインすることができます。ログインしたら、すぐにユーザー名とパスワードを変更することを強くお勧めします。"
+
+#: list_supermasters.php:51 delete_supermaster.php:45
+msgid "Delete supermaster"
+msgstr "次のスーパーマスターを削除:"
+
+#: add_zone_templ.php:41
+msgid "Add zone template for"
+msgstr "次のユーザー向けにゾーンテンプレートを追加:"
+
+#: add_zone_templ.php:53 list_zone_templ.php:59
+msgid "Add zone template"
+msgstr "ゾーンテンプレートを追加"
+
+#: delete_user.php:71
+msgid ""
+"You are about to delete a user. This user is owner for a number of zones. "
+"Please decide what to do with these zones."
+msgstr "ユーザーを削除しようとしていますが、このユーザーがオーナーであるゾーンが存在します。以下のゾーンの扱いを決めて下さい。"
+
+#: delete_user.php:76
+msgid "Zone"
+msgstr "ゾーン"
+
+#: delete_user.php:78
+msgid "Leave"
+msgstr "残す"
+
+#: delete_user.php:79
+msgid "Add new owner"
+msgstr "新たにオーナーを追加"
+
+#: delete_user.php:80
+msgid "Owner to be added"
+msgstr "追加されるオーナー"
+
+#: delete_user.php:106
+msgid "Really delete this user?"
+msgstr "本当にこのユーザーを削除しますか?"
+
+#: reset_password.php:89
+msgid "Reset Password"
+msgstr "パスワードをリセット"
+
+#: reset_password.php:93
+msgid "Registered Email Address"
+msgstr "登録済みのメールアドレス"
+
+#: reset_password.php:99
+msgid "Reset password"
+msgstr "パスワードをリセット"
+
+#: list_zone_templ.php:33
+msgid "Zone templates for"
+msgstr "次のユーザー向けのゾーンテンプレート:"

BIN
devadmin/html/poweradmin-2.1.7/locale/ja_JP/LC_MESSAGES/messages.mo


+ 1168 - 0
devadmin/html/poweradmin-2.1.7/locale/lt_LT/LC_MESSAGES/lt.po

@@ -0,0 +1,1168 @@
+# Poweradmin translation.
+# Copyright (C) 2011 Poweradmin Development Team
+# This file is distributed under the same license as the Poweradmin package.
+# 
+# Translators:
+#   <eg@fbsd.lt>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: Poweradmin\n"
+"Report-Msgid-Bugs-To: https://github.com/poweradmin/poweradmin/issues\n"
+"POT-Creation-Date: 2011-07-08 23:45+0300\n"
+"PO-Revision-Date: 2011-11-05 13:38+0000\n"
+"Last-Translator: edmondas <eg@fbsd.lt>\n"
+"Language-Team: Lithuanian (http://www.transifex.net/projects/p/poweradmin/team/lt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: lt\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#: edit_record.php:58
+msgid "Edit record in zone"
+msgstr ""
+
+#: edit_record.php:67 list_perm_templ.php:36 edit_zone_templ.php:96
+#: edit_zone_templ.php:173 search.php:65 search.php:119 add_perm_templ.php:44
+#: add_perm_templ.php:55 add_record.php:120 delete_domains.php:56
+#: add_zone_templ_record.php:99 edit_zone_templ_record.php:61 edit.php:143
+#: edit.php:240 list_zones.php:67 add_zone_templ.php:45 list_zone_templ.php:37
+#: edit_perm_templ.php:53 edit_perm_templ.php:65
+msgid "Name"
+msgstr "Vardas"
+
+#: edit_record.php:69 edit_zone_templ.php:97 search.php:66 search.php:120
+#: add_record.php:122 add_zone_master.php:121 delete_domains.php:58
+#: add_zone_templ_record.php:101 edit_zone_templ_record.php:63 edit.php:144
+#: edit.php:242 edit.php:349 list_zones.php:68 delete_domain.php:63
+msgid "Type"
+msgstr "Tipas"
+
+#: edit_record.php:70 edit_zone_templ.php:99 search.php:121 add_record.php:124
+#: add_zone_templ_record.php:103 edit_zone_templ_record.php:64 edit.php:146
+#: edit.php:244
+msgid "Priority"
+msgstr "Prioritetas"
+
+#: edit_record.php:71 edit_zone_templ.php:98 search.php:122 add_record.php:123
+#: add_zone_templ_record.php:102 edit_zone_templ_record.php:65 edit.php:145
+#: edit.php:243
+msgid "Content"
+msgstr "Turinys"
+
+#: edit_record.php:72 edit_zone_templ.php:100 search.php:123
+#: add_record.php:125 add_zone_templ_record.php:104
+#: edit_zone_templ_record.php:66 edit.php:147 edit.php:245
+msgid "TTL"
+msgstr "TTL"
+
+#: edit_record.php:109 users.php:121 edit_comment.php:87 edit_user.php:141
+#: edit_zone_templ.php:163 edit_zone_templ.php:181 add_perm_templ.php:72
+#: edit_zone_templ_record.php:91 edit.php:227 delete_user.php:111
+#: edit_perm_templ.php:86 add_user.php:76
+msgid "Commit changes"
+msgstr ""
+
+#: edit_record.php:110 users.php:122 edit_comment.php:88 edit_user.php:142
+#: edit_zone_templ.php:164 edit_zone_templ_record.php:92 edit.php:228
+msgid "Reset changes"
+msgstr ""
+
+#: users.php:47 index.php:60 inc/header.inc.php:82
+msgid "User administration"
+msgstr ""
+
+#: users.php:52 edit_user.php:103 inc/auth.inc.php:133 install/index.php:93
+#: install/index.php:172 add_user.php:39
+msgid "Username"
+msgstr "Naudotojo vardas"
+
+#: users.php:53 edit_user.php:107 add_user.php:43
+msgid "Fullname"
+msgstr ""
+
+#: users.php:54 list_perm_templ.php:37 edit_user.php:132
+#: edit_zone_templ.php:177 add_perm_templ.php:48 add_perm_templ.php:56
+#: add_zone_templ.php:49 list_zone_templ.php:38 edit_perm_templ.php:57
+#: edit_perm_templ.php:66 add_user.php:67
+msgid "Description"
+msgstr "Aprašas"
+
+#: users.php:55 edit_user.php:115 add_user.php:51
+msgid "Email address"
+msgstr ""
+
+#: users.php:56 add_zone_master.php:132 edit.php:381
+msgid "Template"
+msgstr ""
+
+#: users.php:57 edit_user.php:136 add_user.php:71
+msgid "Enabled"
+msgstr ""
+
+#: users.php:71 edit_user.php:98
+msgid "Edit user"
+msgstr ""
+
+#: users.php:75 delete_user.php:60
+msgid "Delete user"
+msgstr ""
+
+#: users.php:131 edit_perm_templ.php:47
+msgid "Edit permission template"
+msgstr ""
+
+#: users.php:135 add_user.php:35
+msgid "Add user"
+msgstr ""
+
+#: list_perm_templ.php:32
+msgid "Permission templates"
+msgstr ""
+
+#: list_perm_templ.php:48 list_zone_templ.php:46
+msgid "Edit template"
+msgstr ""
+
+#: list_perm_templ.php:49 list_zone_templ.php:47
+msgid "Delete template"
+msgstr ""
+
+#: list_perm_templ.php:61 add_perm_templ.php:40
+msgid "Add permission template"
+msgstr ""
+
+#: edit_comment.php:53
+msgid "Edit comment in zone"
+msgstr ""
+
+#: edit_user.php:111 inc/auth.inc.php:137 install/index.php:98
+#: install/index.php:177 add_user.php:47
+msgid "Password"
+msgstr "Slaptažodis"
+
+#: edit_user.php:120 add_user.php:56
+msgid "Permission template"
+msgstr ""
+
+#: edit_user.php:147
+#, php-format
+msgid "This user has been assigned the permission template \"%s\"."
+msgstr ""
+
+#: edit_user.php:149
+msgid "The description for this template is"
+msgstr ""
+
+#: edit_user.php:151
+msgid "Based on this template, this user has the following permissions"
+msgstr ""
+
+#: edit_zone_templ.php:82
+msgid "Edit zone template"
+msgstr ""
+
+#: edit_zone_templ.php:90
+msgid "This template zone does not have any records yet."
+msgstr ""
+
+#: edit_zone_templ.php:107 search.php:131 edit.php:161
+msgid "Edit record"
+msgstr ""
+
+#: edit_zone_templ.php:109 delete_zone_templ_record.php:53 search.php:136
+#: delete_record.php:66 edit.php:163
+msgid "Delete record"
+msgstr ""
+
+#: edit_zone_templ.php:145 add_zone_templ_record.php:139
+msgid "The following placeholders can be used in template records"
+msgstr ""
+
+#: edit_zone_templ.php:148 add_zone_templ_record.php:142
+msgid "substituted with current zone name"
+msgstr ""
+
+#: edit_zone_templ.php:149 add_zone_templ_record.php:143
+msgid "substituted with current date and 2 numbers"
+msgstr ""
+
+#: edit_zone_templ.php:155 edit.php:219
+msgid "Template Name"
+msgstr ""
+
+#: edit_zone_templ.php:159 edit.php:223
+msgid "Template Description"
+msgstr ""
+
+#: edit_zone_templ.php:165 edit.php:229
+msgid "Save as template"
+msgstr ""
+
+#: edit_zone_templ.php:166
+msgid "Update zones"
+msgstr ""
+
+#: edit_zone_templ.php:183 add_record.php:158 add_zone_templ_record.php:147
+#: edit.php:287
+msgid "Add record"
+msgstr ""
+
+#: edit_zone_templ.php:184 delete_zone_templ.php:44
+msgid "Delete zone template"
+msgstr ""
+
+#: add_zone_slave.php:67 index.php:54 inc/header.inc.php:76
+msgid "Add slave zone"
+msgstr ""
+
+#: add_zone_slave.php:73 add_zone_master.php:91
+msgid "Zone name"
+msgstr ""
+
+#: add_zone_slave.php:79 edit.php:413
+msgid "IP address of master NS"
+msgstr ""
+
+#: add_zone_slave.php:85 search.php:70 add_zone_master.php:102
+#: delete_domains.php:57 list_zones.php:70 delete_domain.php:62
+msgid "Owner"
+msgstr ""
+
+#: add_zone_slave.php:106 add_zone_master.php:146
+msgid "Add zone"
+msgstr ""
+
+#: delete_zone_templ.php:50 delete_zone_templ_record.php:74
+#: delete_domains.php:72 delete_record.php:94 delete_perm_templ.php:49
+#: delete_domain.php:72 delete_supermaster.php:61
+msgid "Are you sure?"
+msgstr ""
+
+#: delete_zone_templ.php:51 delete_zone_templ_record.php:75
+#: delete_domains.php:73 delete_record.php:95 delete_perm_templ.php:50
+#: delete_domain.php:73 delete_supermaster.php:62
+msgid "Yes"
+msgstr ""
+
+#: delete_zone_templ.php:52 delete_zone_templ_record.php:76
+#: delete_domains.php:74 delete_record.php:96 delete_perm_templ.php:51
+#: delete_domain.php:74 delete_supermaster.php:63
+msgid "No"
+msgstr ""
+
+#: index.php:26
+msgid "Welcome"
+msgstr ""
+
+#: index.php:37 inc/header.inc.php:59
+msgid "Index"
+msgstr ""
+
+#: index.php:39 search.php:32 inc/header.inc.php:61
+msgid "Search zones and records"
+msgstr ""
+
+#: index.php:42 inc/header.inc.php:64 list_zones.php:39
+msgid "List zones"
+msgstr ""
+
+#: index.php:45 inc/header.inc.php:67
+msgid "List zone templates"
+msgstr ""
+
+#: index.php:48 inc/header.inc.php:70 list_supermasters.php:32
+msgid "List supermasters"
+msgstr ""
+
+#: index.php:51 inc/header.inc.php:73 add_zone_master.php:82
+msgid "Add master zone"
+msgstr ""
+
+#: index.php:57 inc/header.inc.php:79 add_supermaster.php:54
+#: add_supermaster.php:106
+msgid "Add supermaster"
+msgstr ""
+
+#: index.php:59 inc/header.inc.php:81 change_password.php:31
+#: change_password.php:49
+msgid "Change password"
+msgstr ""
+
+#: index.php:61 inc/header.inc.php:83
+msgid "Logout"
+msgstr ""
+
+#: search.php:61
+msgid "Zones found"
+msgstr ""
+
+#: search.php:67
+msgid "Master"
+msgstr ""
+
+#: search.php:79 edit.php:129
+msgid "Edit zone"
+msgstr ""
+
+#: search.php:84 list_zones.php:99 delete_domain.php:54
+msgid "Delete zone"
+msgstr ""
+
+#: search.php:115
+msgid "Records found"
+msgstr ""
+
+#: search.php:155
+msgid "Query"
+msgstr ""
+
+#: search.php:161
+msgid "Search"
+msgstr ""
+
+#: search.php:166
+msgid ""
+"Enter a hostname or IP address. SQL LIKE syntax supported: an underscore (_)"
+" in pattern matches any single character, a percent sign (%) matches any "
+"string of zero or more characters."
+msgstr ""
+
+#: inc/users.inc.php:382
+msgid "Password has been changed, please login."
+msgstr ""
+
+#: inc/record.inc.php:387
+msgid ""
+"You are trying to delete the SOA record. You are not allowed to remove it, "
+"unless you remove the entire zone."
+msgstr ""
+
+#: inc/record.inc.php:751
+msgid "Function returned an error (multiple zones matching this zone ID)."
+msgstr ""
+
+#: inc/toolkit.inc.php:33 reset_password.php:27
+msgid "You have to create a config.inc.php!"
+msgstr ""
+
+#: inc/toolkit.inc.php:154
+msgid "Show page"
+msgstr ""
+
+#: inc/toolkit.inc.php:173
+msgid "Show zones beginning with"
+msgstr ""
+
+#: inc/toolkit.inc.php:246
+msgid ""
+"Something has been successfully performed. What exactly, however, will "
+"remain a mystery."
+msgstr ""
+
+#: inc/toolkit.inc.php:258
+msgid "Success!"
+msgstr ""
+
+#: inc/toolkit.inc.php:269
+msgid "Successful!"
+msgstr ""
+
+#: inc/toolkit.inc.php:275
+msgid "back"
+msgstr ""
+
+#: inc/toolkit.inc.php:314
+msgid "Inactive"
+msgstr ""
+
+#: inc/toolkit.inc.php:318
+msgid "Active"
+msgstr ""
+
+#: inc/auth.inc.php:31
+msgid "You have logged out."
+msgstr ""
+
+#: inc/auth.inc.php:45
+msgid "Session expired, please login again."
+msgstr ""
+
+#: inc/auth.inc.php:93
+msgid "Authentication failed!"
+msgstr ""
+
+#: inc/auth.inc.php:106
+msgid ""
+"Authentication failed! - <a href=\"reset_password.php\">(forgot "
+"password)</a>"
+msgstr ""
+
+#: inc/auth.inc.php:127
+msgid "Log in"
+msgstr ""
+
+#: inc/auth.inc.php:143
+msgid "Go"
+msgstr ""
+
+#: inc/error.inc.php:24
+msgid "You do not have the permission to perform searches."
+msgstr ""
+
+#: inc/error.inc.php:25
+msgid "You do not have the permission to add a record to this zone."
+msgstr ""
+
+#: inc/error.inc.php:26
+msgid "You do not have the permission to edit this record."
+msgstr ""
+
+#: inc/error.inc.php:27
+msgid "You do not have the permission to view this record."
+msgstr ""
+
+#: inc/error.inc.php:28
+msgid "You do not have the permission to delete this record."
+msgstr ""
+
+#: inc/error.inc.php:29
+msgid "You do not have the permission to add a master zone."
+msgstr ""
+
+#: inc/error.inc.php:30
+msgid "You do not have the permission to add a slave zone."
+msgstr ""
+
+#: inc/error.inc.php:31
+msgid "You do not have the permission to delete a zone."
+msgstr ""
+
+#: inc/error.inc.php:32
+msgid "You do not have the permission to view this comment."
+msgstr ""
+
+#: inc/error.inc.php:33
+msgid "You do not have the permission to edit this comment."
+msgstr ""
+
+#: inc/error.inc.php:34
+msgid "You do not have the permission to delete a supermaster."
+msgstr ""
+
+#: inc/error.inc.php:35
+msgid "You do not have the permission to view this zone."
+msgstr ""
+
+#: inc/error.inc.php:36
+msgid "You do not have the permission to edit this user."
+msgstr ""
+
+#: inc/error.inc.php:37
+msgid "You do not have the permission to edit permission templates."
+msgstr ""
+
+#: inc/error.inc.php:38
+msgid "You do not have the permission to delete permission templates."
+msgstr ""
+
+#: inc/error.inc.php:39
+msgid "You do not have the permission to add a new user."
+msgstr ""
+
+#: inc/error.inc.php:40
+msgid "You do not have the permission to delete this user."
+msgstr ""
+
+#: inc/error.inc.php:41
+msgid "You do not have the permission to edit zone templates."
+msgstr ""
+
+#: inc/error.inc.php:42
+msgid "You do not have the permission to delete zone templates."
+msgstr ""
+
+#: inc/error.inc.php:43
+msgid "You do not have the permission to add a zone template."
+msgstr ""
+
+#: inc/error.inc.php:46
+msgid "This is an invalid zone name."
+msgstr ""
+
+#: inc/error.inc.php:47
+msgid "There is already a supermaster with this IP address."
+msgstr ""
+
+#: inc/error.inc.php:48
+msgid "There is already a zone with this name."
+msgstr ""
+
+#: inc/error.inc.php:51
+msgid "Username exist already, please choose another one."
+msgstr ""
+
+#: inc/error.inc.php:52
+msgid "User does not exist."
+msgstr ""
+
+#: inc/error.inc.php:53
+msgid "You did not enter the correct current password."
+msgstr ""
+
+#: inc/error.inc.php:54
+msgid "The two new password fields do not match."
+msgstr ""
+
+#: inc/error.inc.php:55
+msgid "This template is assigned to at least one user."
+msgstr ""
+
+#: inc/error.inc.php:58
+msgid "Invalid or unexpected input given."
+msgstr ""
+
+#: inc/error.inc.php:59
+#, php-format
+msgid "Invalid argument(s) given to function %s"
+msgstr ""
+
+#: inc/error.inc.php:60
+#, php-format
+msgid "Invalid argument(s) given to function %s %s"
+msgstr ""
+
+#: inc/error.inc.php:61
+msgid "Unknown error."
+msgstr ""
+
+#: inc/error.inc.php:62
+msgid "Enter a valid email address."
+msgstr ""
+
+#: inc/error.inc.php:63
+msgid "There is no zone with this ID."
+msgstr ""
+
+#: inc/error.inc.php:64
+msgid "There is no zone template with this ID."
+msgstr ""
+
+#: inc/error.inc.php:65
+msgid ""
+"The <a href=\"install/\">install/</a> directory exists, you must remove it "
+"first before proceeding."
+msgstr ""
+
+#: inc/error.inc.php:66
+msgid ""
+"Zone template with this name already exists, please choose another one."
+msgstr ""
+
+#: inc/error.inc.php:67
+msgid "Template name can't be an empty string."
+msgstr ""
+
+#: inc/error.inc.php:70
+msgid "No database name has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:71
+msgid "No database host has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:72
+msgid "No database username has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:73
+msgid "No database password has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:74
+msgid "No or unknown database type has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:75
+msgid "No database file has been set in config.inc.php."
+msgstr ""
+
+#: inc/error.inc.php:76
+msgid ""
+"It seems that you forgot to update the database after Poweradmin upgrade to "
+"new version."
+msgstr ""
+
+#: inc/error.inc.php:79
+msgid "Your content field doesnt have a legit value."
+msgstr ""
+
+#: inc/error.inc.php:80
+msgid "Invalid hostname."
+msgstr ""
+
+#: inc/error.inc.php:81
+msgid "You have invalid characters in your hostname."
+msgstr ""
+
+#: inc/error.inc.php:82
+msgid "A hostname can not start or end with a dash."
+msgstr ""
+
+#: inc/error.inc.php:83
+msgid "Given hostname or one of the labels is too short or too long."
+msgstr ""
+
+#: inc/error.inc.php:84
+msgid "Given hostname has too many slashes."
+msgstr ""
+
+#: inc/error.inc.php:85
+msgid "Unknown record type."
+msgstr ""
+
+#: inc/error.inc.php:86
+msgid "This is not a valid IPv4 or IPv6 address."
+msgstr ""
+
+#: inc/error.inc.php:87
+msgid "This is not a valid IPv6 address."
+msgstr ""
+
+#: inc/error.inc.php:88
+msgid "This is not a valid IPv4 address."
+msgstr ""
+
+#: inc/error.inc.php:89
+msgid ""
+"This is not a valid CNAME. Did you assign an MX or NS record to the record?"
+msgstr ""
+
+#: inc/error.inc.php:90
+msgid ""
+"This is not a valid record. There is already exists a CNAME with this name."
+msgstr ""
+
+#: inc/error.inc.php:91
+msgid ""
+"This is not a valid CNAME. There is already exists an A, AAAA or CNAME with "
+"this name."
+msgstr ""
+
+#: inc/error.inc.php:92
+msgid ""
+"You can not point a NS or MX record to a CNAME record. Remove or rame the "
+"CNAME record first, or take another name."
+msgstr ""
+
+#: inc/error.inc.php:93
+msgid "NS records must be a hostnames."
+msgstr ""
+
+#: inc/error.inc.php:94
+msgid "A prio field should be numeric."
+msgstr ""
+
+#: inc/error.inc.php:95
+msgid ""
+"Invalid value for name field of SOA record. It should be the name of the "
+"zone."
+msgstr ""
+
+#: inc/error.inc.php:96
+msgid "You have an error in the MNAME field of the SOA record."
+msgstr ""
+
+#: inc/error.inc.php:97
+msgid "Invalid value for content field of HINFO record."
+msgstr ""
+
+#: inc/error.inc.php:98
+msgid "The hostname is too long."
+msgstr ""
+
+#: inc/error.inc.php:99
+msgid "You are using an invalid top level domain."
+msgstr ""
+
+#: inc/error.inc.php:100
+msgid "Invalid value for TTL field. It should be numeric."
+msgstr ""
+
+#: inc/error.inc.php:101
+msgid "Invalid value for prio field. It should be numeric."
+msgstr ""
+
+#: inc/error.inc.php:102
+msgid "Invalid value for name field of SRV record."
+msgstr ""
+
+#: inc/error.inc.php:103
+msgid "Invalid value for the priority field of the SRV record."
+msgstr ""
+
+#: inc/error.inc.php:104
+msgid "Invalid value for the weight field of the SRV record."
+msgstr ""
+
+#: inc/error.inc.php:105
+msgid "Invalid SRV target."
+msgstr ""
+
+#: inc/error.inc.php:106
+msgid "Invalid characters have been used in this record."
+msgstr ""
+
+#: inc/error.inc.php:109
+msgid "Zone has been added successfully."
+msgstr ""
+
+#: inc/error.inc.php:110
+msgid "Zone has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:111
+msgid "Zones have been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:112
+msgid "The user has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:113
+msgid "The user has been created successfully."
+msgstr ""
+
+#: inc/error.inc.php:114
+msgid "The user has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:115
+msgid "The record has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:116
+msgid "The record has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:117
+msgid "The comment has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:118
+msgid "The supermaster has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:119
+msgid "The supermaster has been added successfully."
+msgstr ""
+
+#: inc/error.inc.php:120
+msgid "The permission template has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:121
+msgid "The permission template has been deleted successfully."
+msgstr ""
+
+#: inc/error.inc.php:122
+msgid "Zone template has been added successfully."
+msgstr ""
+
+#: inc/error.inc.php:123
+msgid "Zone template has been updated successfully."
+msgstr ""
+
+#: inc/error.inc.php:124
+msgid "Zone template has been deleted successfully."
+msgstr ""
+
+#: change_password.php:35
+msgid "Current password"
+msgstr ""
+
+#: change_password.php:39 change_password.php:43
+msgid "New password"
+msgstr ""
+
+#: add_record.php:102 add_zone_templ_record.php:81
+msgid "The record was successfully added."
+msgstr ""
+
+#: add_record.php:111
+msgid "Add record to zone"
+msgstr ""
+
+#: delete_domains.php:41
+msgid "Delete zones"
+msgstr ""
+
+#: delete_domains.php:63 delete_domain.php:68
+#, php-format
+msgid ""
+"You are about to delete a slave zone of which the master nameserver, %s, is "
+"a supermaster. Deleting the zone now, will result in temporary removal only."
+" Whenever the supermaster sends a notification for this zone, it will be "
+"added again!"
+msgstr ""
+
+#: add_supermaster.php:57
+msgid "You do not have the permission to add a new supermaster."
+msgstr ""
+
+#: add_supermaster.php:62 list_supermasters.php:36
+msgid "IP address of supermaster"
+msgstr ""
+
+#: add_supermaster.php:72 list_supermasters.php:37 delete_supermaster.php:58
+msgid "Hostname in NS record"
+msgstr ""
+
+#: add_supermaster.php:82 list_supermasters.php:38 delete_supermaster.php:59
+msgid "Account"
+msgstr "Paskyra"
+
+#: add_zone_templ_record.php:90
+msgid "Add record to zone template"
+msgstr ""
+
+#: edit_zone_templ_record.php:52
+msgid "Edit record in zone template"
+msgstr ""
+
+#: delete_record.php:92
+msgid ""
+"You are trying to delete a record that is needed for this zone to work."
+msgstr ""
+
+#: delete_perm_templ.php:43
+msgid "Delete permission template"
+msgstr ""
+
+#: edit.php:137
+msgid "This zone does not have any records. Weird."
+msgstr ""
+
+#: edit.php:210
+msgid "Edit comment"
+msgstr ""
+
+#: edit.php:295
+msgid "Owner of zone"
+msgstr ""
+
+#: edit.php:301
+msgid "No owner set for this zone."
+msgstr ""
+
+#: edit.php:310 delete_user.php:77
+msgid "Delete"
+msgstr ""
+
+#: edit.php:343
+msgid "Add"
+msgstr ""
+
+#: edit.php:372 edit.php:401 edit.php:424
+msgid "Change"
+msgstr ""
+
+#: list_zones.php:42
+msgid "You do not have the permission to see any zones."
+msgstr ""
+
+#: list_zones.php:49 list_supermasters.php:44
+msgid "There are no zones to show in this listing."
+msgstr ""
+
+#: list_zones.php:69
+msgid "Records"
+msgstr ""
+
+#: list_zones.php:71
+msgid "Serial"
+msgstr ""
+
+#: list_zones.php:97
+msgid "View zone"
+msgstr ""
+
+#: list_zones.php:116
+msgid "Delete zone(s)"
+msgstr ""
+
+#: install/index.php:47
+msgid "Installation step"
+msgstr ""
+
+#: install/index.php:62 install/index.php:80 install/index.php:135
+#: install/index.php:207 install/index.php:275 install/index.php:312
+msgid "Go to step"
+msgstr ""
+
+#: install/index.php:69
+msgid ""
+"This installer expects you to have a PowerDNS database accessable from this "
+"server. This installer also expects you to have never ran Poweradmin before,"
+" or that you want to overwrite the Poweradmin part of the database. If you "
+"have had Poweradmin running before, any data in the following tables will be"
+" destroyed: perm_items, perm_templ, perm_templ_items, users and zones. This "
+"installer will, of course, not touch the data in the PowerDNS tables of the "
+"database. However, it is recommended that you create a backup of your "
+"database before proceeding."
+msgstr ""
+
+#: install/index.php:71
+msgid ""
+"The alternative for this installer is a manual installation. Refer to the "
+"poweradmin.org website if you want to go down that road."
+msgstr ""
+
+#: install/index.php:73
+msgid ""
+"Finally, if you see any errors during the installation process, a problem "
+"report would be appreciated. You can report problems (and ask for help) on "
+"the <a href=\"http://groups.google.com/group/poweradmin\" target=\"blank\">poweradmin</a> mailinglist."
+msgstr ""
+
+#: install/index.php:75
+msgid "Do you want to proceed now?"
+msgstr ""
+
+#: install/index.php:86
+msgid ""
+"To prepare the database for using Poweradmin, the installer needs to modify "
+"the PowerDNS database. It will add a number of tables and it will fill these"
+" tables with some data. If the tables are already present, the installer "
+"will drop them first."
+msgstr ""
+
+#: install/index.php:88
+msgid ""
+"To do all of this, the installer needs to access the database with an "
+"account which has sufficient rights. If you trust the installer, you may "
+"give it the username and password of the database user root. Otherwise, make"
+" sure the user has enough rights, before actually proceeding."
+msgstr ""
+
+#: install/index.php:95
+msgid ""
+"The username to use to connect to the database, make sure the username has "
+"sufficient rights to perform administrative task to the PowerDNS database "
+"(the installer wants to drop, create and fill tables to the database)."
+msgstr ""
+
+#: install/index.php:100 install/index.php:179
+msgid "The password for this username."
+msgstr ""
+
+#: install/index.php:103
+msgid "Hostname"
+msgstr ""
+
+#: install/index.php:105
+msgid ""
+"The hostname on which the PowerDNS database resides. Frequently, this will "
+"be \"localhost\"."
+msgstr ""
+
+#: install/index.php:108
+msgid "DB Port"
+msgstr ""
+
+#: install/index.php:110
+msgid "The port the database server is listening on."
+msgstr ""
+
+#: install/index.php:113
+msgid "Database"
+msgstr ""
+
+#: install/index.php:115
+msgid "The name of the PowerDNS database."
+msgstr ""
+
+#: install/index.php:118
+msgid "Database type"
+msgstr ""
+
+#: install/index.php:124
+msgid "The type of the PowerDNS database."
+msgstr ""
+
+#: install/index.php:127
+msgid "Poweradmin administrator password"
+msgstr ""
+
+#: install/index.php:129
+msgid ""
+"The password of the Poweradmin administrator. This administrator has full "
+"rights to Poweradmin using the web interface."
+msgstr ""
+
+#: install/index.php:141
+msgid "Updating database..."
+msgstr ""
+
+#: install/index.php:166
+msgid "done!"
+msgstr ""
+
+#: install/index.php:168
+msgid "Now we will gather all details for the configuration itself."
+msgstr ""
+
+#: install/index.php:174
+msgid ""
+"The username for Poweradmin. This new user will have limited rights only."
+msgstr ""
+
+#: install/index.php:182
+msgid "Hostmaster"
+msgstr ""
+
+#: install/index.php:184
+msgid ""
+"When creating SOA records and no hostmaster is provided, this value here "
+"will be used. Should be in the form \"hostmaster.example.net\"."
+msgstr ""
+
+#: install/index.php:187
+msgid "Primary nameserver"
+msgstr ""
+
+#: install/index.php:189
+msgid ""
+"When creating new zones using the template, this value will be used as "
+"primary nameserver. Should be like \"ns1.example.net\"."
+msgstr ""
+
+#: install/index.php:192
+msgid "Secondary nameserver"
+msgstr ""
+
+#: install/index.php:194
+msgid ""
+"When creating new zones using the template, this value will be used as "
+"secondary nameserver. Should be like \"ns2.example.net\"."
+msgstr ""
+
+#: install/index.php:230
+msgid ""
+"You now want to give limited rights to Poweradmin so it can update the data "
+"in the tables. To do this, you should create a new user and give it rights "
+"to select, delete, insert and update records in the PowerDNS database."
+msgstr ""
+
+#: install/index.php:241
+msgid "In MySQL you should now perform the following command:"
+msgstr ""
+
+#: install/index.php:244
+msgid "On PgSQL you would use:"
+msgstr ""
+
+#: install/index.php:259
+msgid ""
+"After you have added the new user, proceed with this installation procedure."
+msgstr ""
+
+#: install/index.php:301
+msgid "The installer was able to write to the file \""
+msgstr ""
+
+#: install/index.php:301
+msgid ""
+"\". A basic configuration, based on the details you have given, has been "
+"created."
+msgstr ""
+
+#: install/index.php:303
+msgid "The installer is unable to write to the file \""
+msgstr ""
+
+#: install/index.php:303
+msgid ""
+"\" (which is in itself good). The configuration is printed here. You should "
+"now create the file \""
+msgstr ""
+
+#: install/index.php:303
+msgid ""
+"\" in the Poweradmin root directory yourself. It should contain the "
+"following few lines:"
+msgstr ""
+
+#: install/index.php:318
+msgid ""
+"Now we have finished the configuration, you should (must!) remove the "
+"directory \"install/\" from the Poweradmin root directory. You will not be "
+"able to use Poweradmin if it exists. Do it now."
+msgstr ""
+
+#: install/index.php:319
+msgid ""
+"After you have removed the directory, you can login to <a "
+"href=\"../index.php\">Poweradmin</a> with username \"admin\" and password \""
+msgstr ""
+
+#: install/index.php:319
+msgid ""
+"\". You are highly encouraged to change these as soon as you are logged in."
+msgstr ""
+
+#: list_supermasters.php:51 delete_supermaster.php:45
+msgid "Delete supermaster"
+msgstr ""
+
+#: add_zone_templ.php:41
+msgid "Add zone template for"
+msgstr ""
+
+#: add_zone_templ.php:53 list_zone_templ.php:59
+msgid "Add zone template"
+msgstr ""
+
+#: delete_user.php:71
+msgid ""
+"You are about to delete a user. This user is owner for a number of zones. "
+"Please decide what to do with these zones."
+msgstr ""
+
+#: delete_user.php:76
+msgid "Zone"
+msgstr ""
+
+#: delete_user.php:78
+msgid "Leave"
+msgstr ""
+
+#: delete_user.php:79
+msgid "Add new owner"
+msgstr ""
+
+#: delete_user.php:80
+msgid "Owner to be added"
+msgstr ""
+
+#: delete_user.php:106
+msgid "Really delete this user?"
+msgstr ""
+
+#: reset_password.php:89
+msgid "Reset Password"
+msgstr ""
+
+#: reset_password.php:93
+msgid "Registered Email Address"
+msgstr ""
+
+#: reset_password.php:99
+msgid "Reset password"
+msgstr ""
+
+#: list_zone_templ.php:33
+msgid "Zone templates for"
+msgstr ""
+
+

+ 88 - 0
devadmin/html/poweradmin-2.1.7/locale/lt_LT/LC_MESSAGES/lt_db.po

@@ -0,0 +1,88 @@
+# Poweradmin translation.
+# Copyright (C) 2011 Poweradmin Development Team
+# This file is distributed under the same license as the Poweradmin package.
+# 
+# Translators:
+#   <eg@fbsd.lt>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: Poweradmin\n"
+"Report-Msgid-Bugs-To: https://github.com/poweradmin/poweradmin/issues\n"
+"POT-Creation-Date: 2011-07-08 23:45+0300\n"
+"PO-Revision-Date: 2011-11-05 13:33+0000\n"
+"Last-Translator: edmondas <eg@fbsd.lt>\n"
+"Language-Team: Lithuanian (http://www.transifex.net/projects/p/poweradmin/team/lt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: lt\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+msgid "User is allowed to add new master zones."
+msgstr "Naudotojui leidžiama sukurti pagrindines zonas."
+
+msgid "User is allowed to add new slave zones."
+msgstr "Naudotojui leidžiama sukurti pavaldžias zonas. "
+
+msgid "User is allowed to see the content and meta data of zones he owns."
+msgstr "Naudotojui leidžiama matyti valdomų zonų turinį bei metaduomenis."
+
+msgid "User is allowed to edit the content of zones he owns."
+msgstr "Naudotojui yra leidžiama taisyti jam priklausančias zonas."
+
+msgid "User is allowed to edit the meta data of zones he owns."
+msgstr "Naudotojui yra leidžiama taisyti jam priklausančių zonų metaduomenis."
+
+msgid ""
+"User is allowed to see the content and meta data of zones he does not own."
+msgstr "Naudotojui leidžiama matyti jam nepavaldžias zonas bei metaduomenis."
+
+msgid "User is allowed to edit the content of zones he does not own."
+msgstr "Naudotojui leidžiama taisyti jam nepavaldžias zonas."
+
+msgid "User is allowed to edit the meta data of zones he does not own."
+msgstr "Naudotojui leidžiama taisyti jam nepavaldžių zonų metaduomenis."
+
+msgid "User is allowed to perform searches."
+msgstr "Naudotojas gali atlikti paiešką."
+
+msgid "User is allowed to view supermasters."
+msgstr "Naudotojui leidžiama peržiūrėti superpagrindinių serverių sąrašą."
+
+msgid "User is allowed to add new supermasters."
+msgstr "Naudotojui leidžiama kurti superpagrindinius serverius."
+
+msgid "User is allowed to edit supermasters."
+msgstr "Naudotojui leidžiama taisyti superpagrindinius serverius."
+
+msgid "User has full access. God-like. Redeemer."
+msgstr "Naudotojas turi visas teises."
+
+msgid "User is allowed to see other users and their details."
+msgstr ""
+"Naudotojui leidžiama matyti kituts vartotojus bei jų asmeninius duomenis."
+
+msgid "User is allowed to add new users."
+msgstr "Naudotojas gali kurti naujus vartotojus."
+
+msgid "User is allowed to edit their own details."
+msgstr "Naudotojui leidžiama taisyti savo asmeninius duomenis."
+
+msgid "User is allowed to edit other users."
+msgstr "Naudotojui leidžiama taisyti kitų naudotojų duomenis."
+
+msgid "User is allowed to edit the password of other users."
+msgstr "Naudotojui leidžiama taisyti kitų naudotojų slaptažodžius."
+
+msgid ""
+"User is allowed to change the permission template that is assigned to a "
+"user."
+msgstr "Naudotojui leidžiama taisyti savus teisių šablonus. "
+
+msgid "User is allowed to add new permission templates."
+msgstr "Naudotojui leidžiama kurti naujus teisių šablonus."
+
+msgid "User is allowed to edit existing permission templates."
+msgstr "Naudotojui leidžiama taisyti egzistuojančius teisių šablonus."
+
+

BIN
devadmin/html/poweradmin-2.1.7/locale/lt_LT/LC_MESSAGES/messages.mo


BIN
devadmin/html/poweradmin-2.1.7/locale/nb_NO/LC_MESSAGES/messages.mo


+ 1167 - 0
devadmin/html/poweradmin-2.1.7/locale/nb_NO/LC_MESSAGES/nb.po

@@ -0,0 +1,1167 @@
+# Poweradmin translation.
+# Copyright (C) 2011 Poweradmin Development Team
+# This file is distributed under the same license as the Poweradmin package.
+# 
+# Translators:
+# Per M Knutsen <pmknutsen@gmail.com>, 2012.
+#   <pmknutsen@gmail.com>, 2012.
+msgid ""
+msgstr ""
+"Project-Id-Version: Poweradmin\n"
+"Report-Msgid-Bugs-To: https://github.com/poweradmin/poweradmin/issues\n"
+"POT-Creation-Date: 2011-07-08 23:45+0300\n"
+"PO-Revision-Date: 2012-11-09 04:05+0000\n"
+"Last-Translator: Per M Knutsen <pmknutsen@gmail.com>\n"
+"Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/poweradmin/language/nb/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: nb\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: edit_record.php:58
+msgid "Edit record in zone"
+msgstr "Rediger DNS-peker i sone"
+
+#: edit_record.php:67 list_perm_templ.php:36 edit_zone_templ.php:96
+#: edit_zone_templ.php:173 search.php:65 search.php:119 add_perm_templ.php:44
+#: add_perm_templ.php:55 add_record.php:120 delete_domains.php:56
+#: add_zone_templ_record.php:99 edit_zone_templ_record.php:61 edit.php:143
+#: edit.php:240 list_zones.php:67 add_zone_templ.php:45 list_zone_templ.php:37
+#: edit_perm_templ.php:53 edit_perm_templ.php:65
+msgid "Name"
+msgstr "Navn"
+
+#: edit_record.php:69 edit_zone_templ.php:97 search.php:66 search.php:120
+#: add_record.php:122 add_zone_master.php:121 delete_domains.php:58
+#: add_zone_templ_record.php:101 edit_zone_templ_record.php:63 edit.php:144
+#: edit.php:242 edit.php:349 list_zones.php:68 delete_domain.php:63
+msgid "Type"
+msgstr "Type"
+
+#: edit_record.php:70 edit_zone_templ.php:99 search.php:121 add_record.php:124
+#: add_zone_templ_record.php:103 edit_zone_templ_record.php:64 edit.php:146
+#: edit.php:244
+msgid "Priority"
+msgstr "Prioritet"
+
+#: edit_record.php:71 edit_zone_templ.php:98 search.php:122 add_record.php:123
+#: add_zone_templ_record.php:102 edit_zone_templ_record.php:65 edit.php:145
+#: edit.php:243
+msgid "Content"
+msgstr "Innhold"
+
+#: edit_record.php:72 edit_zone_templ.php:100 search.php:123
+#: add_record.php:125 add_zone_templ_record.php:104
+#: edit_zone_templ_record.php:66 edit.php:147 edit.php:245
+msgid "TTL"
+msgstr "TTL"
+
+#: edit_record.php:109 users.php:121 edit_comment.php:87 edit_user.php:141
+#: edit_zone_templ.php:163 edit_zone_templ.php:181 add_perm_templ.php:72
+#: edit_zone_templ_record.php:91 edit.php:227 delete_user.php:111
+#: edit_perm_templ.php:86 add_user.php:76
+msgid "Commit changes"
+msgstr "Gjennomfør endringer"
+
+#: edit_record.php:110 users.php:122 edit_comment.php:88 edit_user.php:142
+#: edit_zone_templ.php:164 edit_zone_templ_record.php:92 edit.php:228
+msgid "Reset changes"
+msgstr "Tilbakestill endringer"
+
+#: users.php:47 index.php:60 inc/header.inc.php:82
+msgid "User administration"
+msgstr "Bruker administrasjon"
+
+#: users.php:52 edit_user.php:103 inc/auth.inc.php:133 install/index.php:93
+#: install/index.php:172 add_user.php:39
+msgid "Username"
+msgstr "Brukernavn"
+
+#: users.php:53 edit_user.php:107 add_user.php:43
+msgid "Fullname"
+msgstr "Navn"
+
+#: users.php:54 list_perm_templ.php:37 edit_user.php:132
+#: edit_zone_templ.php:177 add_perm_templ.php:48 add_perm_templ.php:56
+#: add_zone_templ.php:49 list_zone_templ.php:38 edit_perm_templ.php:57
+#: edit_perm_templ.php:66 add_user.php:67
+msgid "Description"
+msgstr "Beskrivelse"
+
+#: users.php:55 edit_user.php:115 add_user.php:51
+msgid "Email address"
+msgstr "Epost adresse"
+
+#: users.php:56 add_zone_master.php:132 edit.php:381
+msgid "Template"
+msgstr "Mal"
+
+#: users.php:57 edit_user.php:136 add_user.php:71
+msgid "Enabled"
+msgstr "Aktivert"
+
+#: users.php:71 edit_user.php:98
+msgid "Edit user"
+msgstr "Rediger bruker"
+
+#: users.php:75 delete_user.php:60
+msgid "Delete user"
+msgstr "Slett bruker"
+
+#: users.php:131 edit_perm_templ.php:47
+msgid "Edit permission template"
+msgstr "Rediger rettighets mal"
+
+#: users.php:135 add_user.php:35
+msgid "Add user"
+msgstr "Ny bruker"
+
+#: list_perm_templ.php:32
+msgid "Permission templates"
+msgstr "Rettighets maler"
+
+#: list_perm_templ.php:48 list_zone_templ.php:46
+msgid "Edit template"
+msgstr "Rediger mal"
+
+#: list_perm_templ.php:49 list_zone_templ.php:47
+msgid "Delete template"
+msgstr "Slett mal"
+
+#: list_perm_templ.php:61 add_perm_templ.php:40
+msgid "Add permission template"
+msgstr "Ny rettighets mal"
+
+#: edit_comment.php:53
+msgid "Edit comment in zone"
+msgstr "Rediger kommentar i sone"
+
+#: edit_user.php:111 inc/auth.inc.php:137 install/index.php:98
+#: install/index.php:177 add_user.php:47
+msgid "Password"
+msgstr "Passord"
+
+#: edit_user.php:120 add_user.php:56
+msgid "Permission template"
+msgstr "Rettighets mal"
+
+#: edit_user.php:147
+#, php-format
+msgid "This user has been assigned the permission template \"%s\"."
+msgstr "Denne brukeren har blitt tildelt rettighets malen \"%s\"."
+
+#: edit_user.php:149
+msgid "The description for this template is"
+msgstr "Beskrivelsen av denne malen er"
+
+#: edit_user.php:151
+msgid "Based on this template, this user has the following permissions"
+msgstr "Utfra denne malen, så har denne brukeren følgende rettigheter"
+
+#: edit_zone_templ.php:82
+msgid "Edit zone template"
+msgstr "Rediger sone mal"
+
+#: edit_zone_templ.php:90
+msgid "This template zone does not have any records yet."
+msgstr "Denne sone malen inneholder fremdeles ingen DNS-pekere."
+
+#: edit_zone_templ.php:107 search.php:131 edit.php:161
+msgid "Edit record"
+msgstr "Rediger DNS-peker"
+
+#: edit_zone_templ.php:109 delete_zone_templ_record.php:53 search.php:136
+#: delete_record.php:66 edit.php:163
+msgid "Delete record"
+msgstr "Slett DNS-peker"
+
+#: edit_zone_templ.php:145 add_zone_templ_record.php:139
+msgid "The following placeholders can be used in template records"
+msgstr "Følgende plass-holder kan brukes i mal pekere."
+
+#: edit_zone_templ.php:148 add_zone_templ_record.php:142
+msgid "substituted with current zone name"
+msgstr "erstattet med nåværende sone navn"
+
+#: edit_zone_templ.php:149 add_zone_templ_record.php:143
+msgid "substituted with current date and 2 numbers"
+msgstr "erstattet med dagens dato og 2 tall"
+
+#: edit_zone_templ.php:155 edit.php:219
+msgid "Template Name"
+msgstr "Navn på mal"
+
+#: edit_zone_templ.php:159 edit.php:223
+msgid "Template Description"
+msgstr "Beskrivelse av mal"
+
+#: edit_zone_templ.php:165 edit.php:229
+msgid "Save as template"
+msgstr "Lagre som mal"
+
+#: edit_zone_templ.php:166
+msgid "Update zones"
+msgstr "Oppdater soner"
+
+#: edit_zone_templ.php:183 add_record.php:158 add_zone_templ_record.php:147
+#: edit.php:287
+msgid "Add record"
+msgstr "Ny DNS-peker"
+
+#: edit_zone_templ.php:184 delete_zone_templ.php:44
+msgid "Delete zone template"
+msgstr "Slett sone mal"
+
+#: add_zone_slave.php:67 index.php:54 inc/header.inc.php:76
+msgid "Add slave zone"
+msgstr "Ny slave sone"
+
+#: add_zone_slave.php:73 add_zone_master.php:91
+msgid "Zone name"
+msgstr "Sone navn"
+
+#: add_zone_slave.php:79 edit.php:413
+msgid "IP address of master NS"
+msgstr "IP adresse til master NS"
+
+#: add_zone_slave.php:85 search.php:70 add_zone_master.php:102
+#: delete_domains.php:57 list_zones.php:70 delete_domain.php:62
+msgid "Owner"
+msgstr "Eier"
+
+#: add_zone_slave.php:106 add_zone_master.php:146
+msgid "Add zone"
+msgstr "Ny sone"
+
+#: delete_zone_templ.php:50 delete_zone_templ_record.php:74
+#: delete_domains.php:72 delete_record.php:94 delete_perm_templ.php:49
+#: delete_domain.php:72 delete_supermaster.php:61
+msgid "Are you sure?"
+msgstr "Er du sikker?"
+
+#: delete_zone_templ.php:51 delete_zone_templ_record.php:75
+#: delete_domains.php:73 delete_record.php:95 delete_perm_templ.php:50
+#: delete_domain.php:73 delete_supermaster.php:62
+msgid "Yes"
+msgstr "Ja"
+
+#: delete_zone_templ.php:52 delete_zone_templ_record.php:76
+#: delete_domains.php:74 delete_record.php:96 delete_perm_templ.php:51
+#: delete_domain.php:74 delete_supermaster.php:63
+msgid "No"
+msgstr "Nei"
+
+#: index.php:26
+msgid "Welcome"
+msgstr "Velkommen"
+
+#: index.php:37 inc/header.inc.php:59
+msgid "Index"
+msgstr "Indeks"
+
+#: index.php:39 search.php:32 inc/header.inc.php:61
+msgid "Search zones and records"
+msgstr "Søk i soner og DNS-pekere"
+
+#: index.php:42 inc/header.inc.php:64 list_zones.php:39
+msgid "List zones"
+msgstr "List soner"
+
+#: index.php:45 inc/header.inc.php:67
+msgid "List zone templates"
+msgstr "List sone maler"
+
+#: index.php:48 inc/header.inc.php:70 list_supermasters.php:32
+msgid "List supermasters"
+msgstr "List supermastere"
+
+#: index.php:51 inc/header.inc.php:73 add_zone_master.php:82
+msgid "Add master zone"
+msgstr "Ny master sone"
+
+#: index.php:57 inc/header.inc.php:79 add_supermaster.php:54
+#: add_supermaster.php:106
+msgid "Add supermaster"
+msgstr "Ny supermaster"
+
+#: index.php:59 inc/header.inc.php:81 change_password.php:31
+#: change_password.php:49
+msgid "Change password"
+msgstr "Endre passord"
+
+#: index.php:61 inc/header.inc.php:83
+msgid "Logout"
+msgstr "Logg ut"
+
+#: search.php:61
+msgid "Zones found"
+msgstr "Soner funnet"
+
+#: search.php:67
+msgid "Master"
+msgstr "Master"
+
+#: search.php:79 edit.php:129
+msgid "Edit zone"
+msgstr "Rediger sone"
+
+#: search.php:84 list_zones.php:99 delete_domain.php:54
+msgid "Delete zone"
+msgstr "Slett sone"
+
+#: search.php:115
+msgid "Records found"
+msgstr "DNS-pekere funnet"
+
+#: search.php:155
+msgid "Query"
+msgstr "Søkestreng"
+
+#: search.php:161
+msgid "Search"
+msgstr "Søk"
+
+#: search.php:166
+msgid ""
+"Enter a hostname or IP address. SQL LIKE syntax supported: an underscore (_)"
+" in pattern matches any single character, a percent sign (%) matches any "
+"string of zero or more characters."
+msgstr "Oppgi vertsnavn eller IP address. SQL LIKE syntaks er støttet: understrek (_) i søkestreng samsvarer et enkelt tegn, prosent (%) samsvarer et eller flere tegn."
+
+#: inc/users.inc.php:382
+msgid "Password has been changed, please login."
+msgstr "Passordet er endret. Vennligst logg inn."
+
+#: inc/record.inc.php:387
+msgid ""
+"You are trying to delete the SOA record. You are not allowed to remove it, "
+"unless you remove the entire zone."
+msgstr "Du prøver å slette en SOA peker. Dette er ikke tillatt med mindre du sletter hele sonen."
+
+#: inc/record.inc.php:751
+msgid "Function returned an error (multiple zones matching this zone ID)."
+msgstr "Funksjonen returnerte en feil (flere soner gir treff på denne sone IDen)."
+
+#: inc/toolkit.inc.php:33 reset_password.php:27
+msgid "You have to create a config.inc.php!"
+msgstr "Konfigurasjons filen config.inc.php mangler!"
+
+#: inc/toolkit.inc.php:154
+msgid "Show page"
+msgstr "Vis side"
+
+#: inc/toolkit.inc.php:173
+msgid "Show zones beginning with"
+msgstr "Vis soner som begynner med"
+
+#: inc/toolkit.inc.php:246
+msgid ""
+"Something has been successfully performed. What exactly, however, will "
+"remain a mystery."
+msgstr "Noe ble gjennomført vellykket. Akkurat hva gjenstår som et mysterium."
+
+#: inc/toolkit.inc.php:258
+msgid "Success!"
+msgstr "Suksess!"
+
+#: inc/toolkit.inc.php:269
+msgid "Successful!"
+msgstr "Vellykket!"
+
+#: inc/toolkit.inc.php:275
+msgid "back"
+msgstr "tilbake"
+
+#: inc/toolkit.inc.php:314
+msgid "Inactive"
+msgstr "Inaktiv"
+
+#: inc/toolkit.inc.php:318
+msgid "Active"
+msgstr "Aktiv"
+
+#: inc/auth.inc.php:31
+msgid "You have logged out."
+msgstr "Du er utlogget"
+
+#: inc/auth.inc.php:45
+msgid "Session expired, please login again."
+msgstr "Sesjon utløpt på tid. Vennligst logg inn igjen."
+
+#: inc/auth.inc.php:93
+msgid "Authentication failed!"
+msgstr "Feil under autentisering!"
+
+#: inc/auth.inc.php:106
+msgid ""
+"Authentication failed! - <a href=\"reset_password.php\">(forgot "
+"password)</a>"
+msgstr "Feil under autentisering! - <a href=\"reset_password.php\">(glemt passord?)</a>"
+
+#: inc/auth.inc.php:127
+msgid "Log in"
+msgstr "Logg inn"
+
+#: inc/auth.inc.php:143
+msgid "Go"
+msgstr "Kjør"
+
+#: inc/error.inc.php:24
+msgid "You do not have the permission to perform searches."
+msgstr "Du har ikke rettigheten til å søke."
+
+#: inc/error.inc.php:25
+msgid "You do not have the permission to add a record to this zone."
+msgstr "Du har ikke rettigheten til å lage DNS-pekere i denne sonen."
+
+#: inc/error.inc.php:26
+msgid "You do not have the permission to edit this record."
+msgstr "Du har ikke rettigheten til å redigere denne DNS-pekeren."
+
+#: inc/error.inc.php:27
+msgid "You do not have the permission to view this record."
+msgstr "Du har ikke rettigheten til å se denne DNS-pekeren."
+
+#: inc/error.inc.php:28
+msgid "You do not have the permission to delete this record."
+msgstr "Du har ikke rettigheten til å slette denne DNS-pekeren."
+
+#: inc/error.inc.php:29
+msgid "You do not have the permission to add a master zone."
+msgstr "Du har ikke rettigheten til å lage master soner."
+
+#: inc/error.inc.php:30
+msgid "You do not have the permission to add a slave zone."
+msgstr "Du har ikke rettigheten til å lage slave soner."
+
+#: inc/error.inc.php:31
+msgid "You do not have the permission to delete a zone."
+msgstr "Du har ikke rettigheten til å slette soner."
+
+#: inc/error.inc.php:32
+msgid "You do not have the permission to view this comment."
+msgstr "Du har ikke rettigheten til å se denne kommentaren."
+
+#: inc/error.inc.php:33
+msgid "You do not have the permission to edit this comment."
+msgstr "Du har ikke rettigheten til å redigere denne kommentaren."
+
+#: inc/error.inc.php:34
+msgid "You do not have the permission to delete a supermaster."
+msgstr "Du har ikke rettigheten til å slette en supermaster."
+
+#: inc/error.inc.php:35
+msgid "You do not have the permission to view this zone."
+msgstr "Du har ikke rettigheten til å se denne sonen."
+
+#: inc/error.inc.php:36
+msgid "You do not have the permission to edit this user."
+msgstr "Du har ikke rettigheten til å redigere denne brukeren."
+
+#: inc/error.inc.php:37
+msgid "You do not have the permission to edit permission templates."
+msgstr "Du har ikke rettigheten til å redigere rettighets maler."
+
+#: inc/error.inc.php:38
+msgid "You do not have the permission to delete permission templates."
+msgstr "Du har ikke rettigheten til å slette rettighets maler."
+
+#: inc/error.inc.php:39
+msgid "You do not have the permission to add a new user."
+msgstr "Du har ikke rettigheten til å opprette nye brukere."
+
+#: inc/error.inc.php:40
+msgid "You do not have the permission to delete this user."
+msgstr "Du har ikke rettigheten til å slette denne brukeren."
+
+#: inc/error.inc.php:41
+msgid "You do not have the permission to edit zone templates."
+msgstr "Du har ikke rettigheten til å redigere sone maler."
+
+#: inc/error.inc.php:42
+msgid "You do not have the permission to delete zone templates."
+msgstr "Du har ikke rettigheten til å slette sone maler."
+
+#: inc/error.inc.php:43
+msgid "You do not have the permission to add a zone template."
+msgstr "Du har ikke rettigheten til å lage nye sone maler."
+
+#: inc/error.inc.php:46
+msgid "This is an invalid zone name."
+msgstr "Dette er et ugyldig sone navn."
+
+#: inc/error.inc.php:47
+msgid "There is already a supermaster with this IP address."
+msgstr "Det finnes allerede en supermaster med denne IP adressen."
+
+#: inc/error.inc.php:48
+msgid "There is already a zone with this name."
+msgstr "Det finnes allerede en sone med dette navnet."
+
+#: inc/error.inc.php:51
+msgid "Username exist already, please choose another one."
+msgstr "Brukernavnet finnes allerede. Vennligst velg et annet."
+
+#: inc/error.inc.php:52
+msgid "User does not exist."
+msgstr "Brukeren eksisterer ikke"
+
+#: inc/error.inc.php:53
+msgid "You did not enter the correct current password."
+msgstr "Du oppga feil passord."
+
+#: inc/error.inc.php:54
+msgid "The two new password fields do not match."
+msgstr "De to passord feltene samsvarer ikke."
+
+#: inc/error.inc.php:55
+msgid "This template is assigned to at least one user."
+msgstr "Denne malen er tildelt en eller flere brukere."
+
+#: inc/error.inc.php:58
+msgid "Invalid or unexpected input given."
+msgstr "Ugyldig eller uventet utfylling."
+
+#: inc/error.inc.php:59
+#, php-format
+msgid "Invalid argument(s) given to function %s"
+msgstr "Ugyldig argument(er) gitt til funksjonen %s"
+
+#: inc/error.inc.php:60
+#, php-format
+msgid "Invalid argument(s) given to function %s %s"
+msgstr "Ugyldig(e) argument(er) er gitt til funksjonen %s %s"
+
+#: inc/error.inc.php:61
+msgid "Unknown error."
+msgstr "Ukjent feil"
+
+#: inc/error.inc.php:62
+msgid "Enter a valid email address."
+msgstr "Oppgi en gyldig epost adresse."
+
+#: inc/error.inc.php:63
+msgid "There is no zone with this ID."
+msgstr "Det finnes ingen sone med denne ID."
+
+#: inc/error.inc.php:64
+msgid "There is no zone template with this ID."
+msgstr "Det finnes ingen sone mal med denne ID."
+
+#: inc/error.inc.php:65
+msgid ""
+"The <a href=\"install/\">install/</a> directory exists, you must remove it "
+"first before proceeding."
+msgstr "Katalogen <a href=\"install/\">install/</a> eksisterer. Du må slette denne katalogen før du kan fortsette."
+
+#: inc/error.inc.php:66
+msgid ""
+"Zone template with this name already exists, please choose another one."
+msgstr "Det finnes allerede en sone mal med dette navnet. Velg et annet navn."
+
+#: inc/error.inc.php:67
+msgid "Template name can't be an empty string."
+msgstr "Navnet på malen kan ikke stå tomt."
+
+#: inc/error.inc.php:70
+msgid "No database name has been set in config.inc.php."
+msgstr "Navnet på databasen som skal brukes er ikke oppgitt i config.inc.php."
+
+#: inc/error.inc.php:71
+msgid "No database host has been set in config.inc.php."
+msgstr "Slett bruker"
+
+#: inc/error.inc.php:72
+msgid "No database username has been set in config.inc.php."
+msgstr "Det er ikke oppgitt en database bruker i config.inc.php."
+
+#: inc/error.inc.php:73
+msgid "No database password has been set in config.inc.php."
+msgstr "Passordet til databasen mangler i config.inc.php."
+
+#: inc/error.inc.php:74
+msgid "No or unknown database type has been set in config.inc.php."
+msgstr "Ingen eller ukjent type database er oppgitt i config.inc.php."
+
+#: inc/error.inc.php:75
+msgid "No database file has been set in config.inc.php."
+msgstr "Det mangler informasjon om database filen i config.inc.php."
+
+#: inc/error.inc.php:76
+msgid ""
+"It seems that you forgot to update the database after Poweradmin upgrade to "
+"new version."
+msgstr "Det virker som om du har glemt å oppdatere databasen etter Poweradmin ble oppgradert til ny versjon."
+
+#: inc/error.inc.php:79
+msgid "Your content field doesnt have a legit value."
+msgstr "Innholdsfeltet ditt inneholder ikke en gyldig verdi."
+
+#: inc/error.inc.php:80
+msgid "Invalid hostname."
+msgstr "Ugyldig vertsnavn."
+
+#: inc/error.inc.php:81
+msgid "You have invalid characters in your hostname."
+msgstr "Du har ugyldige tegn i vertsnavnet."
+
+#: inc/error.inc.php:82
+msgid "A hostname can not start or end with a dash."
+msgstr "Et vertsnavn kan ikke begynne eller avslutte med bindestrek."
+
+#: inc/error.inc.php:83
+msgid "Given hostname or one of the labels is too short or too long."
+msgstr "Oppgitt vertsnavn er for kort eller for langt."
+
+#: inc/error.inc.php:84
+msgid "Given hostname has too many slashes."
+msgstr "Oppgitt vertsnavn har for mange skråstreker."
+
+#: inc/error.inc.php:85
+msgid "Unknown record type."
+msgstr "Ukjent DNS type."
+
+#: inc/error.inc.php:86
+msgid "This is not a valid IPv4 or IPv6 address."
+msgstr "Dette er ikke en gyldig IPv4 eller IPv6 adresse."
+
+#: inc/error.inc.php:87
+msgid "This is not a valid IPv6 address."
+msgstr "Dette er ikke en gyldig IPv6 adresse."
+
+#: inc/error.inc.php:88
+msgid "This is not a valid IPv4 address."
+msgstr "Dette er ikke en gyldig IPv4 adresse."
+
+#: inc/error.inc.php:89
+msgid ""
+"This is not a valid CNAME. Did you assign an MX or NS record to the record?"
+msgstr "Dette er ikke et gyldig CNAME. Mente du å tildele en MX eller NS peker istedenfor?"
+
+#: inc/error.inc.php:90
+msgid ""
+"This is not a valid record. There is already exists a CNAME with this name."
+msgstr "Dette er ikke en gyldig DNS-peker. Det eksisterer allerede et CNAME med dette navnet."
+
+#: inc/error.inc.php:91
+msgid ""
+"This is not a valid CNAME. There is already exists an A, AAAA or CNAME with "
+"this name."
+msgstr "Dette er ikke et gyldig CNAME. Det eksisterer allerede en A, AAAA eller CNAME peker med dette navnet."
+
+#: inc/error.inc.php:92
+msgid ""
+"You can not point a NS or MX record to a CNAME record. Remove or rame the "
+"CNAME record first, or take another name."
+msgstr "Du kan ikke peke en NS eller MX peker til en CNAME peker. Fjern eller endre navn på CNAME pekeren først, eller velg et annet navn."
+
+#: inc/error.inc.php:93
+msgid "NS records must be a hostnames."
+msgstr "NS pekere må være vertsnavn."
+
+#: inc/error.inc.php:94
+msgid "A prio field should be numeric."
+msgstr "Et PRIO felt må være numerisk."
+
+#: inc/error.inc.php:95
+msgid ""
+"Invalid value for name field of SOA record. It should be the name of the "
+"zone."
+msgstr "Ugyldig verdi på navn til SOA feltet. Verdien må være navnet på sonen."
+
+#: inc/error.inc.php:96
+msgid "You have an error in the MNAME field of the SOA record."
+msgstr "Du har en feil i MNAME feltet til SOA pekeren."
+
+#: inc/error.inc.php:97
+msgid "Invalid value for content field of HINFO record."
+msgstr "Ugyldig verdi i innholdsfeltet for HINFO pekeren."
+
+#: inc/error.inc.php:98
+msgid "The hostname is too long."
+msgstr "Vertsnavnet er for langt."
+
+#: inc/error.inc.php:99
+msgid "You are using an invalid top level domain."
+msgstr "Du bruker et ugyldig topp nivå domene."
+
+#: inc/error.inc.php:100
+msgid "Invalid value for TTL field. It should be numeric."
+msgstr "Ugyldig verdi i TTL feltet. Det må være numerisk."
+
+#: inc/error.inc.php:101
+msgid "Invalid value for prio field. It should be numeric."
+msgstr "Ugyldig verdi i prio feltet. Verdien må være numerisk."
+
+#: inc/error.inc.php:102
+msgid "Invalid value for name field of SRV record."
+msgstr "Ugyldig verdi i navnefeltet til SRV pekeren."
+
+#: inc/error.inc.php:103
+msgid "Invalid value for the priority field of the SRV record."
+msgstr "Ugyldig verdi i prioritet feltet for SRV pekeren."
+
+#: inc/error.inc.php:104
+msgid "Invalid value for the weight field of the SRV record."
+msgstr "Ugyldig verdi i weight feltet for SRV pekeren."
+
+#: inc/error.inc.php:105
+msgid "Invalid SRV target."
+msgstr "Ugyldig SRV mål."
+
+#: inc/error.inc.php:106
+msgid "Invalid characters have been used in this record."
+msgstr "Ugyldige tegn brukt i DNS-pekeren."
+
+#: inc/error.inc.php:109
+msgid "Zone has been added successfully."
+msgstr "Sonen er lagret."
+
+#: inc/error.inc.php:110
+msgid "Zone has been deleted successfully."
+msgstr "Sonen er slettet."
+
+#: inc/error.inc.php:111
+msgid "Zones have been updated successfully."
+msgstr "Soner har blitt oppdatert."
+
+#: inc/error.inc.php:112
+msgid "The user has been updated successfully."
+msgstr "Brukeren er oppdatert."
+
+#: inc/error.inc.php:113
+msgid "The user has been created successfully."
+msgstr "Brukeren er opprettet."
+
+#: inc/error.inc.php:114
+msgid "The user has been deleted successfully."
+msgstr "Brukeren er slettet."
+
+#: inc/error.inc.php:115
+msgid "The record has been updated successfully."
+msgstr "DNS-pekeren er opprettet."
+
+#: inc/error.inc.php:116
+msgid "The record has been deleted successfully."
+msgstr "DNS-pekeren er slettet."
+
+#: inc/error.inc.php:117
+msgid "The comment has been updated successfully."
+msgstr "DNS-pekeren er oppdatert."
+
+#: inc/error.inc.php:118
+msgid "The supermaster has been deleted successfully."
+msgstr "Supermaster er slettet."
+
+#: inc/error.inc.php:119
+msgid "The supermaster has been added successfully."
+msgstr "Ny supermaster er lagret."
+
+#: inc/error.inc.php:120
+msgid "The permission template has been updated successfully."
+msgstr "Rettighets malen er oppdatert."
+
+#: inc/error.inc.php:121
+msgid "The permission template has been deleted successfully."
+msgstr "Rettighets malen er slettet."
+
+#: inc/error.inc.php:122
+msgid "Zone template has been added successfully."
+msgstr "Sone malen er opprettet."
+
+#: inc/error.inc.php:123
+msgid "Zone template has been updated successfully."
+msgstr "Sone malen er oppdatert."
+
+#: inc/error.inc.php:124
+msgid "Zone template has been deleted successfully."
+msgstr "Sone malen er slettet."
+
+#: change_password.php:35
+msgid "Current password"
+msgstr "Nåværende passord"
+
+#: change_password.php:39 change_password.php:43
+msgid "New password"
+msgstr "Nytt passord"
+
+#: add_record.php:102 add_zone_templ_record.php:81
+msgid "The record was successfully added."
+msgstr "DNS-pekeren er lagret"
+
+#: add_record.php:111
+msgid "Add record to zone"
+msgstr "Ny DNS-peker til sone"
+
+#: delete_domains.php:41
+msgid "Delete zones"
+msgstr "Slett soner"
+
+#: delete_domains.php:63 delete_domain.php:68
+#, php-format
+msgid ""
+"You are about to delete a slave zone of which the master nameserver, %s, is "
+"a supermaster. Deleting the zone now, will result in temporary removal only."
+" Whenever the supermaster sends a notification for this zone, it will be "
+"added again!"
+msgstr "Du er iferd med å slette en slave zone som tilhører master navnetjeneren %s. Denne navnetjeneren er også en supermaster. Dersom du sletter denne sonen vil dette kun være en midlertidig endring. Dersom supermasteren sender en oppdatering for denne sonen vil den bli opprettet på ny!"
+
+#: add_supermaster.php:57
+msgid "You do not have the permission to add a new supermaster."
+msgstr "Du har ikke rettigheten til å lage en ny supermaster"
+
+#: add_supermaster.php:62 list_supermasters.php:36
+msgid "IP address of supermaster"
+msgstr "IP adresse til supermaster"
+
+#: add_supermaster.php:72 list_supermasters.php:37 delete_supermaster.php:58
+msgid "Hostname in NS record"
+msgstr "Vertsnavn i DNS-peker"
+
+#: add_supermaster.php:82 list_supermasters.php:38 delete_supermaster.php:59
+msgid "Account"
+msgstr "Konto"
+
+#: add_zone_templ_record.php:90
+msgid "Add record to zone template"
+msgstr "Ny DNS-peker for sone mal"
+
+#: edit_zone_templ_record.php:52
+msgid "Edit record in zone template"
+msgstr "Rediger DNS-peker i some mal"
+
+#: delete_record.php:92
+msgid ""
+"You are trying to delete a record that is needed for this zone to work."
+msgstr "Du er iferd med å slette en DNS-peker som er nødvendig for at denne sonen skal virke."
+
+#: delete_perm_templ.php:43
+msgid "Delete permission template"
+msgstr "Slett rettighets mal"
+
+#: edit.php:137
+msgid "This zone does not have any records. Weird."
+msgstr "Denne sonen har ingen DNS-pekere. Merkelig."
+
+#: edit.php:210
+msgid "Edit comment"
+msgstr "Rediger kommentar"
+
+#: edit.php:295
+msgid "Owner of zone"
+msgstr "Eier av sone"
+
+#: edit.php:301
+msgid "No owner set for this zone."
+msgstr "Denne sonen har ingen eier."
+
+#: edit.php:310 delete_user.php:77
+msgid "Delete"
+msgstr "Slett"
+
+#: edit.php:343
+msgid "Add"
+msgstr "Ny"
+
+#: edit.php:372 edit.php:401 edit.php:424
+msgid "Change"
+msgstr "Endre"
+
+#: list_zones.php:42
+msgid "You do not have the permission to see any zones."
+msgstr "Du har ikke rettigheten til å vise soner."
+
+#: list_zones.php:49 list_supermasters.php:44
+msgid "There are no zones to show in this listing."
+msgstr "Det er ingen soner å vise i dette søket."
+
+#: list_zones.php:69
+msgid "Records"
+msgstr "DNS-pekere"
+
+#: list_zones.php:71
+msgid "Serial"
+msgstr "Serienummer"
+
+#: list_zones.php:97
+msgid "View zone"
+msgstr "Vis sone"
+
+#: list_zones.php:116
+msgid "Delete zone(s)"
+msgstr "Slett sone(r)"
+
+#: install/index.php:47
+msgid "Installation step"
+msgstr "Innstallerings steg"
+
+#: install/index.php:62 install/index.php:80 install/index.php:135
+#: install/index.php:207 install/index.php:275 install/index.php:312
+msgid "Go to step"
+msgstr "Gå til steg"
+
+#: install/index.php:69
+msgid ""
+"This installer expects you to have a PowerDNS database accessable from this "
+"server. This installer also expects you to have never ran Poweradmin before,"
+" or that you want to overwrite the Poweradmin part of the database. If you "
+"have had Poweradmin running before, any data in the following tables will be"
+" destroyed: perm_items, perm_templ, perm_templ_items, users and zones. This "
+"installer will, of course, not touch the data in the PowerDNS tables of the "
+"database. However, it is recommended that you create a backup of your "
+"database before proceeding."
+msgstr "Installerings programmet forventer at en PowerDNS database er tilgjengelig på denne serveren. Programmet forventer også at du aldri har brukt Poweradmin tidligere på denne serveren, eller at du ønsker å skrive over Poweradmin delen i databasen. Dersom du tidligere har benyttet Poweradmin på denne serveren vil følgende tabeller nå bli slettet: perm_items, perm_templ, perm_templ_items, users og zones. Installerings programmet vil selvsagt ikke skriver over data i PowerDNS tabellene i databasen. Allikevel, det er anbefalt at du tar en full sikkerhetskopi av databasen før du fortsetter med innstalleringen."
+
+#: install/index.php:71
+msgid ""
+"The alternative for this installer is a manual installation. Refer to the "
+"poweradmin.org website if you want to go down that road."
+msgstr "Alternativet til dette innstallerings programmet er å gjennomføre innstallasjonen manuelt. Vi henviser til nettstedet poweradmin.org for instrukser hvordan dette gjennomføres på ulike plattformer."
+
+#: install/index.php:73
+msgid ""
+"Finally, if you see any errors during the installation process, a problem "
+"report would be appreciated. You can report problems (and ask for help) on "
+"the <a href=\"http://groups.google.com/group/poweradmin\" target=\"blank\">poweradmin</a> mailinglist."
+msgstr "Til slutt, dersom du opplever problemer eller får feilmeldinger i løpet av innstalleringen setter utviklerene av Poweradmin pris på tilbakemelding. Du kan rapportere problemer (og be om hjelp) på <a href=\"http://groups.google.com/group/poweradmin\" target=\"blank\">poweradmin</a> mailing listen."
+
+#: install/index.php:75
+msgid "Do you want to proceed now?"
+msgstr "Vil du fortsette nå?"
+
+#: install/index.php:86
+msgid ""
+"To prepare the database for using Poweradmin, the installer needs to modify "
+"the PowerDNS database. It will add a number of tables and it will fill these"
+" tables with some data. If the tables are already present, the installer "
+"will drop them first."
+msgstr "For å forberede databasen til å bruke Poweradmin, er det nødvendig å endre på PowerDNS databasen. Innstallerings programmet vil derfor opprette flere nye tabeller og fylle disse med nødvendig informasjon. Dersom disse tabellene allerede eksisterer, vil de først slettes og deretter opprettes på ny."
+
+#: install/index.php:88
+msgid ""
+"To do all of this, the installer needs to access the database with an "
+"account which has sufficient rights. If you trust the installer, you may "
+"give it the username and password of the database user root. Otherwise, make"
+" sure the user has enough rights, before actually proceeding."
+msgstr "For å fortsette, trenger innstallasjons programmet tilgang til PowerDNS databasen med en bruker som har alle nødvendige rettigheter. Dersom du stoler på innstallasjons programmet kan du oppgi brukernavnet og passordet til root brukeren. Dersom du oppgir et annet brukernavn, kontroller først at brukeren har nødvendige rettigheter før du fortsetter."
+
+#: install/index.php:95
+msgid ""
+"The username to use to connect to the database, make sure the username has "
+"sufficient rights to perform administrative task to the PowerDNS database "
+"(the installer wants to drop, create and fill tables to the database)."
+msgstr "Brukernavnet som skal brukes for tilkobling til databasen. Denne brukeren må ha alle nødvendige rettigheter til å endre på PowerDNS databasen (innstallsjons programmet vil utføre oppgaver som drop, create i tillegg til å lagre data i databasen)."
+
+#: install/index.php:100 install/index.php:179
+msgid "The password for this username."
+msgstr "Passordet til dette brukernavnet."
+
+#: install/index.php:103
+msgid "Hostname"
+msgstr "Vertsnavn"
+
+#: install/index.php:105
+msgid ""
+"The hostname on which the PowerDNS database resides. Frequently, this will "
+"be \"localhost\"."
+msgstr "Vertsnavnet PowerDNS databasen ligger under. Dette er som regel \"localhost\"."
+
+#: install/index.php:108
+msgid "DB Port"
+msgstr "DB Port"
+
+#: install/index.php:110
+msgid "The port the database server is listening on."
+msgstr "Porten som database serveren lytter på."
+
+#: install/index.php:113
+msgid "Database"
+msgstr "Database"
+
+#: install/index.php:115
+msgid "The name of the PowerDNS database."
+msgstr "Navnet på PowerDNS databasen."
+
+#: install/index.php:118
+msgid "Database type"
+msgstr "Database type"
+
+#: install/index.php:124
+msgid "The type of the PowerDNS database."
+msgstr "Type PowerDNS database."
+
+#: install/index.php:127
+msgid "Poweradmin administrator password"
+msgstr "Poweradmin administrator passord"
+
+#: install/index.php:129
+msgid ""
+"The password of the Poweradmin administrator. This administrator has full "
+"rights to Poweradmin using the web interface."
+msgstr "Passordet til Poweradmin administratoren. Administratoren har alle rettigheter i Poweradmin kontrollpanelet."
+
+#: install/index.php:141
+msgid "Updating database..."
+msgstr "Oppdaterer database..."
+
+#: install/index.php:166
+msgid "done!"
+msgstr "ferdig!"
+
+#: install/index.php:168
+msgid "Now we will gather all details for the configuration itself."
+msgstr "Vi vil nå samle inn informasjon for konfigurering av Poweradmin."
+
+#: install/index.php:174
+msgid ""
+"The username for Poweradmin. This new user will have limited rights only."
+msgstr "Brukernavnet til Poweradmin. Denne nye brukeren har begrensede rettigheter."
+
+#: install/index.php:182
+msgid "Hostmaster"
+msgstr "Hostmaster"
+
+#: install/index.php:184
+msgid ""
+"When creating SOA records and no hostmaster is provided, this value here "
+"will be used. Should be in the form \"hostmaster.example.net\"."
+msgstr "Når du lager SOA pekere og hostmaster ikke er oppgitt, brukes denne verdien istedenfor. Må være i formatet \"hostmaster.eksempel.net\"."
+
+#: install/index.php:187
+msgid "Primary nameserver"
+msgstr "Primær navnetjener"
+
+#: install/index.php:189
+msgid ""
+"When creating new zones using the template, this value will be used as "
+"primary nameserver. Should be like \"ns1.example.net\"."
+msgstr "Når du lager nye soner med denne malen brukes informasjonen i dette feltet som primær navnetjener. For eksempel \"ns1.eksempel.net\"."
+
+#: install/index.php:192
+msgid "Secondary nameserver"
+msgstr "Sekundær navnetjener"
+
+#: install/index.php:194
+msgid ""
+"When creating new zones using the template, this value will be used as "
+"secondary nameserver. Should be like \"ns2.example.net\"."
+msgstr "Når du lager nye soner med denne malen brukes informasjonen i dette feltet som sekundær navnetjener. For eksempel \"ns2.eksempel.net\"."
+
+#: install/index.php:230
+msgid ""
+"You now want to give limited rights to Poweradmin so it can update the data "
+"in the tables. To do this, you should create a new user and give it rights "
+"to select, delete, insert and update records in the PowerDNS database."
+msgstr "Du må nå gi utvidede rettigheter til Poweradmin slik at programmet kan oppdatere data i database tabellene. Dette gjør du ved å opprette en ny bruker som har select, delete, insert og update rettigheter i PowerDNS databasen."
+
+#: install/index.php:241
+msgid "In MySQL you should now perform the following command:"
+msgstr "Gå inn i MySQL og kjør denne kommandoen:"
+
+#: install/index.php:244
+msgid "On PgSQL you would use:"
+msgstr "I PgSQL kan du bruke:"
+
+#: install/index.php:259
+msgid ""
+"After you have added the new user, proceed with this installation procedure."
+msgstr "Fortsett med installeringen etter at du har opprettet en ny bruker."
+
+#: install/index.php:301
+msgid "The installer was able to write to the file \""
+msgstr "Innstallerings programmet kunne skrive til filen \""
+
+#: install/index.php:301
+msgid ""
+"\". A basic configuration, based on the details you have given, has been "
+"created."
+msgstr "\". En standard konfigurering, basert på informasjonen du har oppgitt, er nå lagret."
+
+#: install/index.php:303
+msgid "The installer is unable to write to the file \""
+msgstr "Innstallerings programmet kunne ikke skrive til filen \""
+
+#: install/index.php:303
+msgid ""
+"\" (which is in itself good). The configuration is printed here. You should "
+"now create the file \""
+msgstr "\" (noe som er bra). Konfigureringen er skrevet ut her. Du må nå opprette filen \""
+
+#: install/index.php:303
+msgid ""
+"\" in the Poweradmin root directory yourself. It should contain the "
+"following few lines:"
+msgstr "\" selv i root katalogen til Poweradmin. Denne filen må inneholde følgende linjer:"
+
+#: install/index.php:318
+msgid ""
+"Now we have finished the configuration, you should (must!) remove the "
+"directory \"install/\" from the Poweradmin root directory. You will not be "
+"able to use Poweradmin if it exists. Do it now."
+msgstr "Konfigureringen er nå fullfør. Du må nå slette katalogen \"/install\" i katalogen hvor Poweradmin er lagret. Poweradmin vil ikke fungere dersom denne katalogen eksisterer. Slett derfor katalogen nå."
+
+#: install/index.php:319
+msgid ""
+"After you have removed the directory, you can login to <a "
+"href=\"../index.php\">Poweradmin</a> with username \"admin\" and password \""
+msgstr "Når du har slettet katalogen, kan du logge deg inn på <a href=\"../index.php\">Poweradmin</a> med brukernavn \"admin\" og passord \""
+
+#: install/index.php:319
+msgid ""
+"\". You are highly encouraged to change these as soon as you are logged in."
+msgstr "\". Du er velkommen til å endre disse så snart du er pålogget."
+
+#: list_supermasters.php:51 delete_supermaster.php:45
+msgid "Delete supermaster"
+msgstr "Slett supermaster"
+
+#: add_zone_templ.php:41
+msgid "Add zone template for"
+msgstr "Ny sone mal for"
+
+#: add_zone_templ.php:53 list_zone_templ.php:59
+msgid "Add zone template"
+msgstr "Ny sone mal"
+
+#: delete_user.php:71
+msgid ""
+"You are about to delete a user. This user is owner for a number of zones. "
+"Please decide what to do with these zones."
+msgstr "Du er iferd med å slette en bruker. Denne brukeren er eier av flere soner. Vennligst bekreft hva du ønsker å gjøre med disse sonene."
+
+#: delete_user.php:76
+msgid "Zone"
+msgstr "Sone"
+
+#: delete_user.php:78
+msgid "Leave"
+msgstr "Forlat"
+
+#: delete_user.php:79
+msgid "Add new owner"
+msgstr "Ny eier"
+
+#: delete_user.php:80
+msgid "Owner to be added"
+msgstr "Legg til ny eier"
+
+#: delete_user.php:106
+msgid "Really delete this user?"
+msgstr "Skal denne brukeren virkelig slettes?"
+
+#: reset_password.php:89
+msgid "Reset Password"
+msgstr "Endre Passord"
+
+#: reset_password.php:93
+msgid "Registered Email Address"
+msgstr "Registrert Epost Adresse"
+
+#: reset_password.php:99
+msgid "Reset password"
+msgstr "Endre passord"
+
+#: list_zone_templ.php:33
+msgid "Zone templates for"
+msgstr "Sone maler til"

+ 85 - 0
devadmin/html/poweradmin-2.1.7/locale/nb_NO/LC_MESSAGES/nb_db.po

@@ -0,0 +1,85 @@
+# Poweradmin translation.
+# Copyright (C) 2011 Poweradmin Development Team
+# This file is distributed under the same license as the Poweradmin package.
+# 
+# Translators:
+#   <pmknutsen@gmail.com>, 2012.
+msgid ""
+msgstr ""
+"Project-Id-Version: Poweradmin\n"
+"Report-Msgid-Bugs-To: https://github.com/poweradmin/poweradmin/issues\n"
+"POT-Creation-Date: 2011-07-08 23:45+0300\n"
+"PO-Revision-Date: 2012-05-15 19:09+0000\n"
+"Last-Translator: Per M Knutsen <pmknutsen@gmail.com>\n"
+"Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/poweradmin/language/nb/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: nb\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "User is allowed to add new master zones."
+msgstr "Bruker kan lage nye master soner."
+
+msgid "User is allowed to add new slave zones."
+msgstr "Bruker kan lage nye slave soner."
+
+msgid "User is allowed to see the content and meta data of zones he owns."
+msgstr "Bruker kan se innhold og meta data i soner han/hun eier."
+
+msgid "User is allowed to edit the content of zones he owns."
+msgstr "Bruker kan redigere innholdet i soner han/hun eier."
+
+msgid "User is allowed to edit the meta data of zones he owns."
+msgstr "Bruker kan redigere meta data i soner han/hun eier."
+
+msgid ""
+"User is allowed to see the content and meta data of zones he does not own."
+msgstr "Bruker kan se innhold og meta data i soner han/hun ikke eier."
+
+msgid "User is allowed to edit the content of zones he does not own."
+msgstr "Bruker kan redigere innholdet i soner han/hun ikke eier."
+
+msgid "User is allowed to edit the meta data of zones he does not own."
+msgstr "Bruker kan redigere meta data i soner han/hun ikke eier."
+
+msgid "User is allowed to perform searches."
+msgstr "Bruker kan søke."
+
+msgid "User is allowed to view supermasters."
+msgstr "Bruker kan se supermastere."
+
+msgid "User is allowed to add new supermasters."
+msgstr "Bruker kan legge til nye supermastere."
+
+msgid "User is allowed to edit supermasters."
+msgstr "Bruker kan redigere supermastere."
+
+msgid "User has full access. God-like. Redeemer."
+msgstr "Bruker har alle rettigheter."
+
+msgid "User is allowed to see other users and their details."
+msgstr "Bruker kan se andre brukere og deres detaljer."
+
+msgid "User is allowed to add new users."
+msgstr "Bruker kan lage nye brukere."
+
+msgid "User is allowed to edit their own details."
+msgstr "Bruker kan redigere hans/hennes egne detaljer."
+
+msgid "User is allowed to edit other users."
+msgstr "Bruker kan redigere andre brukere."
+
+msgid "User is allowed to edit the password of other users."
+msgstr "Bruker kan endre passordet til andre brukere."
+
+msgid ""
+"User is allowed to change the permission template that is assigned to a "
+"user."
+msgstr "Bruker kan endre rettighets maler tildelt andre brukere."
+
+msgid "User is allowed to add new permission templates."
+msgstr "Bruker kan lage nye rettighets maler."
+
+msgid "User is allowed to edit existing permission templates."
+msgstr "Bruker kan redigere eksisterende rettighets maler."

BIN
devadmin/html/poweradmin-2.1.7/locale/nl_NL/LC_MESSAGES/messages.mo


+ 1166 - 0
devadmin/html/poweradmin-2.1.7/locale/nl_NL/LC_MESSAGES/nl.po

@@ -0,0 +1,1166 @@
+# Poweradmin translation.
+# Copyright (C) 2011 Poweradmin Development Team
+# This file is distributed under the same license as the Poweradmin package.
+# 
+# Translators:
+#   <fabian@dammekens.be>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: Poweradmin\n"
+"Report-Msgid-Bugs-To: https://github.com/poweradmin/poweradmin/issues\n"
+"POT-Creation-Date: 2011-07-08 23:45+0300\n"
+"PO-Revision-Date: 2012-02-14 08:14+0000\n"
+"Last-Translator: fdammeke <fabian@dammekens.be>\n"
+"Language-Team: Dutch (http://www.transifex.com/projects/p/poweradmin/language/nl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: edit_record.php:58
+msgid "Edit record in zone"
+msgstr "Wijzigen record in zone"
+
+#: edit_record.php:67 list_perm_templ.php:36 edit_zone_templ.php:96
+#: edit_zone_templ.php:173 search.php:65 search.php:119 add_perm_templ.php:44
+#: add_perm_templ.php:55 add_record.php:120 delete_domains.php:56
+#: add_zone_templ_record.php:99 edit_zone_templ_record.php:61 edit.php:143
+#: edit.php:240 list_zones.php:67 add_zone_templ.php:45 list_zone_templ.php:37
+#: edit_perm_templ.php:53 edit_perm_templ.php:65
+msgid "Name"
+msgstr "Naam"
+
+#: edit_record.php:69 edit_zone_templ.php:97 search.php:66 search.php:120
+#: add_record.php:122 add_zone_master.php:121 delete_domains.php:58
+#: add_zone_templ_record.php:101 edit_zone_templ_record.php:63 edit.php:144
+#: edit.php:242 edit.php:349 list_zones.php:68 delete_domain.php:63
+msgid "Type"
+msgstr "Type"
+
+#: edit_record.php:70 edit_zone_templ.php:99 search.php:121 add_record.php:124
+#: add_zone_templ_record.php:103 edit_zone_templ_record.php:64 edit.php:146
+#: edit.php:244
+msgid "Priority"
+msgstr "Prioriteit"
+
+#: edit_record.php:71 edit_zone_templ.php:98 search.php:122 add_record.php:123
+#: add_zone_templ_record.php:102 edit_zone_templ_record.php:65 edit.php:145
+#: edit.php:243
+msgid "Content"
+msgstr "Content"
+
+#: edit_record.php:72 edit_zone_templ.php:100 search.php:123
+#: add_record.php:125 add_zone_templ_record.php:104
+#: edit_zone_templ_record.php:66 edit.php:147 edit.php:245
+msgid "TTL"
+msgstr "TTL"
+
+#: edit_record.php:109 users.php:121 edit_comment.php:87 edit_user.php:141
+#: edit_zone_templ.php:163 edit_zone_templ.php:181 add_perm_templ.php:72
+#: edit_zone_templ_record.php:91 edit.php:227 delete_user.php:111
+#: edit_perm_templ.php:86 add_user.php:76
+msgid "Commit changes"
+msgstr "Wijzigingen doorvoeren"
+
+#: edit_record.php:110 users.php:122 edit_comment.php:88 edit_user.php:142
+#: edit_zone_templ.php:164 edit_zone_templ_record.php:92 edit.php:228
+msgid "Reset changes"
+msgstr "Maak veranderingen ongedaan"
+
+#: users.php:47 index.php:60 inc/header.inc.php:82
+msgid "User administration"
+msgstr "Gebruikersbeheer"
+
+#: users.php:52 edit_user.php:103 inc/auth.inc.php:133 install/index.php:93
+#: install/index.php:172 add_user.php:39
+msgid "Username"
+msgstr "Gebruikersnaam"
+
+#: users.php:53 edit_user.php:107 add_user.php:43
+msgid "Fullname"
+msgstr "Volledige naam"
+
+#: users.php:54 list_perm_templ.php:37 edit_user.php:132
+#: edit_zone_templ.php:177 add_perm_templ.php:48 add_perm_templ.php:56
+#: add_zone_templ.php:49 list_zone_templ.php:38 edit_perm_templ.php:57
+#: edit_perm_templ.php:66 add_user.php:67
+msgid "Description"
+msgstr "Omschrijving"
+
+#: users.php:55 edit_user.php:115 add_user.php:51
+msgid "Email address"
+msgstr "Email adres"
+
+#: users.php:56 add_zone_master.php:132 edit.php:381
+msgid "Template"
+msgstr "Template"
+
+#: users.php:57 edit_user.php:136 add_user.php:71
+msgid "Enabled"
+msgstr "Actief"
+
+#: users.php:71 edit_user.php:98
+msgid "Edit user"
+msgstr "Wijzigen gebruiker"
+
+#: users.php:75 delete_user.php:60
+msgid "Delete user"
+msgstr "Verwijderen gebruiker"
+
+#: users.php:131 edit_perm_templ.php:47
+msgid "Edit permission template"
+msgstr "Wijzigen permissie template"
+
+#: users.php:135 add_user.php:35
+msgid "Add user"
+msgstr "Gebruiker toevoegen"
+
+#: list_perm_templ.php:32
+msgid "Permission templates"
+msgstr "Permissie templates"
+
+#: list_perm_templ.php:48 list_zone_templ.php:46
+msgid "Edit template"
+msgstr "Wijzigen template"
+
+#: list_perm_templ.php:49 list_zone_templ.php:47
+msgid "Delete template"
+msgstr "Verwijderen template"
+
+#: list_perm_templ.php:61 add_perm_templ.php:40
+msgid "Add permission template"
+msgstr "Permissie template toevoegen"
+
+#: edit_comment.php:53
+msgid "Edit comment in zone"
+msgstr "Pas zone commentaar aan"
+
+#: edit_user.php:111 inc/auth.inc.php:137 install/index.php:98
+#: install/index.php:177 add_user.php:47
+msgid "Password"
+msgstr "Wachtwoord"
+
+#: edit_user.php:120 add_user.php:56
+msgid "Permission template"
+msgstr "Permissie template"
+
+#: edit_user.php:147
+#, php-format
+msgid "This user has been assigned the permission template \"%s\"."
+msgstr "Aan deze gebruiker is permissie template \"%s\" toegewezen."
+
+#: edit_user.php:149
+msgid "The description for this template is"
+msgstr "De omschrijving van dit template is"
+
+#: edit_user.php:151
+msgid "Based on this template, this user has the following permissions"
+msgstr "Gebaseerd op dit template heeft de gebruiker de volgende rechten"
+
+#: edit_zone_templ.php:82
+msgid "Edit zone template"
+msgstr "Wijzigen zone template"
+
+#: edit_zone_templ.php:90
+msgid "This template zone does not have any records yet."
+msgstr "Deze template heeft nog geen records"
+
+#: edit_zone_templ.php:107 search.php:131 edit.php:161
+msgid "Edit record"
+msgstr "Wijzigen record"
+
+#: edit_zone_templ.php:109 delete_zone_templ_record.php:53 search.php:136
+#: delete_record.php:66 edit.php:163
+msgid "Delete record"
+msgstr "Verwijderen record"
+
+#: edit_zone_templ.php:145 add_zone_templ_record.php:139
+msgid "The following placeholders can be used in template records"
+msgstr "De volgende items kunnen in de template records gebruikt worden"
+
+#: edit_zone_templ.php:148 add_zone_templ_record.php:142
+msgid "substituted with current zone name"
+msgstr "wordt vervangen door de huidige zone naam"
+
+#: edit_zone_templ.php:149 add_zone_templ_record.php:143
+msgid "substituted with current date and 2 numbers"
+msgstr "wordt vervangen door de huidige datum en 2 cijfers"
+
+#: edit_zone_templ.php:155 edit.php:219
+msgid "Template Name"
+msgstr "Template naam"
+
+#: edit_zone_templ.php:159 edit.php:223
+msgid "Template Description"
+msgstr "Beschrijving template"
+
+#: edit_zone_templ.php:165 edit.php:229
+msgid "Save as template"
+msgstr "Sla als template op"
+
+#: edit_zone_templ.php:166
+msgid "Update zones"
+msgstr "Vernieuw zones"
+
+#: edit_zone_templ.php:183 add_record.php:158 add_zone_templ_record.php:147
+#: edit.php:287
+msgid "Add record"
+msgstr "Record toevoegen"
+
+#: edit_zone_templ.php:184 delete_zone_templ.php:44
+msgid "Delete zone template"
+msgstr "Verwijder zone template"
+
+#: add_zone_slave.php:67 index.php:54 inc/header.inc.php:76
+msgid "Add slave zone"
+msgstr "Slave zone toevoegen"
+
+#: add_zone_slave.php:73 add_zone_master.php:91
+msgid "Zone name"
+msgstr "Zone naam"
+
+#: add_zone_slave.php:79 edit.php:413
+msgid "IP address of master NS"
+msgstr "IP adres van master NS"
+
+#: add_zone_slave.php:85 search.php:70 add_zone_master.php:102
+#: delete_domains.php:57 list_zones.php:70 delete_domain.php:62
+msgid "Owner"
+msgstr "Eigenaar"
+
+#: add_zone_slave.php:106 add_zone_master.php:146
+msgid "Add zone"
+msgstr "Zone toevoegen"
+
+#: delete_zone_templ.php:50 delete_zone_templ_record.php:74
+#: delete_domains.php:72 delete_record.php:94 delete_perm_templ.php:49
+#: delete_domain.php:72 delete_supermaster.php:61
+msgid "Are you sure?"
+msgstr "Weet u het zeker?"
+
+#: delete_zone_templ.php:51 delete_zone_templ_record.php:75
+#: delete_domains.php:73 delete_record.php:95 delete_perm_templ.php:50
+#: delete_domain.php:73 delete_supermaster.php:62
+msgid "Yes"
+msgstr "Ja"
+
+#: delete_zone_templ.php:52 delete_zone_templ_record.php:76
+#: delete_domains.php:74 delete_record.php:96 delete_perm_templ.php:51
+#: delete_domain.php:74 delete_supermaster.php:63
+msgid "No"
+msgstr "Nee"
+
+#: index.php:26
+msgid "Welcome"
+msgstr "Welkom"
+
+#: index.php:37 inc/header.inc.php:59
+msgid "Index"
+msgstr "Index"
+
+#: index.php:39 search.php:32 inc/header.inc.php:61
+msgid "Search zones and records"
+msgstr "Zone en records zoeken"
+
+#: index.php:42 inc/header.inc.php:64 list_zones.php:39
+msgid "List zones"
+msgstr "Overzicht zones"
+
+#: index.php:45 inc/header.inc.php:67
+msgid "List zone templates"
+msgstr "Overzicht zone templates"
+
+#: index.php:48 inc/header.inc.php:70 list_supermasters.php:32
+msgid "List supermasters"
+msgstr "Overzicht supermasters"
+
+#: index.php:51 inc/header.inc.php:73 add_zone_master.php:82
+msgid "Add master zone"
+msgstr "Master zone toevoegen"
+
+#: index.php:57 inc/header.inc.php:79 add_supermaster.php:54
+#: add_supermaster.php:106
+msgid "Add supermaster"
+msgstr "Supermaster toevoegen"
+
+#: index.php:59 inc/header.inc.php:81 change_password.php:31
+#: change_password.php:49
+msgid "Change password"
+msgstr "Wachtwoord wijzigen"
+
+#: index.php:61 inc/header.inc.php:83
+msgid "Logout"
+msgstr "Uitloggen"
+
+#: search.php:61
+msgid "Zones found"
+msgstr "Gevonden zones"
+
+#: search.php:67
+msgid "Master"
+msgstr "Master"
+
+#: search.php:79 edit.php:129
+msgid "Edit zone"
+msgstr "Wijzigen zone"
+
+#: search.php:84 list_zones.php:99 delete_domain.php:54
+msgid "Delete zone"
+msgstr "Verwijderen zone"
+
+#: search.php:115
+msgid "Records found"
+msgstr "Gevonden records"
+
+#: search.php:155
+msgid "Query"
+msgstr "Zoekopdracht"
+
+#: search.php:161
+msgid "Search"
+msgstr "Zoeken"
+
+#: search.php:166
+msgid ""
+"Enter a hostname or IP address. SQL LIKE syntax supported: an underscore (_)"
+" in pattern matches any single character, a percent sign (%) matches any "
+"string of zero or more characters."
+msgstr "Geef een hostname of IP adres. SQL LIKE syntax wordt ondersteund: een underscore (_) in de zoekopdracht staat voor een enkel willekeurig teken, een procentteken (%) staat voor nul, een of meer willekeurige tekens."
+
+#: inc/users.inc.php:382
+msgid "Password has been changed, please login."
+msgstr "Het wachtwoord is gewijzigd. Log opnieuw in."
+
+#: inc/record.inc.php:387
+msgid ""
+"You are trying to delete the SOA record. You are not allowed to remove it, "
+"unless you remove the entire zone."
+msgstr "U probeert een SOA record te verwijderen. U kunt dit record niet verwijderen, tenzij u de hele zone verwijderd."
+
+#: inc/record.inc.php:751
+msgid "Function returned an error (multiple zones matching this zone ID)."
+msgstr "Er is ene fout opgetreden: meerdere zones hebben dit zone ID."
+
+#: inc/toolkit.inc.php:33 reset_password.php:27
+msgid "You have to create a config.inc.php!"
+msgstr "U dient eerst inc/config.inc.php aan te maken."
+
+#: inc/toolkit.inc.php:154
+msgid "Show page"
+msgstr "Toon pagina"
+
+#: inc/toolkit.inc.php:173
+msgid "Show zones beginning with"
+msgstr "Toon zones beginnend met"
+
+#: inc/toolkit.inc.php:246
+msgid ""
+"Something has been successfully performed. What exactly, however, will "
+"remain a mystery."
+msgstr "Er is iets succesvol uitgevoerd. Het blijft echter een mysterie wat dat dan precies was."
+
+#: inc/toolkit.inc.php:258
+msgid "Success!"
+msgstr "Gelukt!"
+
+#: inc/toolkit.inc.php:269
+msgid "Successful!"
+msgstr "Geslaagd!"
+
+#: inc/toolkit.inc.php:275
+msgid "back"
+msgstr "terug"
+
+#: inc/toolkit.inc.php:314
+msgid "Inactive"
+msgstr "Inactief"
+
+#: inc/toolkit.inc.php:318
+msgid "Active"
+msgstr "Actief"
+
+#: inc/auth.inc.php:31
+msgid "You have logged out."
+msgstr "U bent nu uitgelogd."
+
+#: inc/auth.inc.php:45
+msgid "Session expired, please login again."
+msgstr "Sessie verlopen, u moet opnieuw inloggen."
+
+#: inc/auth.inc.php:93
+msgid "Authentication failed!"
+msgstr "Authenticatie mislukt!"
+
+#: inc/auth.inc.php:106
+msgid ""
+"Authentication failed! - <a href=\"reset_password.php\">(forgot "
+"password)</a>"
+msgstr "Authenticatie mislukt! - <a href=\"reset_password.php\">(wachtwoord vergeten)</a>"
+
+#: inc/auth.inc.php:127
+msgid "Log in"
+msgstr "Inloggen"
+
+#: inc/auth.inc.php:143
+msgid "Go"
+msgstr "Start"
+
+#: inc/error.inc.php:24
+msgid "You do not have the permission to perform searches."
+msgstr "U heeft onvoldoende rechten voor het uitvoeren van zoekopdrachten."
+
+#: inc/error.inc.php:25
+msgid "You do not have the permission to add a record to this zone."
+msgstr "U heeft onvoldoende rechten voor het toevoegen van een record aan deze zone."
+
+#: inc/error.inc.php:26
+msgid "You do not have the permission to edit this record."
+msgstr "U heeft onvoldoende rechten voor het wijzigen van dit record."
+
+#: inc/error.inc.php:27
+msgid "You do not have the permission to view this record."
+msgstr "U heeft onvoldoende rechten voor het zien van dit record."
+
+#: inc/error.inc.php:28
+msgid "You do not have the permission to delete this record."
+msgstr "U heeft onvoldoende rechten voor het verwijderen van dit record."
+
+#: inc/error.inc.php:29
+msgid "You do not have the permission to add a master zone."
+msgstr "U heeft onvoldoende rechten voor het toevoegen van een master zone."
+
+#: inc/error.inc.php:30
+msgid "You do not have the permission to add a slave zone."
+msgstr "U heeft onvoldoende rechten voor het toevoegen van een slave zone."
+
+#: inc/error.inc.php:31
+msgid "You do not have the permission to delete a zone."
+msgstr "U heeft onvoldoende rechten voor het verwijderen van een zone."
+
+#: inc/error.inc.php:32
+msgid "You do not have the permission to view this comment."
+msgstr "Je hebt geen toestemming om deze commentaar te lezen"
+
+#: inc/error.inc.php:33
+msgid "You do not have the permission to edit this comment."
+msgstr "Je hebt geen toestemming om deze commentaar aan te passen"
+
+#: inc/error.inc.php:34
+msgid "You do not have the permission to delete a supermaster."
+msgstr "U heeft onvoldoende rechten voor het verwijderen van een supermaster."
+
+#: inc/error.inc.php:35
+msgid "You do not have the permission to view this zone."
+msgstr "U heeft onvoldoende rechten voor het zien van deze zone."
+
+#: inc/error.inc.php:36
+msgid "You do not have the permission to edit this user."
+msgstr "U heeft onvoldoende rechten voor het wijzigen van deze gebruiker."
+
+#: inc/error.inc.php:37
+msgid "You do not have the permission to edit permission templates."
+msgstr "U heeft onvoldoende rechten voor het wijzigen van permissie templates."
+
+#: inc/error.inc.php:38
+msgid "You do not have the permission to delete permission templates."
+msgstr "U heeft onvoldoende rechten voor het verwijderen van permissie templates."
+
+#: inc/error.inc.php:39
+msgid "You do not have the permission to add a new user."
+msgstr "U heeft onvoldoende rechten voor het toevoegen van een gebruiker."
+
+#: inc/error.inc.php:40
+msgid "You do not have the permission to delete this user."
+msgstr "U heeft onvoldoende rechten voor het verwijderen van deze gebruiker."
+
+#: inc/error.inc.php:41
+msgid "You do not have the permission to edit zone templates."
+msgstr "Je hebt geen toestemming om deze zone template aan te passen"
+
+#: inc/error.inc.php:42
+msgid "You do not have the permission to delete zone templates."
+msgstr "Je hebt geen toestemming om deze zone template te verwijderen"
+
+#: inc/error.inc.php:43
+msgid "You do not have the permission to add a zone template."
+msgstr "Je hebt geen toestemming om nieuwe een zone template toe te voegen"
+
+#: inc/error.inc.php:46
+msgid "This is an invalid zone name."
+msgstr "Dit is een ongeldige zone naam."
+
+#: inc/error.inc.php:47
+msgid "There is already a supermaster with this IP address."
+msgstr "Er bestaat al een supermaster met dit IP adres."
+
+#: inc/error.inc.php:48
+msgid "There is already a zone with this name."
+msgstr "Er bestaat al een zone met deze naam."
+
+#: inc/error.inc.php:51
+msgid "Username exist already, please choose another one."
+msgstr "Gebruikersnaam is ongeldig, kies een andere naam."
+
+#: inc/error.inc.php:52
+msgid "User does not exist."
+msgstr "Deze gebruikersnaam bestaat niet."
+
+#: inc/error.inc.php:53
+msgid "You did not enter the correct current password."
+msgstr "Het opgegeven huidige wachtwoord is niet correct."
+
+#: inc/error.inc.php:54
+msgid "The two new password fields do not match."
+msgstr "De twee nieuwe wachtwoorden komen niet overeen."
+
+#: inc/error.inc.php:55
+msgid "This template is assigned to at least one user."
+msgstr "Dit template is toegewezen aan minimaal een gebruiker."
+
+#: inc/error.inc.php:58
+msgid "Invalid or unexpected input given."
+msgstr "Onbekende waarde voor een variable opgegeven."
+
+#: inc/error.inc.php:59
+#, php-format
+msgid "Invalid argument(s) given to function %s"
+msgstr "Er zijn ongeldige opties meegegeven aan functie %s"
+
+#: inc/error.inc.php:60
+#, php-format
+msgid "Invalid argument(s) given to function %s %s"
+msgstr "Er zijn ongeldige opties meegegeven aan functie %s %s"
+
+#: inc/error.inc.php:61
+msgid "Unknown error."
+msgstr "Onbekende fout."
+
+#: inc/error.inc.php:62
+msgid "Enter a valid email address."
+msgstr "Specificeer een geldig e-mailadres."
+
+#: inc/error.inc.php:63
+msgid "There is no zone with this ID."
+msgstr "Er bestaat geen zone met dit ID."
+
+#: inc/error.inc.php:64
+msgid "There is no zone template with this ID."
+msgstr "De template met deze ID is onbestaande"
+
+#: inc/error.inc.php:65
+msgid ""
+"The <a href=\"install/\">install/</a> directory exists, you must remove it "
+"first before proceeding."
+msgstr "De <a href=\"install/\">install/</a> folder bestaat nog, je moet deze eerst verwijderen alvorens verder te gaan."
+
+#: inc/error.inc.php:66
+msgid ""
+"Zone template with this name already exists, please choose another one."
+msgstr "Zone template met deze naam bestaat al, kies een andere."
+
+#: inc/error.inc.php:67
+msgid "Template name can't be an empty string."
+msgstr "De template naam moet ingevuld zijn"
+
+#: inc/error.inc.php:70
+msgid "No database name has been set in config.inc.php."
+msgstr "Er is geen database naam opgegeven in config.inc.php."
+
+#: inc/error.inc.php:71
+msgid "No database host has been set in config.inc.php."
+msgstr "Er is geen database hostnaam opgegeven in config.inc.php."
+
+#: inc/error.inc.php:72
+msgid "No database username has been set in config.inc.php."
+msgstr "Er is geen database gebruikersnaam opgegeven in config.inc.php."
+
+#: inc/error.inc.php:73
+msgid "No database password has been set in config.inc.php."
+msgstr "Er is geen database wachtwoord opgegeven in config.inc.php."
+
+#: inc/error.inc.php:74
+msgid "No or unknown database type has been set in config.inc.php."
+msgstr "Er is geen of een onbekend database type opgegeven in config.inc.php."
+
+#: inc/error.inc.php:75
+msgid "No database file has been set in config.inc.php."
+msgstr "Er is geen database bestand aanwezig in config.inc.php"
+
+#: inc/error.inc.php:76
+msgid ""
+"It seems that you forgot to update the database after Poweradmin upgrade to "
+"new version."
+msgstr "Het lijkt erop dat je vergeten bent de Poweradmin database te updaten na de upgrade naar een nieuwere versie"
+
+#: inc/error.inc.php:79
+msgid "Your content field doesnt have a legit value."
+msgstr "Het content veld bevat een ongeldige waarde."
+
+#: inc/error.inc.php:80
+msgid "Invalid hostname."
+msgstr "Ongeldige hostname."
+
+#: inc/error.inc.php:81
+msgid "You have invalid characters in your hostname."
+msgstr "Er staan ongeldige characters in de hostname."
+
+#: inc/error.inc.php:82
+msgid "A hostname can not start or end with a dash."
+msgstr "Een hostname kan niet met een streepje beginnen of eindigen."
+
+#: inc/error.inc.php:83
+msgid "Given hostname or one of the labels is too short or too long."
+msgstr "De opgegeven hostname of een van de componenten is te kort of te lang."
+
+#: inc/error.inc.php:84
+msgid "Given hostname has too many slashes."
+msgstr "De opgegeven hostname bevat teveel slashes."
+
+#: inc/error.inc.php:85
+msgid "Unknown record type."
+msgstr "Onbekend record type."
+
+#: inc/error.inc.php:86
+msgid "This is not a valid IPv4 or IPv6 address."
+msgstr "Dit is geen geldig IPv4 of IPv6 adres."
+
+#: inc/error.inc.php:87
+msgid "This is not a valid IPv6 address."
+msgstr "Dit is gene geldig IPv6 adres."
+
+#: inc/error.inc.php:88
+msgid "This is not a valid IPv4 address."
+msgstr "Dit is geen geldig IPv4 adres."
+
+#: inc/error.inc.php:89
+msgid ""
+"This is not a valid CNAME. Did you assign an MX or NS record to the record?"
+msgstr "Dit is geen geldige CNAME. Heeft u een MX of NS record hiernaar verwijzen?"
+
+#: inc/error.inc.php:90
+msgid ""
+"This is not a valid record. There is already exists a CNAME with this name."
+msgstr "Deze record is niet geldig. Er bestaat al een CNAME met deze naam."
+
+#: inc/error.inc.php:91
+msgid ""
+"This is not a valid CNAME. There is already exists an A, AAAA or CNAME with "
+"this name."
+msgstr "Deze CNAME is niet geldig. Er bestaat al een A, AAA of CNAME met deze naam."
+
+#: inc/error.inc.php:92
+msgid ""
+"You can not point a NS or MX record to a CNAME record. Remove or rame the "
+"CNAME record first, or take another name."
+msgstr "Een NS of MX record mag niet naar een CNAME record verwijzen. Verwijder of hernoem het CNAME record eerst, of verwijs naar een ander record."
+
+#: inc/error.inc.php:93
+msgid "NS records must be a hostnames."
+msgstr "De waarde van een NS record moet een hostname zijn."
+
+#: inc/error.inc.php:94
+msgid "A prio field should be numeric."
+msgstr "Het prioriteit veld behoort numeriek te zijn."
+
+#: inc/error.inc.php:95
+msgid ""
+"Invalid value for name field of SOA record. It should be the name of the "
+"zone."
+msgstr "Ongeldige waarde voor het naam veld van het SOA record. Het moet de naam van de zone zijn."
+
+#: inc/error.inc.php:96
+msgid "You have an error in the MNAME field of the SOA record."
+msgstr "Het MNAME veld van het SOA record is ongeldig."
+
+#: inc/error.inc.php:97
+msgid "Invalid value for content field of HINFO record."
+msgstr "Ongeldige waarde voor het Content veld van het HINFO record."
+
+#: inc/error.inc.php:98
+msgid "The hostname is too long."
+msgstr "De hostname is te lang."
+
+#: inc/error.inc.php:99
+msgid "You are using an invalid top level domain."
+msgstr "De hostnaam heeft een niet-officiele TLD."
+
+#: inc/error.inc.php:100
+msgid "Invalid value for TTL field. It should be numeric."
+msgstr "Ongeldige waarde het TTL veld. Het moet numeriek zijn."
+
+#: inc/error.inc.php:101
+msgid "Invalid value for prio field. It should be numeric."
+msgstr "Ongeldige waarde het prio veld. Het moet numeriek zijn."
+
+#: inc/error.inc.php:102
+msgid "Invalid value for name field of SRV record."
+msgstr "U heeft een ongeldige waarde voor het name veld van het SRV record opgegeven."
+
+#: inc/error.inc.php:103
+msgid "Invalid value for the priority field of the SRV record."
+msgstr "Ongeldige waarde voor de prioriteit van de SRV record."
+
+#: inc/error.inc.php:104
+msgid "Invalid value for the weight field of the SRV record."
+msgstr "U heeft een ongeldige waarde voor het weight veld van het SRV record opgegeven."
+
+#: inc/error.inc.php:105
+msgid "Invalid SRV target."
+msgstr "Ongeldig SRV target."
+
+#: inc/error.inc.php:106
+msgid "Invalid characters have been used in this record."
+msgstr "U heeft ongeldige characters gebruikt in het record."
+
+#: inc/error.inc.php:109
+msgid "Zone has been added successfully."
+msgstr "Zone is succesvol toegevoegd."
+
+#: inc/error.inc.php:110
+msgid "Zone has been deleted successfully."
+msgstr "Zone is succesvol verwijderd."
+
+#: inc/error.inc.php:111
+msgid "Zones have been updated successfully."
+msgstr "De zone is aangepast"
+
+#: inc/error.inc.php:112
+msgid "The user has been updated successfully."
+msgstr "Gegevens van de gebruiker zijn succesvol gewijzigd."
+
+#: inc/error.inc.php:113
+msgid "The user has been created successfully."
+msgstr "De gebruiker is succesvol aangemaakt."
+
+#: inc/error.inc.php:114
+msgid "The user has been deleted successfully."
+msgstr "De gebruiker is succesvol verwijderd."
+
+#: inc/error.inc.php:115
+msgid "The record has been updated successfully."
+msgstr "Het record is succesvol gewijzigd."
+
+#: inc/error.inc.php:116
+msgid "The record has been deleted successfully."
+msgstr "Het record is succesvol verwijderd."
+
+#: inc/error.inc.php:117
+msgid "The comment has been updated successfully."
+msgstr "De commentaar is aangepast"
+
+#: inc/error.inc.php:118
+msgid "The supermaster has been deleted successfully."
+msgstr "De supermaster is succesvol verwijderd."
+
+#: inc/error.inc.php:119
+msgid "The supermaster has been added successfully."
+msgstr "De supermaster is succesvol toegevoegd."
+
+#: inc/error.inc.php:120
+msgid "The permission template has been updated successfully."
+msgstr "De permissie template is aangepast"
+
+#: inc/error.inc.php:121
+msgid "The permission template has been deleted successfully."
+msgstr "Het permissie template is succesvol verwijderd."
+
+#: inc/error.inc.php:122
+msgid "Zone template has been added successfully."
+msgstr "De zone template is toegevoegd"
+
+#: inc/error.inc.php:123
+msgid "Zone template has been updated successfully."
+msgstr "De zone template is aangepast"
+
+#: inc/error.inc.php:124
+msgid "Zone template has been deleted successfully."
+msgstr "De zone template is verwijderd"
+
+#: change_password.php:35
+msgid "Current password"
+msgstr "Huidige wachtwoord"
+
+#: change_password.php:39 change_password.php:43
+msgid "New password"
+msgstr "Nieuw wachtwoord"
+
+#: add_record.php:102 add_zone_templ_record.php:81
+msgid "The record was successfully added."
+msgstr "Record succesvol toegevoegd."
+
+#: add_record.php:111
+msgid "Add record to zone"
+msgstr "Record toevoegen aan zone"
+
+#: delete_domains.php:41
+msgid "Delete zones"
+msgstr "Verwijder zones"
+
+#: delete_domains.php:63 delete_domain.php:68
+#, php-format
+msgid ""
+"You are about to delete a slave zone of which the master nameserver, %s, is "
+"a supermaster. Deleting the zone now, will result in temporary removal only."
+" Whenever the supermaster sends a notification for this zone, it will be "
+"added again!"
+msgstr "U wilt een slave zone verwijderen waarvan de master nameserver, %s, een supermaster is. Verwijdering van de zone zal enkel tot tijdelijke verwijdering leiden. Zodra de supermaster een notificatie stuurt, wordt deze zone opnieuw toegevoegd."
+
+#: add_supermaster.php:57
+msgid "You do not have the permission to add a new supermaster."
+msgstr "U heeft onvoldoende rechten voor het toevoegen van een supermaster."
+
+#: add_supermaster.php:62 list_supermasters.php:36
+msgid "IP address of supermaster"
+msgstr "IP adres van de supermaster"
+
+#: add_supermaster.php:72 list_supermasters.php:37 delete_supermaster.php:58
+msgid "Hostname in NS record"
+msgstr "Hostname in NS record"
+
+#: add_supermaster.php:82 list_supermasters.php:38 delete_supermaster.php:59
+msgid "Account"
+msgstr "Account"
+
+#: add_zone_templ_record.php:90
+msgid "Add record to zone template"
+msgstr "Record toevoegen aan zone template"
+
+#: edit_zone_templ_record.php:52
+msgid "Edit record in zone template"
+msgstr "Wijzigen record in zone template"
+
+#: delete_record.php:92
+msgid ""
+"You are trying to delete a record that is needed for this zone to work."
+msgstr "U gaat een record verwijderen dat nodig is voor het functioneren van deze zone."
+
+#: delete_perm_templ.php:43
+msgid "Delete permission template"
+msgstr "Verwijderen permissie template"
+
+#: edit.php:137
+msgid "This zone does not have any records. Weird."
+msgstr "Deze zone heeft geen enkele records. Gek."
+
+#: edit.php:210
+msgid "Edit comment"
+msgstr "Commentaar aanpassen"
+
+#: edit.php:295
+msgid "Owner of zone"
+msgstr "Eigenaar van de zone"
+
+#: edit.php:301
+msgid "No owner set for this zone."
+msgstr "Geen eigenaar voor deze zone."
+
+#: edit.php:310 delete_user.php:77
+msgid "Delete"
+msgstr "Verwijderen"
+
+#: edit.php:343
+msgid "Add"
+msgstr "Toevoegen"
+
+#: edit.php:372 edit.php:401 edit.php:424
+msgid "Change"
+msgstr "Wijzigen"
+
+#: list_zones.php:42
+msgid "You do not have the permission to see any zones."
+msgstr "U heeft onvoldoende rechten voor het zien van een overzicht van zones."
+
+#: list_zones.php:49 list_supermasters.php:44
+msgid "There are no zones to show in this listing."
+msgstr "Er zijn geen zones om te tonen in dit overzicht."
+
+#: list_zones.php:69
+msgid "Records"
+msgstr "Records"
+
+#: list_zones.php:71
+msgid "Serial"
+msgstr "Serial"
+
+#: list_zones.php:97
+msgid "View zone"
+msgstr "Bekijken zone"
+
+#: list_zones.php:116
+msgid "Delete zone(s)"
+msgstr "Verwijder zone(s)"
+
+#: install/index.php:47
+msgid "Installation step"
+msgstr "Installatie stap"
+
+#: install/index.php:62 install/index.php:80 install/index.php:135
+#: install/index.php:207 install/index.php:275 install/index.php:312
+msgid "Go to step"
+msgstr "Ga naar stap"
+
+#: install/index.php:69
+msgid ""
+"This installer expects you to have a PowerDNS database accessable from this "
+"server. This installer also expects you to have never ran Poweradmin before,"
+" or that you want to overwrite the Poweradmin part of the database. If you "
+"have had Poweradmin running before, any data in the following tables will be"
+" destroyed: perm_items, perm_templ, perm_templ_items, users and zones. This "
+"installer will, of course, not touch the data in the PowerDNS tables of the "
+"database. However, it is recommended that you create a backup of your "
+"database before proceeding."
+msgstr "Het installatie script verwacht dat u een PowerDNS database beschikbaar heeft, welke bereikbaar is vanaf deze server. Het installatie script verwacht bovendien dat u niet eerder Poweradmin voor deze database gebruikt heeft, of dat u geen problemen heeft met het overschrijven van dat deel van de database. Als u Poweradmin eerder heeft gebruikt, dan wordt alle informatie in de volgende database tabellen overschreven: perm_items, perm_templ, perm_templ_items, users en zones. Het installatie script zal uiteraard de data in de PowerDNS tabellen in de database ongemoeid laten. Desondanks wordt u aangeraden eerst een backup van de database te maken."
+
+#: install/index.php:71
+msgid ""
+"The alternative for this installer is a manual installation. Refer to the "
+"poweradmin.org website if you want to go down that road."
+msgstr "Het alternatief voor dit installatie script is een handmatige installatie. Kijk op de website poweradmin.org voor meer informatie daarover."
+
+#: install/index.php:73
+msgid ""
+"Finally, if you see any errors during the installation process, a problem "
+"report would be appreciated. You can report problems (and ask for help) on "
+"the <a href=\"http://groups.google.com/group/poweradmin\" target=\"blank\">poweradmin</a> mailinglist."
+msgstr "Tenslotte, mocht u onverhoopt problemen tijdens het installatie proces tegenkomen, zou een beschrijving daarvan welkom zijn. U kunt op de <a href=\"http://groups.google.com/group/poweradmin\" target=\"blank\">poweradmin</a> mailinglist terecht voor hulp."
+
+#: install/index.php:75
+msgid "Do you want to proceed now?"
+msgstr "Wilt u nu doorgaan?"
+
+#: install/index.php:86
+msgid ""
+"To prepare the database for using Poweradmin, the installer needs to modify "
+"the PowerDNS database. It will add a number of tables and it will fill these"
+" tables with some data. If the tables are already present, the installer "
+"will drop them first."
+msgstr "Om de database voor te bereiden op Poweradmin moet het installatie script enkele wijzigingen in de PowerDNS database maken. Het script zal een aantal tabellen toevoegen en deze vullen met data. Als deze tabellen al bestaan, zullen ze eerst worden verwijderd."
+
+#: install/index.php:88
+msgid ""
+"To do all of this, the installer needs to access the database with an "
+"account which has sufficient rights. If you trust the installer, you may "
+"give it the username and password of the database user root. Otherwise, make"
+" sure the user has enough rights, before actually proceeding."
+msgstr "Om dit te kunnen doen heeft het script toegang tot de database nodig met een account dat voldoende rechten heeft. Indien u het script vertrouwt, dan kunt u hier de gebruikersnaam en wachtwoord van de database gebruiker root opgeven. In andere gevallen dient u vooraf zeker te weten dat de opgegeven gebruiker voldoende rechten heeft, alvorens verder te gaan. "
+
+#: install/index.php:95
+msgid ""
+"The username to use to connect to the database, make sure the username has "
+"sufficient rights to perform administrative task to the PowerDNS database "
+"(the installer wants to drop, create and fill tables to the database)."
+msgstr "De gebruikersnaam voor de database. Zorgt u er voor dat deze gebruiker voldoende rechten heeft voor het uitvoeren van administratieve taken op de PowerDNS database (het installatie script moet tabellen kunnen verwijderen, toevoegen en vullen)."
+
+#: install/index.php:100 install/index.php:179
+msgid "The password for this username."
+msgstr "Het wachtwoord voor deze gebruikersnaam."
+
+#: install/index.php:103
+msgid "Hostname"
+msgstr "Hostnaam"
+
+#: install/index.php:105
+msgid ""
+"The hostname on which the PowerDNS database resides. Frequently, this will "
+"be \"localhost\"."
+msgstr "De hostnaam waarop de PowerDNS database gevonden kan worden. Vaak is dit \"localhost\"."
+
+#: install/index.php:108
+msgid "DB Port"
+msgstr "DB Poort"
+
+#: install/index.php:110
+msgid "The port the database server is listening on."
+msgstr "De poort waarop de database luistert"
+
+#: install/index.php:113
+msgid "Database"
+msgstr "Database"
+
+#: install/index.php:115
+msgid "The name of the PowerDNS database."
+msgstr "De naam van de PowerDNS database."
+
+#: install/index.php:118
+msgid "Database type"
+msgstr "Database type"
+
+#: install/index.php:124
+msgid "The type of the PowerDNS database."
+msgstr "Het type van de PowerDNS database"
+
+#: install/index.php:127
+msgid "Poweradmin administrator password"
+msgstr "Wachtwoord van Poweradmin beheerder"
+
+#: install/index.php:129
+msgid ""
+"The password of the Poweradmin administrator. This administrator has full "
+"rights to Poweradmin using the web interface."
+msgstr "Het wachtwoord van de Poweradmin beheerder. Deze beheerder heeft via de web interface alle rechten in Poweradmin."
+
+#: install/index.php:141
+msgid "Updating database..."
+msgstr "Doorvoeren van wijziging in de database..."
+
+#: install/index.php:166
+msgid "done!"
+msgstr "gedaan!"
+
+#: install/index.php:168
+msgid "Now we will gather all details for the configuration itself."
+msgstr "De volgende stap is het samenstellen van de configuratie van Poweradmin."
+
+#: install/index.php:174
+msgid ""
+"The username for Poweradmin. This new user will have limited rights only."
+msgstr "De gebruikersnaam voor Poweradmin. Deze nieuwe database gebruiker heeft slechts beperkte rechten."
+
+#: install/index.php:182
+msgid "Hostmaster"
+msgstr "Hostmaster"
+
+#: install/index.php:184
+msgid ""
+"When creating SOA records and no hostmaster is provided, this value here "
+"will be used. Should be in the form \"hostmaster.example.net\"."
+msgstr "Als u een SOA record aanmaakt en u geen hostmaster opgeeft, wordt deze waarde gebruikt. Voorbeeld: \"hostmaster.example.net\"."
+
+#: install/index.php:187
+msgid "Primary nameserver"
+msgstr "Primaire nameserver"
+
+#: install/index.php:189
+msgid ""
+"When creating new zones using the template, this value will be used as "
+"primary nameserver. Should be like \"ns1.example.net\"."
+msgstr "Als u een nieuwe zone aanmaakt met het zone template, dan wordt deze nameserver als primaire nameserber gebruikt. Voorbeeld: \"ns1.example.net\"."
+
+#: install/index.php:192
+msgid "Secondary nameserver"
+msgstr "Secundaire nameserver"
+
+#: install/index.php:194
+msgid ""
+"When creating new zones using the template, this value will be used as "
+"secondary nameserver. Should be like \"ns2.example.net\"."
+msgstr "Als u een nieuwe zone aanmaakt met het zone template, dan wordt deze nameserver als secundaire nameserber gebruikt. Voorbeeld: \"ns2.example.net\"."
+
+#: install/index.php:230
+msgid ""
+"You now want to give limited rights to Poweradmin so it can update the data "
+"in the tables. To do this, you should create a new user and give it rights "
+"to select, delete, insert and update records in the PowerDNS database."
+msgstr "U zult nu voor Poweradmin een database gebruiker moeten toevoegen met beperkte rechten. Deze gebruiker moet de rechten voor SELECT, DELETE, INSERT en UPDATE van records in de PowerDNS database hebben."
+
+#: install/index.php:241
+msgid "In MySQL you should now perform the following command:"
+msgstr "In MySQL voert u het volgende commando uit:"
+
+#: install/index.php:244
+msgid "On PgSQL you would use:"
+msgstr "In PgSQL kunt u de volgende commandos gebruiken:"
+
+#: install/index.php:259
+msgid ""
+"After you have added the new user, proceed with this installation procedure."
+msgstr "Als u de nieuwe gebruiker heeft toegevoegd, gaat u verder met de installatie procedure."
+
+#: install/index.php:301
+msgid "The installer was able to write to the file \""
+msgstr "Het installatie script kon schrijven naar het bestand \""
+
+#: install/index.php:301
+msgid ""
+"\". A basic configuration, based on the details you have given, has been "
+"created."
+msgstr "\". Een minimale configuratie, gebaseerd op de door u opgegeven details, is aangemaakt."
+
+#: install/index.php:303
+msgid "The installer is unable to write to the file \""
+msgstr "Het installatie script kon niet schrijven naar het bestand \""
+
+#: install/index.php:303
+msgid ""
+"\" (which is in itself good). The configuration is printed here. You should "
+"now create the file \""
+msgstr "\" (wat op zichzelf wel goed is). De configuratie is hieronder weergegeven. U moet nu het bestand \""
+
+#: install/index.php:303
+msgid ""
+"\" in the Poweradmin root directory yourself. It should contain the "
+"following few lines:"
+msgstr "\" in de Poweradmin hoofd directory zelf aanmaken. Het moet de volgende regels bevatten:"
+
+#: install/index.php:318
+msgid ""
+"Now we have finished the configuration, you should (must!) remove the "
+"directory \"install/\" from the Poweradmin root directory. You will not be "
+"able to use Poweradmin if it exists. Do it now."
+msgstr "De configuratie is afgerond. U moet nu de directory \"install/\" uit de Poweradmin hoofd directory verwijderen. U kunt geen gebruik maken van Poweradmin als deze directory bestaat."
+
+#: install/index.php:319
+msgid ""
+"After you have removed the directory, you can login to <a "
+"href=\"../index.php\">Poweradmin</a> with username \"admin\" and password \""
+msgstr "Nadat je de folder verwijderd hebt, kan je inloggen in <a href=\"../index.php\">Poweradmin</a> met gebruikersnaam \"admin\" en wachtwoord \""
+
+#: install/index.php:319
+msgid ""
+"\". You are highly encouraged to change these as soon as you are logged in."
+msgstr "\". U wordt zeer aangeraden deze direct te wijzigen."
+
+#: list_supermasters.php:51 delete_supermaster.php:45
+msgid "Delete supermaster"
+msgstr "Verwijderen supermaster"
+
+#: add_zone_templ.php:41
+msgid "Add zone template for"
+msgstr "Zone template toevoegen voor"
+
+#: add_zone_templ.php:53 list_zone_templ.php:59
+msgid "Add zone template"
+msgstr "Zone template toevoegen"
+
+#: delete_user.php:71
+msgid ""
+"You are about to delete a user. This user is owner for a number of zones. "
+"Please decide what to do with these zones."
+msgstr "U wilt een gebruiker verwijderen. Deze gebruiker is eigenaar van (een) enkele zone(s). Bepaal wat u wilt doen met deze zones."
+
+#: delete_user.php:76
+msgid "Zone"
+msgstr "Zone"
+
+#: delete_user.php:78
+msgid "Leave"
+msgstr "Niets"
+
+#: delete_user.php:79
+msgid "Add new owner"
+msgstr "Eigenaar toevoegen"
+
+#: delete_user.php:80
+msgid "Owner to be added"
+msgstr "Toe te voegen eigenaar"
+
+#: delete_user.php:106
+msgid "Really delete this user?"
+msgstr "Wilt u deze gebruiker echt verwijderen?"
+
+#: reset_password.php:89
+msgid "Reset Password"
+msgstr "Herintialiseer wachtwoord"
+
+#: reset_password.php:93
+msgid "Registered Email Address"
+msgstr "Huidig Email Adres"
+
+#: reset_password.php:99
+msgid "Reset password"
+msgstr "Herintialiseer wachtwoord"
+
+#: list_zone_templ.php:33
+msgid "Zone templates for"
+msgstr "Zone templates voor"

+ 85 - 0
devadmin/html/poweradmin-2.1.7/locale/nl_NL/LC_MESSAGES/nl_db.po

@@ -0,0 +1,85 @@
+# Poweradmin translation.
+# Copyright (C) 2011 Poweradmin Development Team
+# This file is distributed under the same license as the Poweradmin package.
+# 
+# Translators:
+#   <fabian@dammekens.be>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: Poweradmin\n"
+"Report-Msgid-Bugs-To: https://github.com/poweradmin/poweradmin/issues\n"
+"POT-Creation-Date: 2011-07-08 23:45+0300\n"
+"PO-Revision-Date: 2012-02-14 09:00+0000\n"
+"Last-Translator: fdammeke <fabian@dammekens.be>\n"
+"Language-Team: Dutch (http://www.transifex.com/projects/p/poweradmin/language/nl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "User is allowed to add new master zones."
+msgstr "Gebruiker kan een master zone toevoegen."
+
+msgid "User is allowed to add new slave zones."
+msgstr "Gebruiker kan een nieuwe slave zone toevoegen."
+
+msgid "User is allowed to see the content and meta data of zones he owns."
+msgstr "Gebruiker kan de inhoud en metadata zien van de zones waartoe hij rechten heeft."
+
+msgid "User is allowed to edit the content of zones he owns."
+msgstr "Gebruiker kan de inhoud van de zones waartoe hij rechten heeft aanpassen."
+
+msgid "User is allowed to edit the meta data of zones he owns."
+msgstr "Gebruiker kan de metadata van de zones waartoe hij rechten heeft aanpassen."
+
+msgid ""
+"User is allowed to see the content and meta data of zones he does not own."
+msgstr "Gebruiker kan de inhoud en metadata zien van alle zones."
+
+msgid "User is allowed to edit the content of zones he does not own."
+msgstr "Gebruiker kan de inhoud van alle zones aanpassen."
+
+msgid "User is allowed to edit the meta data of zones he does not own."
+msgstr "Gebruiker kan de metadata van alle zones aanpassen."
+
+msgid "User is allowed to perform searches."
+msgstr "Gebruiker kan opzoekingen maken."
+
+msgid "User is allowed to view supermasters."
+msgstr "Gebruiker kan de supermasters oplijsten."
+
+msgid "User is allowed to add new supermasters."
+msgstr "Gebruiker kan supermasters toevoegen."
+
+msgid "User is allowed to edit supermasters."
+msgstr "Gebruiker kan supermasters aanpassen."
+
+msgid "User has full access. God-like. Redeemer."
+msgstr "Gebruiker heeft volledige toegang. Übermensch."
+
+msgid "User is allowed to see other users and their details."
+msgstr "Gebruiker kan andere gebruikers oplijsten en weergeven."
+
+msgid "User is allowed to add new users."
+msgstr "Gebruiker kan nieuwe gebruikers toevoegen."
+
+msgid "User is allowed to edit their own details."
+msgstr "Gebruiker kan zijn eigen details aanpassen."
+
+msgid "User is allowed to edit other users."
+msgstr "Gebruiker kan andere gebruikers aanpassen."
+
+msgid "User is allowed to edit the password of other users."
+msgstr "Gebruiker kan wachtwoorden van andere gebruikers aanpassen."
+
+msgid ""
+"User is allowed to change the permission template that is assigned to a "
+"user."
+msgstr "Gebruiker kan permissies toekennen aan andere gebruikers."
+
+msgid "User is allowed to add new permission templates."
+msgstr "Gebruiker kan nieuwe permissies aanmaken."
+
+msgid "User is allowed to edit existing permission templates."
+msgstr "Gebruiker kan bestaande permissies aanpassen."

BIN
devadmin/html/poweradmin-2.1.7/locale/pl_PL/LC_MESSAGES/messages.mo


+ 1040 - 0
devadmin/html/poweradmin-2.1.7/locale/pl_PL/LC_MESSAGES/pl.po

@@ -0,0 +1,1040 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Poweradmin\n"
+"Report-Msgid-Bugs-To: https://github.com/poweradmin/poweradmin/issues\n"
+"POT-Creation-Date: 2010-05-15 21:38+0200\n"
+"PO-Revision-Date: 2010-05-15 23:21+0100\n"
+"Last-Translator: Krzysztof Laska <krzysztof.laska@steamworx.pl>\n"
+"Language-Team: poweradmin polish <krzysztof.laska@steamworx.pl>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pl\n"
+
+#: add_perm_templ.php:39
+#: list_perm_templ.php:60
+msgid "Add permission template"
+msgstr "Dodaj wzorzec uprawnień"
+
+#: add_perm_templ.php:43
+#: add_perm_templ.php:54
+#: add_record.php:119
+#: add_zone_templ.php:43
+#: add_zone_templ_record.php:98
+#: edit_perm_templ.php:51
+#: edit_perm_templ.php:63
+#: edit.php:103
+#: edit.php:191
+#: edit_record.php:66
+#: edit_zone_templ.php:69
+#: edit_zone_templ_record.php:60
+#: list_perm_templ.php:35
+#: list_zones.php:62
+#: list_zone_templ.php:36
+#: search.php:64
+#: search.php:118
+msgid "Name"
+msgstr "Nazwa"
+
+#: add_perm_templ.php:47
+#: add_perm_templ.php:55
+#: add_user.php:65
+#: add_zone_templ.php:47
+#: edit_perm_templ.php:55
+#: edit_perm_templ.php:64
+#: edit_user.php:131
+#: list_perm_templ.php:36
+#: list_zone_templ.php:37
+#: users.php:46
+msgid "Description"
+msgstr "Opis"
+
+#: add_perm_templ.php:71
+#: add_user.php:74
+#: delete_user.php:101
+#: edit_perm_templ.php:84
+#: edit.php:179
+#: edit_record.php:108
+#: edit_user.php:140
+#: edit_zone_templ.php:125
+#: edit_zone_templ_record.php:90
+#: users.php:105
+msgid "Commit changes"
+msgstr "Zapisz zmiany"
+
+#: add_record.php:101
+#: add_zone_templ_record.php:80
+msgid "The record was successfully added."
+msgstr "Rekord został dodany."
+
+#: add_record.php:110
+msgid "Add record to zone"
+msgstr "Dodaj rekord do strefy"
+
+#: add_record.php:121
+#: add_zone_master.php:95
+#: add_zone_templ_record.php:100
+#: delete_domain.php:58
+#: edit.php:104
+#: edit.php:193
+#: edit.php:300
+#: edit_record.php:68
+#: edit_zone_templ.php:70
+#: edit_zone_templ_record.php:62
+#: list_zones.php:63
+#: search.php:65
+#: search.php:119
+msgid "Type"
+msgstr "Typ"
+
+#: add_record.php:122
+#: add_zone_templ_record.php:101
+#: edit.php:106
+#: edit.php:195
+#: edit_record.php:69
+#: edit_zone_templ.php:72
+#: edit_zone_templ_record.php:63
+#: search.php:120
+msgid "Priority"
+msgstr "Priorytet"
+
+#: add_record.php:123
+#: add_zone_templ_record.php:102
+#: edit.php:105
+#: edit.php:194
+#: edit_record.php:70
+#: edit_zone_templ.php:71
+#: edit_zone_templ_record.php:64
+#: search.php:121
+msgid "Content"
+msgstr "Zawartość"
+
+#: add_record.php:124
+#: add_zone_templ_record.php:103
+#: edit.php:107
+#: edit.php:196
+#: edit_record.php:71
+#: edit_zone_templ.php:73
+#: edit_zone_templ_record.php:65
+#: search.php:122
+msgid "TTL"
+msgstr "TTL"
+
+#: add_record.php:157
+#: add_zone_templ_record.php:146
+#: edit.php:238
+#: edit_zone_templ.php:129
+msgid "Add record"
+msgstr "Dodaj rekord"
+
+#: add_supermaster.php:40
+#: add_supermaster.php:80
+#: index.php:57
+#: inc/header.inc.php:75
+msgid "Add supermaster"
+msgstr "Dodaj supermastera"
+
+#: add_supermaster.php:43
+msgid "You do not have the permission to add a new supermaster."
+msgstr "Nie masz uprawnień, źeby dodać supermastera"
+
+#: add_supermaster.php:48
+#: list_supermasters.php:35
+msgid "IP address of supermaster"
+msgstr "Adres IP supermastera"
+
+#: add_supermaster.php:58
+#: delete_supermaster.php:52
+#: list_supermasters.php:36
+msgid "Hostname in NS record"
+msgstr "Nazwa w rekordzie NS"
+
+#: add_supermaster.php:68
+#: delete_supermaster.php:53
+#: list_supermasters.php:37
+msgid "Account"
+msgstr "Konto"
+
+#: add_user.php:33
+#: users.php:116
+msgid "Add user"
+msgstr "Dodaj uźytkownika"
+
+#: add_user.php:37
+#: edit_user.php:102
+#: users.php:44
+msgid "Username"
+msgstr "Nazwa uźytkownika"
+
+#: add_user.php:41
+#: edit_user.php:106
+#: users.php:45
+msgid "Fullname"
+msgstr "Pełna nazwa"
+
+#: add_user.php:45
+#: edit_user.php:110
+#: inc/auth.inc.php:99
+msgid "Password"
+msgstr "Hasło"
+
+#: add_user.php:49
+#: edit_user.php:114
+#: users.php:47
+msgid "Emailaddress"
+msgstr "Adres e-mail"
+
+#: add_user.php:54
+#: edit_user.php:119
+msgid "Permission template"
+msgstr "Wzorzec uprawnień"
+
+#: add_user.php:69
+#: edit_user.php:135
+#: users.php:49
+msgid "Enabled"
+msgstr "Włączony"
+
+#: add_zone_master.php:63
+#: index.php:51
+#: inc/header.inc.php:69
+msgid "Add master zone"
+msgstr "Dodaj strefę master"
+
+#: add_zone_master.php:71
+#: add_zone_slave.php:64
+msgid "Zone name"
+msgstr "Nazwa strefy"
+
+#: add_zone_master.php:77
+#: add_zone_slave.php:76
+#: delete_domain.php:57
+#: list_zones.php:65
+#: search.php:69
+msgid "Owner"
+msgstr "Właściciel"
+
+#: add_zone_master.php:105
+#: users.php:48
+msgid "Template"
+msgstr "Wzorzec"
+
+#: add_zone_master.php:119
+#: add_zone_slave.php:97
+msgid "Add zone"
+msgstr "Dodaj strefę"
+
+#: add_zone_slave.php:58
+#: index.php:54
+#: inc/header.inc.php:72
+msgid "Add slave zone"
+msgstr "Dodaj strefę slave"
+
+#: add_zone_slave.php:70
+#: edit.php:330
+msgid "IP address of master NS"
+msgstr "IP serwera master NS"
+
+#: add_zone_templ.php:39
+msgid "Add zone template for"
+msgstr "Dodaj wzorzec dla"
+
+#: add_zone_templ.php:51
+#: list_zone_templ.php:58
+msgid "Add zone template"
+msgstr "Dodaj wzorzec strefy"
+
+#: add_zone_templ_record.php:89
+msgid "Add record to zone template"
+msgstr "Dodaj rekord do wzorca strefy"
+
+#: add_zone_templ_record.php:138
+#: edit_zone_templ.php:118
+msgid "The following placeholders can be used in template records"
+msgstr "Moźesz uźyć następujących podstawień"
+
+#: add_zone_templ_record.php:141
+#: edit_zone_templ.php:121
+msgid "substituted with current zone name"
+msgstr "zostanie zamienione na nazwę bieźącej strefy"
+
+#: add_zone_templ_record.php:142
+#: edit_zone_templ.php:122
+msgid "substituted with current date and 2 numbers"
+msgstr "zostanie zamienione na bieźącą datę oraz dwycyfrowy numer"
+
+#: change_password.php:29
+#: change_password.php:47
+#: index.php:59
+#: inc/header.inc.php:77
+msgid "Change password"
+msgstr "Zmień hasło"
+
+#: change_password.php:33
+msgid "Current password"
+msgstr "Aktualne hasło"
+
+#: change_password.php:37
+#: change_password.php:41
+msgid "New password"
+msgstr "Nowe hasło"
+
+#: delete_domain.php:49
+#: list_zones.php:87
+#: search.php:83
+msgid "Delete zone"
+msgstr "Usuń strefę"
+
+#: delete_domain.php:63
+#, php-format
+msgid "You are about to delete a slave zone of which the master nameserver, %s, is a supermaster. Deleting the zone now, will result in temporary removal only. Whenever the supermaster sends a notification for this zone, it will be added again!"
+msgstr "Zamierzasz usunać strefę slave, ktĂłrej serwerem master jest %s, będący jednocześnie supermasterem. Usunięcie tej strefy będzie jedynie tymczasowe. Po otrzymaniu NOTIFY od supermastera, strefa będzie dodana ponownie!"
+
+#: delete_domain.php:67
+#: delete_perm_templ.php:48
+#: delete_record.php:89
+#: delete_supermaster.php:55
+#: delete_zone_templ.php:49
+#: delete_zone_templ_record.php:73
+msgid "Are you sure?"
+msgstr "Jesteś pewien?"
+
+#: delete_domain.php:69
+#: delete_perm_templ.php:49
+#: delete_record.php:90
+#: delete_supermaster.php:56
+#: delete_zone_templ.php:50
+#: delete_zone_templ_record.php:74
+msgid "Yes"
+msgstr "Tak"
+
+#: delete_domain.php:70
+#: delete_record.php:91
+#: delete_supermaster.php:57
+#: delete_zone_templ.php:51
+#: delete_zone_templ_record.php:75
+msgid "No"
+msgstr "Nie"
+
+#: delete_perm_templ.php:42
+msgid "Delete permission template"
+msgstr "Usuń wzorzec uprawnień"
+
+#: delete_record.php:61
+#: delete_zone_templ_record.php:52
+#: edit.php:123
+#: edit_zone_templ.php:82
+#: search.php:135
+msgid "Delete record"
+msgstr "Usuń rekord"
+
+#: delete_record.php:87
+msgid "You are trying to delete a record that is needed for this zone to work."
+msgstr "PrĂłbujesz usunąć rekord,ktĂłry jest niezbędny do poprawnego działania strefy."
+
+#: delete_supermaster.php:44
+#: list_supermasters.php:50
+msgid "Delete supermaster"
+msgstr "Usuń supermastera"
+
+#: delete_user.php:50
+#: users.php:65
+msgid "Delete user"
+msgstr "Usuń uźytkownika"
+
+#: delete_user.php:61
+msgid "You are about to delete a user. This user is owner for a number of zones. Please decide what to do with these zones."
+msgstr "Zamierzasz usunąć uźytkownika.Ten uźytownik jest właścicielem stref. Zdecyduj, co zrobić z tymi strefami."
+
+#: delete_user.php:66
+msgid "Zone"
+msgstr "Strefa"
+
+#: delete_user.php:67
+#: edit.php:261
+msgid "Delete"
+msgstr "Usuń"
+
+#: delete_user.php:68
+msgid "Leave"
+msgstr "Pozostaw"
+
+#: delete_user.php:69
+msgid "Add new owner"
+msgstr "Dodaj właściciela"
+
+#: delete_user.php:70
+msgid "Owner to be added"
+msgstr "Właściel do dodania"
+
+#: delete_user.php:96
+msgid "Really delete this user?"
+msgstr "Napewno usunąć tego uźytkownika?"
+
+#: delete_zone_templ.php:43
+#: edit_zone_templ.php:130
+msgid "Delete zone template"
+msgstr "Usuń wzorzec strefy"
+
+#: edit_perm_templ.php:45
+#: users.php:112
+msgid "Edit permission template"
+msgstr "Edytuj wzorzec uprawnień"
+
+#: edit.php:89
+#: search.php:78
+msgid "Edit zone"
+msgstr "Edytuj strefę"
+
+#: edit.php:97
+msgid "This zone does not have any records. Weird."
+msgstr "Ta strefa nie ma źadnych rekordĂłw. Dziwne."
+
+#: edit.php:121
+#: edit_zone_templ.php:80
+#: search.php:130
+msgid "Edit record"
+msgstr "Edytuj rekord"
+
+#: edit.php:173
+msgid "Edit comment"
+msgstr "Edytuj komentarz"
+
+#: edit.php:180
+#: edit_record.php:109
+#: edit_user.php:141
+#: edit_zone_templ.php:126
+#: edit_zone_templ_record.php:91
+#: users.php:106
+msgid "Reset changes"
+msgstr "Resetuj zmiany"
+
+#: edit.php:246
+msgid "Owner of zone"
+msgstr "Właściciel strefy"
+
+#: edit.php:252
+msgid "No owner set for this zone."
+msgstr "Ta strefa nie ma właściciela"
+
+#: edit.php:294
+msgid "Add"
+msgstr "Dodaj"
+
+#: edit.php:319
+#: edit.php:341
+msgid "Change"
+msgstr "Zmień"
+
+#: edit_record.php:57
+msgid "Edit record in zone"
+msgstr "Edytuj rekord w strefie"
+
+#: edit_user.php:97
+#: users.php:64
+msgid "Edit user"
+msgstr "Edytuj uźytkownika"
+
+#: edit_user.php:146
+#, php-format
+msgid "This user has been assigned the permission template \"%s\"."
+msgstr "Temu uźytkownikowi przypisano wzorzec uprawnień \"%s\"."
+
+#: edit_user.php:148
+msgid "The description for this template is"
+msgstr "Opis tego wzorca to"
+
+#: edit_user.php:150
+msgid "Based on this template, this user has the following permissions"
+msgstr "W oparciu o ten wzorzec, ten uźytkownik ma następujące uprawnienia"
+
+#: edit_zone_templ.php:55
+msgid "Edit zone template"
+msgstr "Edytuj wzorzec strefy"
+
+#: edit_zone_templ.php:63
+msgid "This template zone does not have any records yet."
+msgstr "Ten wzorzec strefy nie posiada jeszcze źadnych rekordĂłw."
+
+#: edit_zone_templ_record.php:51
+msgid "Edit record in zone template"
+msgstr "Edytuj rekord we wzorcu strefy."
+
+#: index.php:26
+msgid "Welcome"
+msgstr "Witaj"
+
+#: index.php:37
+#: inc/header.inc.php:55
+msgid "Index"
+msgstr "Indeks"
+
+#: index.php:39
+#: search.php:31
+#: inc/header.inc.php:57
+msgid "Search zones and records"
+msgstr "Szukaj stref i rekordĂłw"
+
+#: index.php:42
+#: list_zones.php:38
+#: inc/header.inc.php:60
+msgid "List zones"
+msgstr "Lista stref"
+
+#: index.php:45
+#: inc/header.inc.php:63
+msgid "List zone templates"
+msgstr "Lista wzorcĂłw stref"
+
+#: index.php:48
+#: list_supermasters.php:31
+#: inc/header.inc.php:66
+msgid "List supermasters"
+msgstr "Lista supermasterĂłw"
+
+#: index.php:60
+#: users.php:39
+#: inc/header.inc.php:78
+msgid "User administration"
+msgstr "Zarządzanie uźytkownikami"
+
+#: index.php:61
+#: inc/header.inc.php:79
+msgid "Logout"
+msgstr "Wyloguj"
+
+#: list_perm_templ.php:31
+msgid "Permission templates"
+msgstr "Wzorce uprawnień"
+
+#: list_perm_templ.php:47
+#: list_zone_templ.php:45
+msgid "Edit template"
+msgstr "Edytuj wzorzec"
+
+#: list_perm_templ.php:48
+#: list_zone_templ.php:46
+msgid "Delete template"
+msgstr "Skasuj wzorzec"
+
+#: list_supermasters.php:43
+#: list_zones.php:48
+msgid "There are no zones to show in this listing."
+msgstr "Brak stref do wyświetlenia."
+
+#: list_zones.php:41
+msgid "You do not have the permission to see any zones."
+msgstr "Nie masz uprawnień do wyświetlenia jakichkolwiek stref."
+
+#: list_zones.php:64
+msgid "Records"
+msgstr "Rekordy"
+
+#: list_zones.php:66
+msgid "Serial"
+msgstr "Serial"
+
+#: list_zones.php:82
+msgid "View zone"
+msgstr "Zobacz strefę"
+
+#: list_zone_templ.php:32
+msgid "Zone templates for"
+msgstr "Wzorce stref dla"
+
+#: search.php:60
+msgid "Zones found"
+msgstr "Znalezione strefy"
+
+#: search.php:66
+msgid "Master"
+msgstr "Master"
+
+#: search.php:114
+msgid "Records found"
+msgstr "Znalezione rekordy"
+
+#: search.php:154
+msgid "Query"
+msgstr "Zapytanie"
+
+#: search.php:160
+msgid "Search"
+msgstr "Szukaj"
+
+#: search.php:165
+msgid "Enter a hostname or IP address. SQL LIKE syntax supported: an underscore (_) in pattern matches any single character, a percent sign (%) matches any string of zero or more characters."
+msgstr "Wpisz nazwę hosta lub adres IP. Składnia podobna do SQL: podkreślenie (_) we wzorcu zastępuje dowolny, pojedynczy znak, procent (%) zastępuje dowolny ciąg znakĂłw, dowolnej długości."
+
+#: inc/auth.inc.php:41
+msgid "Session expired, please login again."
+msgstr "Sesja wygasła, zaloguj się ponownie."
+
+#: inc/auth.inc.php:67
+msgid "Authentication failed!"
+msgstr "Logowanie nieudane!"
+
+#: inc/auth.inc.php:89
+msgid "Log in"
+msgstr "Login"
+
+#: inc/auth.inc.php:105
+msgid "Go"
+msgstr "Wykonaj"
+
+#: inc/auth.inc.php:129
+msgid "You have logged out."
+msgstr "Jesteś wylogowany."
+
+#: inc/error.inc.php:27
+msgid "You do not have the permission to perform searches."
+msgstr "Nie masz uprawnień do wyszukiwania,"
+
+#: inc/error.inc.php:28
+msgid "You do not have the permission to add a record to this zone."
+msgstr "Nie masz uprawnień do dodania rekordu w tej strefie."
+
+#: inc/error.inc.php:29
+msgid "You do not have the permission to edit this record."
+msgstr "Nie masz uprawnień do edycji tego rekordu."
+
+#: inc/error.inc.php:30
+msgid "You do not have the permission to view this record."
+msgstr "Nie masz uprawnień do wyświetlenia tego rekordu."
+
+#: inc/error.inc.php:31
+msgid "You do not have the permission to delete this record."
+msgstr "Nie masz uprawnień do usunięcia tego rekordu."
+
+#: inc/error.inc.php:32
+msgid "You do not have the permission to add a master zone."
+msgstr "Nie masz uprawnień do dodania strefy master."
+
+#: inc/error.inc.php:33
+msgid "You do not have the permission to add a slave zone."
+msgstr "Nie masz uprawnień do dodania strefy slave."
+
+#: inc/error.inc.php:34
+msgid "You do not have the permission to delete a zone."
+msgstr "Nie masz uprawnień do usunięcia strefy."
+
+#: inc/error.inc.php:35
+msgid "You do not have the permission to view this comment."
+msgstr "Nie masz uprawnień do wyświetlenia tego komentarza."
+
+#: inc/error.inc.php:36
+msgid "You do not have the permission to edit this comment."
+msgstr "Nie masz uprawnień do edycji tego komentarza."
+
+#: inc/error.inc.php:37
+msgid "You do not have the permission to delete a supermaster."
+msgstr "Nie masz uprawnień do usunięcia supermastera"
+
+#: inc/error.inc.php:38
+msgid "You do not have the permission to view this zone."
+msgstr "Nie masz uprawnień do wyświetlenia tej strefy."
+
+#: inc/error.inc.php:39
+msgid "You do not have the permission to edit this user."
+msgstr "Nie masz uprawnień do edycji tego uźytkownika."
+
+#: inc/error.inc.php:40
+msgid "You do not have the permission to edit permission templates."
+msgstr "Nie masz uprawnień do edycji wzorcĂłw uprawnień."
+
+#: inc/error.inc.php:41
+msgid "You do not have the permission to delete permission templates."
+msgstr "Nie masz uprawnień do usunięcia wzorcĂłw uprawnień."
+
+#: inc/error.inc.php:42
+msgid "You do not have the permission to add a new user."
+msgstr "Nie masz uprawnień do dodawania uźytkownikĂłw."
+
+#: inc/error.inc.php:43
+msgid "You do not have the permission to delete this user."
+msgstr "Nie masz uprawnień do usunięcia tego uźytkownika."
+
+#: inc/error.inc.php:44
+msgid "You do not have the permission to edit zone templates."
+msgstr "Nie masz uprawnień do edycji wzorcĂłw stref."
+
+#: inc/error.inc.php:45
+msgid "You do not have the permission to delete zone templates."
+msgstr "Nie masz uprawnień do usuwania wzorcĂłw stref."
+
+#: inc/error.inc.php:46
+msgid "You do not have the permission to add a zone templates."
+msgstr "Nie masz uprawnień do dodawania wzorcĂłw stref."
+
+#: inc/error.inc.php:49
+msgid "This is an invalid zone name."
+msgstr "Taka nazwa strefy jest nieprawidłowa."
+
+#: inc/error.inc.php:50
+msgid "There is already a supermaster with this IP address."
+msgstr "Supermaster z takim IP juź istnieje."
+
+#: inc/error.inc.php:51
+msgid "There is already a zone with this name."
+msgstr "Taka strefa juź istnieje."
+
+#: inc/error.inc.php:54
+msgid "Username exist already, please choose another one."
+msgstr "Taka nazwa uźytkownika juź istnieje, wybierz inną."
+
+#: inc/error.inc.php:55
+msgid "User does not exist."
+msgstr "Uźytkownik nie istnieje."
+
+#: inc/error.inc.php:56
+msgid "You did not enter the correct current password."
+msgstr "Aktualne hasło jakie wpisałeś jest nieprawidłowe."
+
+#: inc/error.inc.php:57
+msgid "The two new password fields do not match."
+msgstr "Wpisane hasła nie są identyczne."
+
+#: inc/error.inc.php:58
+msgid "This template is assigned to at least one user."
+msgstr "Ten wzorzec jest przypisany do co najmniej jednego uźytkownika."
+
+#: inc/error.inc.php:61
+msgid "Invalid or unexpected input given."
+msgstr "Nieprawidłowy lub nieprzewidziany wybĂłr."
+
+#: inc/error.inc.php:62
+#, php-format
+msgid "Invalid argument(s) given to function %s"
+msgstr "Niewłaściwy(e) argument(y) dla funkcji %s"
+
+#: inc/error.inc.php:63
+#, php-format
+msgid "Invalid argument(s) given to function %s %s"
+msgstr "Niewłaściwy(e) argument(y) dla funkcji %s %s"
+
+#: inc/error.inc.php:64
+msgid "Unknown error."
+msgstr "Nieokreślony błąd."
+
+#: inc/error.inc.php:65
+msgid "Enter a valid email address."
+msgstr "Wpisz poprawny adres e-mail."
+
+#: inc/error.inc.php:66
+msgid "There is no zone with this ID."
+msgstr "Nie ma strefy o takim ID."
+
+#: inc/error.inc.php:67
+msgid "The install/ directory exists, you must remove it first before proceeding."
+msgstr "Katalog instalacyjny istnieje, musisz go usunąć przed wykonaniem następnego kroku."
+
+#: inc/error.inc.php:70
+msgid "No database name has been set in config.inc.php."
+msgstr "Brak nazwy bazy danych w pliku config.inc.php."
+
+#: inc/error.inc.php:71
+msgid "No database host has been set in config.inc.php."
+msgstr "Brak serwera baz danych w pliku config.inc.php."
+
+#: inc/error.inc.php:72
+msgid "No database username has been set in config.inc.php."
+msgstr "Brak uźytkownika baz danych w pliku config.inc.php."
+
+#: inc/error.inc.php:73
+msgid "No database password has been set in config.inc.php."
+msgstr "Brak hasła do bazy danych w pliku config.inc.php."
+
+#: inc/error.inc.php:74
+msgid "No or unknown database type has been set in config.inc.php."
+msgstr "Brak lub nieznany typ bazy w pliku config.inc.php."
+
+#: inc/error.inc.php:77
+msgid "Your content field doesnt have a legit value."
+msgstr "Pole zawartość nie posiada wymaganej zawartości."
+
+#: inc/error.inc.php:78
+msgid "Invalid hostname."
+msgstr "Nieprawidłowa nazwa hosta."
+
+#: inc/error.inc.php:79
+msgid "You have invalid characters in your hostname."
+msgstr "W nazwie hosta występują nieprawidłowe znaki."
+
+#: inc/error.inc.php:80
+msgid "A hostname can not start or end with a dash."
+msgstr "Nazwa hosta nie moźe się zaczynać lub kończyć myślnikiem."
+
+#: inc/error.inc.php:81
+msgid "Given hostname or one of the labels is too short or too long."
+msgstr "Wpisana nazwa hosta lub etykieta jest zbyt krĂłtka, lub zbyt długa."
+
+#: inc/error.inc.php:82
+msgid "Given hostname has too many slashes."
+msgstr "Wpisana nazwa hosta zawiera zbyt duźo ukośnikĂłw."
+
+#: inc/error.inc.php:83
+msgid "Unknown record type."
+msgstr "Nieznany typ rekordu."
+
+#: inc/error.inc.php:84
+msgid "This is not a valid IPv4 or IPv6 address."
+msgstr "To nie jest poprawny adres IPv4 czy IPv6."
+
+#: inc/error.inc.php:85
+msgid "This is not a valid IPv6 address."
+msgstr "To nie jest poprawny adres IPv6."
+
+#: inc/error.inc.php:86
+msgid "This is not a valid IPv4 address."
+msgstr "To nie jest poprawny adres IPv4."
+
+#: inc/error.inc.php:87
+msgid "This is not a valid CNAME. Did you assign an MX or NS record to the record?"
+msgstr "To nie jest poprawny rekord CNAME. Czyźbyś przypisał mu rekord MX albo NS?"
+
+#: inc/error.inc.php:88
+msgid "This is not a valid record. There is already exists a CNAME with this name."
+msgstr "To nie jest poprawny rekord. Rekord CNAME o takiej zawartości juź istnieje."
+
+#: inc/error.inc.php:89
+msgid "This is not a valid CNAME. There is already exists an A, AAAA or CNAME with this name."
+msgstr "To nie jest poprawny rekord CNAME. Istnieje juź rekord A, AAAA, lub CNAME o takiej nazwie."
+
+#: inc/error.inc.php:90
+msgid "You can not point a NS or MX record to a CNAME record. Remove or rame the CNAME record first, or take another name."
+msgstr "Rekord NS lub MX nie moźe wskazywać na rekord CNAME. Usuń lub zmień nazwę rekordu CNAME, albo wybierz inną nazwę."
+
+#: inc/error.inc.php:91
+msgid "NS records must be a hostnames."
+msgstr "Rekordy NS muszą zawierać nazwę hosta."
+
+#: inc/error.inc.php:92
+msgid "A prio field should be numeric."
+msgstr "Pole priorytetu musi mieć wartość numeryczną."
+
+#: inc/error.inc.php:93
+msgid "Invalid value for name field of SOA record. It should be the name of the zone."
+msgstr "Nieprawidłowa zawartość pola name w rekordzie SOA. To powinna być nazwa hosta."
+
+#: inc/error.inc.php:94
+msgid "You have an error in the MNAME field of the SOA record."
+msgstr "Masz błąd w polu MNAME rekordu SOA."
+
+#: inc/error.inc.php:95
+msgid "Invalid value for content field of HINFO record."
+msgstr "Nieprawidłowa zawartość pola w rekordzie HINFO."
+
+#: inc/error.inc.php:96
+msgid "The hostname is too long."
+msgstr "Zbyt długa nazwa hosta."
+
+#: inc/error.inc.php:97
+msgid "You are using an invalid top level domain."
+msgstr "Uźywasz niewłaściwej domeny nadrzędnej."
+
+#: inc/error.inc.php:98
+msgid "Invalid value for TTL field. It should be numeric."
+msgstr "Nieprawidłowa zawartość pola TTL. Dozwolona tylko wartość numeryczna."
+
+#: inc/error.inc.php:99
+msgid "Invalid value for prio field. It should be numeric."
+msgstr "Nieprawidłowa zawartość pola priorytetu. Dozwolona tylko wartość numeryczna."
+
+#: inc/error.inc.php:100
+msgid "Invalid value for name field of SRV record."
+msgstr "Nieprawidłowa zawartość pola name rekordu SRV."
+
+#: inc/error.inc.php:101
+msgid "Invalid value for the priority field of the SRV record."
+msgstr "Nieprawidłowa zawartość pola priorytet rekordu SRV."
+
+#: inc/error.inc.php:102
+msgid "Invalid value for the weight field of the SRV record."
+msgstr "Nieprawidłowa zawartość pola waga rekordu SRV."
+
+#: inc/error.inc.php:103
+msgid "Invalid SRV target."
+msgstr "Nieprawidłowy odnośnik SRV."
+
+#: inc/error.inc.php:104
+msgid "Invalid characters have been used in this record."
+msgstr "W tym rekordzie uźyto nieprawidłowych znakĂłw."
+
+#: inc/error.inc.php:107
+msgid "Zone has been added successfully."
+msgstr "Strefa została dodana."
+
+#: inc/error.inc.php:108
+msgid "Zone has been deleted successfully."
+msgstr "Strefa została usunięta."
+
+#: inc/error.inc.php:109
+msgid "The user has been updated successfully."
+msgstr "Strefa została zaktualizowana."
+
+#: inc/error.inc.php:110
+msgid "The user has been created successfully."
+msgstr "Uźytkownik został dodany."
+
+#: inc/error.inc.php:111
+msgid "The user has been deleted successfully."
+msgstr "Uźytkownik został usunięty."
+
+#: inc/error.inc.php:112
+msgid "The record has been updated successfully."
+msgstr "Rekord zostałk zaktualizowany."
+
+#: inc/error.inc.php:113
+msgid "The record has been deleted successfully."
+msgstr "Rekord został usunięty."
+
+#: inc/error.inc.php:114
+msgid "The comment has been updated successfully."
+msgstr "Komentarz został zaktualizowany."
+
+#: inc/error.inc.php:115
+msgid "The supermaster has been deleted successfully."
+msgstr "Supermaster został usunięty."
+
+#: inc/error.inc.php:116
+msgid "The supermaster has been added successfully."
+msgstr "Suoermaster został dodany."
+
+#: inc/error.inc.php:117
+msgid "The permission template has been deleted successfully."
+msgstr "Wzorzec uprawnień został usunięty."
+
+#: inc/error.inc.php:118
+msgid "Zone template has been added successfully."
+msgstr "Wzorzec strefy został dodany."
+
+#: inc/error.inc.php:119
+msgid "Zone template has been updated successfully."
+msgstr "Wzorzec strefy został zaktualizowany."
+
+#: inc/error.inc.php:120
+msgid "Zone template has been deleted successfully."
+msgstr "Wzorzec strefy został usunięty."
+
+#: inc/record.inc.php:331
+msgid "You are trying to delete the SOA record. You are not allowed to remove it, unless you remove the entire zone."
+msgstr "PrĂłbujesz usunąć rekord SOA. Nie powinieneś tego robić, chyba, źe zamierzasz usunąć całą strefę."
+
+#: inc/record.inc.php:692
+msgid "Function returned an error (multiple zones matching this zone ID)."
+msgstr "Funkcja zwrĂłciła błąd (wiele stref pasuje do tego ID)."
+
+#: inc/toolkit.inc.php:28
+msgid "You have to create a config.inc.php!"
+msgstr "Musisz utworzyć plik config.inc.php!"
+
+#: inc/toolkit.inc.php:148
+msgid "Show page"
+msgstr "Pokaź stronę"
+
+#: inc/toolkit.inc.php:167
+msgid "Show zones beginning with"
+msgstr "Pokasz strony zaczynające się na"
+
+#: inc/toolkit.inc.php:233
+msgid "Something has been successfully performed. What exactly, however, will remain a mystery."
+msgstr "Coś się udało wykonać. Ale co, dalibĂłg, nie mam pojęcia."
+
+#: inc/toolkit.inc.php:245
+msgid "Success!"
+msgstr "Sukces!"
+
+#: inc/toolkit.inc.php:256
+msgid "Successful!"
+msgstr "Udane!"
+
+#: inc/toolkit.inc.php:262
+msgid "back"
+msgstr "wrĂłć"
+
+#: inc/toolkit.inc.php:301
+msgid "Inactive"
+msgstr "Niektywny"
+
+#: inc/toolkit.inc.php:305
+msgid "Active"
+msgstr "Aktywny"
+
+#: inc/users.inc.php:365
+msgid "Password has been changed, please login."
+msgstr "Hasło zostało zmienione, zaloguj się."
+
+# The following is a list of strings that are not hard-code in the PHP
+# files, but which are listed in the poweradmin database. Because of
+# this, tools like xgettext will not notice these strings.
+#
+# See also <https://www.poweradmin.org/wiki/TranslationContribution>.
+#
+msgid "User is allowed to add new master zones."
+msgstr "Uźytkownik moźe dodawać nowe strefy master."
+
+msgid "User is allowed to add new slave zones."
+msgstr "Uźytkownik moźe dodawać nowe strefy slave."
+
+msgid "User is allowed to see the content and meta data of zones he owns."
+msgstr "Uźytkownik moźe zobaczyć zawartość i metadane stref, ktĂłrych jest właścicielem."
+
+msgid "User is allowed to edit the content of zones he owns."
+msgstr "Uźytkownik moźe edytować zawartosć stref, ktĂłrych jest właścicielem."
+
+msgid "User is allowed to edit the meta data of zones he owns."
+msgstr "Uźytkownik moźe edytować metadane stref, ktĂłrych jest właścicielem."
+
+msgid "User is allowed to see the content and meta data of zones he does not own."
+msgstr "Uźytkownik moźe zobaczyć zawartość i metadane stref, ktĂłrych nie jest właścicielem."
+
+msgid "User is allowed to edit the content of zones he does not own."
+msgstr "Uźytkownik moźe edytować zawartość stref nie będących jego własnością."
+
+msgid "User is allowed to edit the meta data of zones he does not own."
+msgstr "Uźytkownik moźe edytować metadane stref nie będących jego własnością."
+
+msgid "User is allowed to perform searches."
+msgstr "Uźytkownik moźe dokonywać wyszukiwania."
+
+msgid "User is allowed to view supermasters."
+msgstr "Uźytkownik moźe wyświetlić supermastery."
+
+msgid "User is allowed to add new supermasters."
+msgstr "Uźytkownik moźe dodawać supermastery."
+
+msgid "User is allowed to edit new supermasters."
+msgstr "Uźytkownik moźe edytować supermastery."
+
+msgid "User has full access. God-like. Redeemer."
+msgstr "Uźytkownik ma władzę absolutną."
+
+msgid "User is allowed to see other users and their details."
+msgstr "Uźytkownik moźe wyświetlać innych uźytkownikĂłw i ich dane."
+
+msgid "User is allowed to add new users."
+msgstr "Uźytkownik moźe dodawać nowych uźytkownikĂłw."
+
+msgid "User is allowed to edit their own details."
+msgstr "Uźytkownik moźe edytować swoje dane."
+
+msgid "User is allowed to edit other users."
+msgstr "Uźytkownik moźe edytować innych uźytkownikĂłw."
+
+msgid "User is allowed to edit the password of other users."
+msgstr "Uźytkownik moźe zmieniać hasła innych uźytkownikĂłw."
+
+msgid "User is allowed to change the permission template that is assigned to a user."
+msgstr "Uźytkownik moźe zmienić przypisany sobie wzorzec uprawnień."
+
+msgid "User is allowed to add new permission templates."
+msgstr "Uźytkownik moźe dodawać nowe wzorce uprawnień."
+
+msgid "User is allowed to edit existing permission templates."
+msgstr "Uźytkownik moźe edytować istniejące wzorce uprawnień."
+

BIN
devadmin/html/poweradmin-2.1.7/locale/ru_RU/LC_MESSAGES/messages.mo


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff