Skip to content

Commit

Permalink
poweradmin#359 - implemented mass zone registration
Browse files Browse the repository at this point in the history
  • Loading branch information
Edmondas Girkantas committed Jul 16, 2011
1 parent 389988a commit 35aed9a
Show file tree
Hide file tree
Showing 2 changed files with 152 additions and 0 deletions.
149 changes: 149 additions & 0 deletions bulk_registration.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
<?php

/* Poweradmin, a friendly web-based admin tool for PowerDNS.
* See <https://www.poweradmin.org> for more details.
*
* Copyright 2007-2010 Rejo Zenger <[email protected]>
* Copyright 2010-2011 Poweradmin Development Team <http://www.poweradmin.org/credits>
*
* 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("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 = split("\r\n", $_POST['domains']);
foreach ($domains as $key => $domain) {
# echo "<br>$key - $domain END";
$domains[$key] = trim($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" ;

if (isset($_POST['submit']) && $zone_master_add == "1" ) {
$error = false;
foreach ($domains as $domain) {
if (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("NATIVE", "MASTER");
$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 domaine 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");
?>
3 changes: 3 additions & 0 deletions inc/header.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,9 @@
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";
}
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";
Expand Down

0 comments on commit 35aed9a

Please sign in to comment.