From 9d5d4d01eb3e01674fa3469aa82b27e583479c79 Mon Sep 17 00:00:00 2001 From: Mark Crane Date: Wed, 23 Jan 2013 15:49:02 +0000 Subject: [PATCH] Add restore default permissions to the permissions page. --- core/users/app_config.php | 2 +- core/users/group_permissions.php | 7 +- core/users/groupadd.php | 4 +- core/users/groupdelete.php | 2 +- core/users/groupmembers.php | 2 +- core/users/permissions_default.php | 56 ++++++++++++++ core/users/resources/classes/permission.php | 84 +++++++++++++++++++++ 7 files changed, 150 insertions(+), 7 deletions(-) create mode 100644 core/users/permissions_default.php create mode 100644 core/users/resources/classes/permission.php diff --git a/core/users/app_config.php b/core/users/app_config.php index 051de258f4..23b8ce3ccd 100644 --- a/core/users/app_config.php +++ b/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 diff --git a/core/users/group_permissions.php b/core/users/group_permissions.php index 2157207709..e14545fcb5 100644 --- a/core/users/group_permissions.php +++ b/core/users/group_permissions.php @@ -196,9 +196,12 @@ require_once "includes/paging.php"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; diff --git a/core/users/groupadd.php b/core/users/groupadd.php index 8d7ffbe054..f9ab5d6dca 100644 --- a/core/users/groupadd.php +++ b/core/users/groupadd.php @@ -66,7 +66,7 @@ if (strlen($group_name) > 0) { //redirect the user require_once "includes/header.php"; - echo "\n"; + echo "\n"; echo "
\n"; echo "Group Added\n"; echo "
\n"; @@ -87,7 +87,7 @@ if (strlen($group_name) > 0) { echo " Please choose a group name. "; echo " \n"; echo " \n"; echo " \n"; echo "
Group Permission List for $group_nameGroup Permissions for $group_name\n"; - echo " "; + if (permission_exists('group_edit')) { + echo " "; + } + echo " "; echo "
\n"; - echo " "; + echo " "; echo "
\n"; diff --git a/core/users/groupdelete.php b/core/users/groupdelete.php index b0c6c40568..9adcfdbdba 100644 --- a/core/users/groupdelete.php +++ b/core/users/groupdelete.php @@ -51,6 +51,6 @@ else { } //redirect the user - header("Location: grouplist.php"); + header("Location: groups.php"); ?> diff --git a/core/users/groupmembers.php b/core/users/groupmembers.php index 2ee1ae6589..1ec4f2c7b8 100644 --- a/core/users/groupmembers.php +++ b/core/users/groupmembers.php @@ -74,7 +74,7 @@ else { echo " Member list for $group_name"; echo " \n"; echo " \n"; - echo " "; + echo " "; echo "    \n"; echo " \n"; echo " \n"; diff --git a/core/users/permissions_default.php b/core/users/permissions_default.php new file mode 100644 index 0000000000..9a4788f9e0 --- /dev/null +++ b/core/users/permissions_default.php @@ -0,0 +1,56 @@ + + Portions created by the Initial Developer are Copyright (C) 2008-2012 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ +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 "\n"; + echo "
\n"; + echo "Restore Complete\n"; + echo "
\n"; + require_once "includes/footer.php"; + return; + +?> \ No newline at end of file diff --git a/core/users/resources/classes/permission.php b/core/users/resources/classes/permission.php new file mode 100644 index 0000000000..ac12f291ca --- /dev/null +++ b/core/users/resources/classes/permission.php @@ -0,0 +1,84 @@ + + Copyright (C) 2013 + All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +//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); + } + } + } + } + } + } + } + } \ No newline at end of file