[feladat @ 185]
authorrejo
Wed, 26 Mar 2008 09:06:58 +0000
changeset 85 1687c1b107fa
parent 84 c8ebeadd438e
child 86 0205771bf84c
[feladat @ 185] Added functionality to add a new permission template. It was lacking support for that important feature until now. :)
add_perm_templ.php
edit_perm_templ.php
inc/users.inc.php
list_perm_templ.php
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/add_perm_templ.php	Wed Mar 26 09:06:58 2008 +0000
@@ -0,0 +1,69 @@
+<?php
+
+/*  PowerAdmin, a friendly web-based admin tool for PowerDNS.
+ *  See <https://rejo.zenger.nl/poweradmin> for more details.
+ *
+ *  Copyright 2007, 2008  Rejo Zenger <rejo@zenger.nl>
+ *
+ *  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");
+
+if (!verify_permission(templ_perm_edit)) {
+	error(ERR_PERM_EDIT_PERM_TEMPL);
+} else {
+
+	if (isset($_POST['commit'])) {
+		add_perm_templ($_POST);	
+	}
+
+	$perms_avail = get_permissions_by_template_id();
+
+	echo "    <h2>" . _('Add permission template') . "</h2>\n"; 
+        echo "    <form method=\"post\">\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";
+
+	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");
+?>
--- a/edit_perm_templ.php	Wed Mar 26 08:32:24 2008 +0000
+++ b/edit_perm_templ.php	Wed Mar 26 09:06:58 2008 +0000
@@ -85,7 +85,6 @@
 	echo "     </table>\n";
 	echo "     <input type=\"submit\" class=\"button\" name=\"commit\" value=\"" . _('Commit changes') . "\">\n";
 	echo "     </form>\n";
-
 }
 
 include_once("inc/footer.inc.php");
--- a/inc/users.inc.php	Wed Mar 26 08:32:24 2008 +0000
+++ b/inc/users.inc.php	Wed Mar 26 09:06:58 2008 +0000
@@ -568,6 +568,34 @@
 }
 
 
+// Add a permission template.
+
+function add_perm_templ($details) {
+	global $db;
+
+	// Fix permission template name and description first. 
+
+	$query = "INSERT INTO perm_templ 
+			VALUES (
+				'', " 
+				. $db->quote($details['templ_name']) . ", " 
+				. $db->quote($details['templ_descr']) . ")";
+
+	$result = $db->query($query);
+	if (PEAR::isError($response)) { error($response->getMessage()); return false; }
+
+	$perm_templ_id = $db->lastInsertId('perm_templ', 'id');
+
+	foreach ($details['perm_id'] AS $perm_id) {
+		$r_insert_values[] = "(''," . $db->quote($perm_templ_id) . "," . $db->quote($perm_id) . ")";
+	}
+	$query = "INSERT INTO perm_templ_items VALUES " . implode(',', $r_insert_values) ;
+	$result = $db->query($query);
+	if (pear::iserror($response)) { error($response->getmessage()); return false; }
+
+	return true;
+}
+
 // Update all details of a permission template.
 
 function update_perm_templ_details($details) {
--- a/list_perm_templ.php	Wed Mar 26 08:32:24 2008 +0000
+++ b/list_perm_templ.php	Wed Mar 26 09:06:58 2008 +0000
@@ -56,6 +56,7 @@
 	}
 
 	echo "     </table>\n";
+        echo "     <p>" . _('Add') . " <a href=\"add_perm_templ.php\">" . _('permission template') . "</a>.</p>\n";
 }
 
 include_once("inc/footer.inc.php");