new changes to group_permissions/menu logic

This commit is contained in:
Nuno Miguel Reis
2013-09-17 19:06:44 +00:00
parent ceb0497fe7
commit 017650e984
27 changed files with 223 additions and 10 deletions

View File

@@ -26,6 +26,13 @@
require_once "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
require_once "resources/classes/logging.php";
// Logging class initialization
$log = new Logging();
// set path and name of log file (optional)
$log->lfile('/tmp/mylog.txt');
if (permission_exists('group_permissions') || if_group("superadmin")) {
//access granted
}
@@ -106,6 +113,7 @@ require_once "resources/paging.php";
$permission_name = $row["permission_name"];
$permissions_db[$permission_name] = "true";
}
//show the db checklist
//echo "<pre>";
//print_r($permissions_db);
@@ -121,7 +129,8 @@ require_once "resources/paging.php";
$permissions_db_checklist[$row['name']] = "false";
}
}
}
}
//show the db checklist
//echo "<pre>";
//print_r($permissions_db_checklist);
@@ -167,6 +176,58 @@ require_once "resources/paging.php";
$sql .= "and permission_name = '$permission' ";
$db->exec(check_sql($sql));
unset($sql);
foreach($apps as $app) {
foreach ($app['permissions'] as $row) {
if ($row['name'] == $permission) {
$log->lwrite("2");
$log->lwrite($row['menu']['uuid']);
$sql = "delete from v_menu_item_groups ";
$sql .= "where menu_item_uuid = '".$row['menu']['uuid']."' ";
$sql .= "and group_name = '$group_name' ";
$sql .= "and menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' ";
$db->exec(check_sql($sql));
unset($sql);
$sql = "";
$sql .= " select menu_item_parent_uuid from v_menu_items ";
$sql .= "where menu_item_uuid = '".$row['menu']['uuid']."' ";
$sql .= "and menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$menu_item_parent_uuid = $row["menu_item_parent_uuid"];
}
unset ($prep_statement);
$sql = "";
$sql .= " select * from v_menu_items as i, v_menu_item_groups as g ";
$sql .= "where i.menu_item_uuid = g.menu_item_uuid ";
$sql .= "and i.menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' ";
$sql .= "and i.menu_item_parent_uuid = '$menu_item_parent_uuid' ";
$sql .= "and g.group_name = '$group_name' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$result_count = count($result);
if ($result_count == 0) {
$sql = "delete from v_menu_item_groups ";
$sql .= "where menu_item_uuid = '$menu_item_parent_uuid' ";
$sql .= "and group_name = '$group_name' ";
$sql .= "and menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' ";
$db->exec(check_sql($sql));
unset($sql);
}
unset ($prep_statement);
}
}
}
//set the permission to false in the permissions_db_checklist
$permissions_db_checklist[$permission] = "false";
}
@@ -188,6 +249,71 @@ require_once "resources/paging.php";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
foreach($apps as $app) {
foreach ($app['permissions'] as $row) {
if ($row['name'] == $permission) {
$log->lwrite("1");
$log->lwrite($row['menu']['uuid']);
$log->lwrite($row['menu']['parent_uuid']);
$sql = "insert into v_menu_item_groups ";
$sql .= "(";
$sql .= "menu_uuid, ";
$sql .= "menu_item_uuid, ";
$sql .= "group_name ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$sql .= "'b4750c3f-2a86-b00d-b7d0-345c14eca286', ";
$sql .= "'".$row['menu']['uuid']."', ";
$sql .= "'$group_name' ";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
$sql = "";
$sql .= " select menu_item_parent_uuid from v_menu_items ";
$sql .= "where menu_item_uuid = '".$row['menu']['uuid']."' ";
$sql .= "and menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$menu_item_parent_uuid = $row["menu_item_parent_uuid"];
}
unset ($prep_statement);
$sql = "";
$sql .= " select * from v_menu_item_groups ";
$sql .= "where menu_item_uuid = '$menu_item_parent_uuid' ";
$sql .= "and group_name = '$group_name' ";
$sql .= "and menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$result_count = count($result);
if ($result_count == 0) {
$sql = "insert into v_menu_item_groups ";
$sql .= "(";
$sql .= "menu_uuid, ";
$sql .= "menu_item_uuid, ";
$sql .= "group_name ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$sql .= "'b4750c3f-2a86-b00d-b7d0-345c14eca286', ";
$sql .= "'$menu_item_parent_uuid', ";
$sql .= "'$group_name' ";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
}
unset ($prep_statement);
}
}
}
//set the permission to true in the permissions_db_checklist
$permissions_db_checklist[$permission] = "true";
}
@@ -233,8 +359,19 @@ require_once "resources/paging.php";
$app_name = $app['name'];
$description = $app['description']['en-us'];
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n";
echo " <td valign='top' style='width:80%' nowrap='nowrap'>\n";
echo "<strong>".$app_name."</strong><br />\n";
echo " </td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td valign='top'>\n";
echo "".$description."<br /><br />";
echo " </td>\n";
echo "</tr>\n";
echo "</table>";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n";
echo "<th>".$text['label-permission_permissions']."</th>\n";