Add restore default permissions to the permissions page.

This commit is contained in:
Mark Crane
2013-01-23 15:49:02 +00:00
parent 6e7b056d63
commit 9d5d4d01eb
7 changed files with 150 additions and 7 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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 <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2012
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
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;
?>

View File

@@ -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 <markjcrane@fusionpbx.com>
Copyright (C) 2013
All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
//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);
}
}
}
}
}
}
}
}