瀏覽代碼

Add restore default permissions to the permissions page.

Mark Crane 12 年之前
父節點
當前提交
462d0458ee

+ 1 - 1
core/users/app_config.php

@@ -48,7 +48,7 @@
 		$apps[$x]['menu'][3]['uuid'] = '3b4acc6d-827b-f537-bf21-0093d94ffec7';
 		$apps[$x]['menu'][3]['parent_uuid'] = '594d99c5-6128-9c88-ca35-4b33392cec0f';
 		$apps[$x]['menu'][3]['category'] = 'internal';
-		$apps[$x]['menu'][3]['path'] = '/core/users/grouplist.php';
+		$apps[$x]['menu'][3]['path'] = '/core/users/groups.php';
 		$apps[$x]['menu'][3]['groups'][] = 'superadmin';
 
 	//permission details

+ 5 - 2
core/users/group_permissions.php

@@ -196,9 +196,12 @@ require_once "includes/paging.php";
 
 	echo "<table width='100%' border='0'>\n";
 	echo "<tr>\n";
-	echo "<td width='50%' align=\"left\" nowrap=\"nowrap\"><b>Group Permission List for $group_name</b></td>\n";
+	echo "<td width='50%' align=\"left\" nowrap=\"nowrap\"><b>Group Permissions for $group_name</b></td>\n";
 	echo "<td width='50%' align=\"right\">\n";
-	echo "	<input type='button' class='btn' name='' alt='back' onclick=\"window.location='grouplist.php'\" value='Back'> ";
+	if (permission_exists('group_edit')) {
+		echo "	<input type='button' class='btn' alt='Restore Default Permissions' onclick=\"window.location='permissions_default.php'\" value='Restore Default'>";
+	}
+	echo "	<input type='button' class='btn' name='' alt='back' onclick=\"window.location='groups.php'\" value='Back'> ";
 	echo "</td>\n";
 	echo "</tr>\n";
 	echo "<tr>\n";

+ 2 - 2
core/users/groupadd.php

@@ -66,7 +66,7 @@ if (strlen($group_name) > 0) {
 
 	//redirect the user
 		require_once "includes/header.php";
-		echo "<meta http-equiv=\"refresh\" content=\"2;url=grouplist.php\">\n";
+		echo "<meta http-equiv=\"refresh\" content=\"2;url=groups.php\">\n";
 		echo "<div align='center'>\n";
 		echo "Group Added\n";
 		echo "</div>\n";
@@ -87,7 +87,7 @@ if (strlen($group_name) > 0) {
 	echo "			Please choose a group name. ";
 	echo "		</td>\n";
 	echo "		<td align='right'>\n";
-	echo "			<input type='button' class='btn' name='' alt='back' onclick=\"window.location='grouplist.php'\" value='Back'> ";
+	echo "			<input type='button' class='btn' name='' alt='back' onclick=\"window.location='groups.php'\" value='Back'> ";
 	echo "		</td>\n";
 	echo "	</tr>\n";
 	echo "</table>\n";

+ 1 - 1
core/users/groupdelete.php

@@ -51,6 +51,6 @@ else {
 	}
 
 //redirect the user
-	header("Location: grouplist.php");
+	header("Location: groups.php");
 
 ?>

+ 1 - 1
core/users/groupmembers.php

@@ -74,7 +74,7 @@ else {
 	echo "			<span  class=\"\" height='50'>Member list for <b>$group_name</b></span>";
 	echo "		</td>\n";
 	echo "		<td align='right' nowrap='nowrap'>\n";
-	echo "			<input type='button' class='btn' name='' alt='back' onclick=\"window.location='grouplist.php'\" value='Back'>";
+	echo "			<input type='button' class='btn' name='' alt='back' onclick=\"window.location='groups.php'\" value='Back'>";
 	echo "			&nbsp;&nbsp;&nbsp;\n";
 	echo "		</td>\n";
 	echo "	</tr>\n";

+ 56 - 0
core/users/permissions_default.php

@@ -0,0 +1,56 @@
+<?php
+/*
+	FusionPBX
+	Version: MPL 1.1
+
+	The contents of this file are subject to the Mozilla Public License Version
+	1.1 (the "License"); you may not use this file except in compliance with
+	the License. You may obtain a copy of the License at
+	http://www.mozilla.org/MPL/
+
+	Software distributed under the License is distributed on an "AS IS" basis,
+	WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+	for the specific language governing rights and limitations under the
+	License.
+
+	The Original Code is FusionPBX
+
+	The Initial Developer of the Original Code is
+	Mark J Crane <[email protected]>
+	Portions created by the Initial Developer are Copyright (C) 2008-2012
+	the Initial Developer. All Rights Reserved.
+
+	Contributor(s):
+	Mark J Crane <[email protected]>
+*/
+include "root.php";
+require_once "includes/require.php";
+require_once "includes/checkauth.php";
+if (permission_exists('menu_restore')) {
+	//access granted
+}
+else {
+	echo "access denied";
+	return;
+}
+
+//get the http value and set as a php variable
+	$menu_uuid = check_str($_REQUEST["menu_uuid"]);
+	$menu_language = check_str($_REQUEST["menu_language"]);
+
+//menu restore default
+	require_once "resources/classes/permission.php";
+	$menu = new menu;
+	$menu->db = $db;
+	$menu->restore();
+
+//show a message to the user
+	require_once "includes/header.php";
+	echo "<meta http-equiv=\"refresh\" content=\"2;url=/core/menu/menu_edit.php?id=$menu_uuid\">\n";
+	echo "<div align='center'>\n";
+	echo "Restore Complete\n";
+	echo "</div>\n";
+	require_once "includes/footer.php";
+	return;
+
+?>

+ 84 - 0
core/users/resources/classes/permission.php

@@ -0,0 +1,84 @@
+<?php
+/*
+	FusionPBX
+	Version: MPL 1.1
+
+	The contents of this file are subject to the Mozilla Public License Version
+	1.1 (the "License"); you may not use this file except in compliance with
+	the License. You may obtain a copy of the License at
+	http://www.mozilla.org/MPL/
+
+	Software distributed under the License is distributed on an "AS IS" basis,
+	WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+	for the specific language governing rights and limitations under the
+	License.
+
+	The Original Code is FusionPBX
+
+	The Initial Developer of the Original Code is
+	Mark J Crane <[email protected]>
+	Copyright (C) 2013
+	All Rights Reserved.
+
+	Contributor(s):
+	Mark J Crane <[email protected]>
+*/
+
+//define the permission class
+	class permission {
+
+		//restore the permissions
+			function restore() {
+				//set the variables
+					$db = $this->db;
+
+				//get the $apps array from the installed apps from the core and mod directories
+					$config_list = glob($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/*/*/app_config.php");
+					$x=0;
+					foreach ($config_list as &$config_path) {
+						include($config_path);
+						$x++;
+					}
+
+				//restore default permissions
+					foreach($apps as $row) {
+						foreach ($row['permissions'] as $permission) {
+							//set the variables
+							if ($permission['groups']) {
+								foreach ($permission['groups'] as $group) {
+									//if the item uuid is not currently in the db then add it
+									$sql = "select * from v_group_permissions ";
+									$sql .= "where permission_name = '".$permission['name']."' ";
+									$sql .= "and domain_uuid = '".$_SESSION['domain_uuid']."' ";
+									$sql .= "and group_name = '$group' ";
+									$prep_statement = $db->prepare(check_sql($sql));
+									if ($prep_statement) {
+										$prep_statement->execute();
+										$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
+										unset ($prep_statement);
+										if (count($result) == 0) {
+											//insert the default permissions into the database
+											$sql = "insert into v_group_permissions ";
+											$sql .= "(";
+											$sql .= "group_permission_uuid, ";
+											$sql .= "domain_uuid, ";
+											$sql .= "permission_name, ";
+											$sql .= "group_name ";
+											$sql .= ") ";
+											$sql .= "values ";
+											$sql .= "(";
+											$sql .= "'".uuid()."', ";
+											$sql .= "'".$_SESSION["domain_uuid"]."', ";
+											$sql .= "'".$permission['name']."', ";
+											$sql .= "'".$group."' ";
+											$sql .= ");";
+											$db->exec(check_sql($sql));
+											unset($sql);
+										}
+									}
+								}
+							}
+						}
+					}
+			}
+	}