Database class integration.

This commit is contained in:
Nate
2019-07-10 15:45:21 -06:00
parent 4efd7dfbf6
commit 479f1dfb08
9 changed files with 600 additions and 494 deletions
+147 -143
View File
@@ -58,65 +58,64 @@
} }
//if there are no permissions listed in v_group_permissions then set the default permissions //if there are no permissions listed in v_group_permissions then set the default permissions
$sql = "select count(*) as count from v_group_permissions "; $sql = "select count(*) from v_group_permissions ";
$prep_statement = $db->prepare(check_sql($sql)); $database = new database;
$prep_statement->execute(); $group_permission_count = $database->select($sql, null, 'column');
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED); unset($sql);
foreach ($result as &$row) {
$group_permission_count = $row["count"];
break; //limit to 1 row
}
unset ($prep_statement);
if ($group_permission_count == 0) { if ($group_permission_count == 0) {
//no permissions found add the defaults //no permissions found add the defaults
foreach($apps as $app) { foreach($apps as $app) {
foreach ($app['permissions'] as $row) { foreach ($app['permissions'] as $row) {
foreach ($row['groups'] as $group) { foreach ($row['groups'] as $index => $group) {
//add the record //add the record
$sql = "insert into v_group_permissions "; $array['group_permissions'][$index]['group_permission_uuid'] = uuid();
$sql .= "("; $array['group_permissions'][$index]['permission_name'] = $row['name'];
$sql .= "group_permission_uuid, "; $array['group_permissions'][$index]['group_name'] = $group;
$sql .= "permission_name, "; }
$sql .= "group_name "; if (is_array($array) && sizeof($array) != 0) {
$sql .= ")"; $database = new database;
$sql .= "values "; $database->app_name = 'groups';
$sql .= "("; $database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$sql .= "'".uuid()."', "; $database->save($array);
$sql .= "'".$row['name']."', "; unset($array);
$sql .= "'".$group."' ";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
} }
} }
} }
} }
//get the group uuid, lookup domain uuid (if any) and name //get the group uuid, lookup domain uuid (if any) and name
$group_uuid = check_str($_REQUEST['group_uuid']); $group_uuid = $_REQUEST['group_uuid'];
$sql = "select domain_uuid, group_name from v_groups "; $sql = "select domain_uuid, group_name from v_groups ";
$sql .= "where group_uuid = '".$group_uuid."' "; $sql .= "where group_uuid = :group_uuid ";
$prep_statement = $db->prepare(check_sql($sql)); $parameters['group_uuid'] = $group_uuid;
$prep_statement->execute(); $database = new database;
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $row = $database->select($sql, $parameters, 'row');
foreach ($result as &$row) { if (is_array($row) && sizeof($row) != 0) {
$domain_uuid = $row["domain_uuid"]; $domain_uuid = $row["domain_uuid"];
$group_name = $row["group_name"]; $group_name = $row["group_name"];
break; //limit to 1 row
} }
unset ($prep_statement); unset($sql, $parameters, $row);
//get the permissions assigned to this group //get the permissions assigned to this group
$sql = " select * from v_group_permissions "; $sql = "select * from v_group_permissions ";
$sql .= "where group_name = '$group_name' "; $sql .= "where group_name = :group_name ";
$sql .= "and domain_uuid ".(($domain_uuid != '') ? " = '".$domain_uuid."' " : " is null "); if (is_uuid($domain_uuid)) {
$prep_statement = $db->prepare(check_sql($sql)); $sql .= "and domain_uuid = :domain_uuid ";
$prep_statement->execute(); $parameters['domain_uuid'] = $domain_uuid;
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$permission_name = $row["permission_name"];
$permissions_db[$permission_name] = "true";
} }
else {
$sql .= "and domain_uuid is null ";
}
$parameters['group_name'] = $group_name;
$database = new database;
$result = $database->select($sql, $parameters, 'all');
if (is_array($result) && sizeof($result) != 0) {
foreach ($result as &$row) {
$permissions_db[$row["permission_name"]] = "true";
}
}
unset($sql, $parameters, $result, $row);
//show the db checklist //show the db checklist
//echo "<pre>"; //echo "<pre>";
@@ -175,52 +174,68 @@
} }
if ($permissions_db_checklist[$permission] == "true" && $permissions_form_checklist[$permission] == "false") { if ($permissions_db_checklist[$permission] == "true" && $permissions_form_checklist[$permission] == "false") {
//delete the record //delete the record
$sql = "delete from v_group_permissions "; $array['group_permissions'][0]['group_name'] = $group_name;
$sql .= "where group_name = '$group_name' "; $array['group_permissions'][0]['permission_name'] = $permission;
$sql .= "and permission_name = '$permission' "; $database = new database;
$db->exec(check_sql($sql)); $database->app_name = 'groups';
unset($sql); $database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->delete($array);
unset($array);
foreach($apps as $app) { foreach($apps as $app) {
foreach ($app['permissions'] as $row) { foreach ($app['permissions'] as $row) {
if ($row['name'] == $permission) { if ($row['name'] == $permission) {
$sql = "delete from v_menu_item_groups "; $array['menu_item_groups'][0]['menu_item_uuid'] = $row['menu']['uuid'];
$sql .= "where menu_item_uuid = '".$row['menu']['uuid']."' "; $array['menu_item_groups'][0]['group_name'] = $group_name;
$sql .= "and group_name = '$group_name' "; $array['menu_item_groups'][0]['menu_uuid'] = 'b4750c3f-2a86-b00d-b7d0-345c14eca286';
$sql .= "and menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' ";
$db->exec(check_sql($sql));
unset($sql);
$sql = " select menu_item_parent_uuid from v_menu_items "; $p = new permissions;
$sql .= "where menu_item_uuid = '".$row['menu']['uuid']."' "; $p->add('menu_item_group_delete', 'temp');
$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 = " select * from v_menu_items as i, v_menu_item_groups as g "; $database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->delete($array);
unset($array);
$p->delete('menu_item_group_delete', 'temp');
$sql = "select menu_item_parent_uuid from v_menu_items ";
$sql .= "where menu_item_uuid = :menu_item_uuid ";
$sql .= "and menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' ";
$parameters['menu_item_uuid'] = $row['menu']['uuid'];
$database = new database;
$menu_item_parent_uuid = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
$sql = "select count(*) from v_menu_items as i, v_menu_item_groups as g ";
$sql .= "where i.menu_item_uuid = g.menu_item_uuid "; $sql .= "where i.menu_item_uuid = g.menu_item_uuid ";
$sql .= "and i.menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' "; $sql .= "and i.menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' ";
$sql .= "and i.menu_item_parent_uuid = '$menu_item_parent_uuid' "; $sql .= "and i.menu_item_parent_uuid = :menu_item_parent_uuid ";
$sql .= "and g.group_name = '$group_name' "; $sql .= "and g.group_name = :group_name ";
$prep_statement = $db->prepare(check_sql($sql)); $parameters['menu_item_parent_uuid'] = $menu_item_parent_uuid;
$prep_statement->execute(); $parameters['group_name'] = $group_name;
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $database = new database;
$result_count = count($result); $result_count = $database->select($sql, $parameters, 'column');
if ($result_count == 0) { if ($result_count == 0) {
$sql = "delete from v_menu_item_groups "; $array['menu_item_groups'][0]['menu_item_uuid'] = $menu_item_parent_uuid;
$sql .= "where menu_item_uuid = '$menu_item_parent_uuid' "; $array['menu_item_groups'][0]['group_name'] = $group_name;
$sql .= "and group_name = '$group_name' "; $array['menu_item_groups'][0]['menu_uuid'] = 'b4750c3f-2a86-b00d-b7d0-345c14eca286';
$sql .= "and menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' ";
$db->exec(check_sql($sql)); $p = new permissions;
unset($sql); $p->add('menu_item_group_delete', 'temp');
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->delete($array);
unset($array);
$p->delete('menu_item_group_delete', 'temp');
} }
unset ($prep_statement); unset($sql, $parameters, $result_count);
} }
} }
} }
@@ -229,82 +244,72 @@
} }
if ($permissions_db_checklist[$permission] == "false" && $permissions_form_checklist[$permission] == "true") { if ($permissions_db_checklist[$permission] == "false" && $permissions_form_checklist[$permission] == "true") {
//add the record //add the record
$sql = "insert into v_group_permissions "; $array['group_permissions'][0]['group_permission_uuid'] = uuid();
$sql .= "("; if (is_uuid($domain_uuid)) {
$sql .= "group_permission_uuid, "; $array['group_permissions'][0]['domain_uuid'] = $domain_uuid;
if ($domain_uuid != '') {
$sql .= "domain_uuid, ";
} }
$sql .= "permission_name, "; $array['group_permissions'][0]['permission_name'] = $permission;
$sql .= "group_name "; $array['group_permissions'][0]['group_name'] = $group_name;
$sql .= ")"; $database = new database;
$sql .= "values "; $database->app_name = 'groups';
$sql .= "("; $database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$sql .= "'".uuid()."', "; $database->save($array);
if ($domain_uuid != '') { unset($array);
$sql .= "'".$domain_uuid."', ";
}
$sql .= "'$permission', ";
$sql .= "'$group_name' ";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
foreach($apps as $app) { foreach($apps as $app) {
foreach ($app['permissions'] as $row) { foreach ($app['permissions'] as $row) {
if ($row['name'] == $permission) { if ($row['name'] == $permission) {
$sql = "insert into v_menu_item_groups "; $array['menu_item_groups'][0]['menu_uuid'] = 'b4750c3f-2a86-b00d-b7d0-345c14eca286';
$sql .= "("; $array['menu_item_groups'][0]['menu_item_uuid'] = $row['menu']['uuid'];
$sql .= "menu_uuid, "; $array['menu_item_groups'][0]['group_name'] = $group_name;
$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 = " select menu_item_parent_uuid from v_menu_items "; $p = new permissions;
$sql .= "where menu_item_uuid = '".$row['menu']['uuid']."' "; $p->add('menu_item_group_add', 'temp');
$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 = " select * from v_menu_item_groups "; $database = new database;
$sql .= "where menu_item_uuid = '$menu_item_parent_uuid' "; $database->app_name = 'groups';
$sql .= "and group_name = '$group_name' "; $database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->save($array);
unset($array);
$p->delete('menu_item_group_add', 'temp');
$sql = "select menu_item_parent_uuid from v_menu_items ";
$sql .= "where menu_item_uuid = :menu_item_uuid ";
$sql .= "and menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' "; $sql .= "and menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' ";
$prep_statement = $db->prepare(check_sql($sql)); $parameters['menu_item_uuid'] = $row['menu']['uuid'];
$prep_statement->execute(); $database = new database;
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $menu_item_parent_uuid = $database->select($sql, $parameters, 'column');
$result_count = count($result); unset($sql, $parameters);
$sql = "select count(*) from v_menu_item_groups ";
$sql .= "where menu_item_uuid = :menu_item_uuid ";
$sql .= "and group_name = :group_name ";
$sql .= "and menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286' ";
$parameters['menu_item_uuid'] = $menu_item_parent_uuid;
$parameters['group_name'] = $group_name;
$database = new database;
$result_count = $database->select($sql, $parameters, 'column');
if ($result_count == 0) { if ($result_count == 0) {
$sql = "insert into v_menu_item_groups "; $array['menu_item_groups'][0]['menu_uuid'] = 'b4750c3f-2a86-b00d-b7d0-345c14eca286';
$sql .= "("; $array['menu_item_groups'][0]['menu_item_uuid'] = $menu_item_parent_uuid;
$sql .= "menu_uuid, "; $array['menu_item_groups'][0]['group_name'] = $group_name;
$sql .= "menu_item_uuid, ";
$sql .= "group_name "; $p = new permissions;
$sql .= ")"; $p->add('menu_item_group_add', 'temp');
$sql .= "values ";
$sql .= "("; $database = new database;
$sql .= "'b4750c3f-2a86-b00d-b7d0-345c14eca286', "; $database->app_name = 'groups';
$sql .= "'$menu_item_parent_uuid', "; $database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$sql .= "'$group_name' "; $database->save($array);
$sql .= ")"; unset($array);
$db->exec(check_sql($sql));
unset($sql); $p->delete('menu_item_group_add', 'temp');
} }
unset ($prep_statement);
unset($sql, $parameters, $result_count);
} }
} }
} }
@@ -328,7 +333,7 @@
echo " if (new_group_name != null) {\n"; echo " if (new_group_name != null) {\n";
echo " new_group_desc = prompt('".$text['message-new_group_description']."');\n"; echo " new_group_desc = prompt('".$text['message-new_group_description']."');\n";
echo " if (new_group_desc != null) {\n"; echo " if (new_group_desc != null) {\n";
echo " window.location = 'permissions_copy.php?group_name=".escape($group_name)."&new_group_name=' + new_group_name + '&new_group_desc=' + new_group_desc;\n"; echo " window.location = 'permissions_copy.php?id=".escape($group_uuid)."&new_group_name=' + new_group_name + '&new_group_desc=' + new_group_desc;\n";
echo " }\n"; echo " }\n";
echo " }\n"; echo " }\n";
echo " }\n"; echo " }\n";
@@ -427,7 +432,6 @@
} //end foreach } //end foreach
echo "<br>"; echo "<br>";
unset($sql, $result, $row_count);
echo "</form>\n"; echo "</form>\n";
+23 -36
View File
@@ -45,55 +45,42 @@
//get the http values and set them as variables //get the http values and set them as variables
if (count($_POST) > 0) { if (count($_POST) > 0) {
//set the variables //set the variables
$group_name = check_str($_POST["group_name"]); $group_name = $_POST["group_name"];
if (permission_exists('group_domain')) { if (permission_exists('group_domain')) {
$domain_uuid = check_str($_POST["domain_uuid"]); $domain_uuid = $_POST["domain_uuid"];
} }
else { else {
$domain_uuid = $_SESSION['domain_uuid']; $domain_uuid = $_SESSION['domain_uuid'];
} }
$group_description = check_str($_POST["group_description"]); $group_description = $_POST["group_description"];
//check for global/domain duplicates //check for global/domain duplicates
$sql = "select count(*) as num_rows from v_groups where "; $sql = "select count(*) from v_groups where ";
$sql .= "group_name = '".$group_name."' "; $sql .= "group_name = :group_name ";
$sql .= "and domain_uuid ".(($domain_uuid != '') ? " = '".$domain_uuid."' " : " is null "); if (is_uuid($domain_uuid)) {
$prep_statement = $db->prepare($sql); $sql .= "and domain_uuid = :domain_uuid ";
if ($prep_statement) { $parameters['domain_uuid'] = $domain_uuid;
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
$group_exists = ($row['num_rows'] > 0) ? true : false;
} }
else { else {
$group_exists = false; $sql .= "and domain_uuid is null ";
} }
unset($sql, $prep_statement, $row); $parameters['group_name'] = $group_name;
$database = new database;
$num_rows = $database->select($sql, $parameters, 'column');
$group_exists = ($num_rows > 0) ? true : false;
unset($sql, $parameters, $num_rows);
//insert group //insert group
if (!$group_exists) { if (!$group_exists) {
$sql = "insert into v_groups "; $array['groups'][0]['group_uuid'] = uuid();
$sql .= "("; $array['groups'][0]['domain_uuid'] = is_uuid($domain_uuid) ? $domain_uuid : null;
$sql .= "group_uuid, "; $array['groups'][0]['group_name'] = $group_name;
$sql .= "domain_uuid, "; $array['groups'][0]['group_description'] = $group_description;
$sql .= "group_name, "; $database = new database;
$sql .= "group_description "; $database->app_name = 'groups';
$sql .= ")"; $database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$sql .= "values "; $database->save($array);
$sql .= "("; unset($array);
$sql .= "'".uuid()."', ";
$sql .= (($domain_uuid != '') ? "'".$domain_uuid."'" : "null").", ";
$sql .= "'".$group_name."', ";
$sql .= "'".$group_description."' ";
$sql .= ")";
if (!$db->exec($sql)) {
//echo $db->errorCode() . "<br>";
$info = $db->errorInfo();
echo "<pre>".print_r($info, true)."</pre>";
exit;
// $info[0] == $db->errorCode() unified error code
// $info[1] is the driver specific error code
// $info[2] is the driver specific error string
}
message::add($text['message-add']); message::add($text['message-add']);
header("Location: groups.php"); header("Location: groups.php");
+77 -37
View File
@@ -42,57 +42,97 @@
$language = new text; $language = new text;
$text = $language->get(); $text = $language->get();
//get the http value and set as a variable
$group_uuid = check_str($_GET["id"]);
//validate the uuid //validate the uuid
if (is_uuid($group_uuid)) { if (is_uuid($_GET["id"])) {
$group_uuid = $_GET["id"];
//get the group from v_groups //get the group from v_groups
$sql = "select domain_uuid, group_name from v_groups "; $sql = "select domain_uuid, group_name from v_groups ";
$sql .= "where group_uuid = '".$group_uuid."' "; $sql .= "where group_uuid = :group_uuid ";
if (!permission_exists('group_domain')) { if (!permission_exists('group_domain')) {
$sql .= "and (domain_uuid = '".$_SESSION['domain_uuid']."' or domain_uuid is null); "; $sql .= "and (domain_uuid = :domain_uuid or domain_uuid is null) ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
} }
$prep_statement = $db->prepare(check_sql($sql)); $parameters['group_uuid'] = $group_uuid;
$prep_statement->execute(); $database = new database;
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $row = $database->select($sql, $parameters, 'row');
foreach ($result as &$row) { unset($sql, $parameters);
if (is_array($row) && sizeof($row) != 0) {
$domain_uuid = $row["domain_uuid"]; $domain_uuid = $row["domain_uuid"];
$group_name = $row["group_name"]; $group_name = $row["group_name"];
}
unset ($prep_statement);
//delete the user groups //delete the user groups
$sql = "delete from v_user_groups "; $array['user_groups'][0]['group_uuid'] = $group_uuid;
$sql .= "where group_uuid = '".$group_uuid."' ";
if (!$db->exec($sql)) {
$error = $db->errorInfo();
print_r($error);
}
//delete the group permissions $p = new permissions;
if (strlen($group_name) > 0) { $p->add('user_group_delete', 'temp');
$sql = "delete from v_group_permissions ";
$sql .= "where group_name = '".$group_name."' "; $database = new database;
$sql .= "and domain_uuid ".(($domain_uuid != '') ? " = '".$domain_uuid."' " : " is null "); $database->app_name = 'groups';
if (!$db->exec($sql)) { $database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$error = $db->errorInfo(); $database->delete($array);
print_r($error); unset($array);
}
} $p->delete('user_group_delete', 'temp');
//get the group permissions
$sql = "select group_permission_uuid ";
$sql .= "from v_group_permissions ";
$sql .= "where group_name = :group_name ";
if (is_uuid($domain_uuid)) {
$sql .= "and domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $domain_uuid;
}
else {
$sql .= "and domain_uuid is null ";
}
$parameters['group_name'] = $group_name;
$database = new database;
$result = $database->select($sql, $parameters, 'all');
if (is_array($result) && sizeof($result) != 0) {
foreach ($result as $index => $row) {
//build array
$array['group_permissions'][$index]['group_permission_uuid'] = $row['group_permission_uuid'];
$array['group_permissions'][$index]['group_name'] = $group_name;
}
if (is_array($array) && sizeof($array) != 0) {
//delete the group permissions
$p = new permissions;
$p->add('group_permission_delete', 'temp');
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->delete($array);
unset($array);
$p->delete('group_permission_delete', 'temp');
}
}
unset($sql, $parameters, $result, $row);
//delete the group
$array['groups'][0]['group_uuid'] = $group_uuid;
if (is_uuid($domain_uuid)) {
$array['groups'][0]['domain_uuid'] = $domain_uuid;
}
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->delete($array);
unset($array);
//set message
message::add($text['message-delete']);
//delete the group
$sql = "delete from v_groups ";
$sql .= "where group_uuid = '".$group_uuid."' ";
$sql .= "and domain_uuid ".(($domain_uuid != '') ? " = '".$domain_uuid."' " : " is null ");
if (!$db->exec($sql)) {
$error = $db->errorInfo();
print_r($error);
} }
unset($sql, $parameters, $row);
} }
//redirect the user //redirect the user
message::add($text['message-delete']);
header("Location: groups.php"); header("Location: groups.php");
?> ?>
+166 -102
View File
@@ -45,128 +45,176 @@
//process update //process update
if (count($_POST) > 0) { if (count($_POST) > 0) {
//set the variables //set the variables
$group_uuid = check_str($_POST['group_uuid']); $group_uuid = $_POST['group_uuid'];
$group_name = check_str($_POST['group_name']); $group_name = $_POST['group_name'];
$group_name_previous = check_str($_POST['group_name_previous']); $group_name_previous = $_POST['group_name_previous'];
$domain_uuid = check_str($_POST["domain_uuid"]); $domain_uuid = $_POST["domain_uuid"];
$domain_uuid_previous = check_str($_POST["domain_uuid_previous"]); $domain_uuid_previous = $_POST["domain_uuid_previous"];
$group_description = check_str($_POST["group_description"]); $group_description = $_POST["group_description"];
//check for global/domain duplicates //check for global/domain duplicates
$sql = "select count(*) as num_rows from v_groups where "; $sql = "select count(*) from v_groups where ";
$sql .= "group_name = '".$group_name."' "; $sql .= "group_name = :group_name ";
$sql .= "and group_uuid <> '".$group_uuid."' "; $sql .= "and group_uuid <> :group_uuid ";
$sql .= "and domain_uuid ".(($domain_uuid != '') ? " = '".$domain_uuid."' " : " is null "); if (is_uuid($domain_uuid)) {
$prep_statement = $db->prepare($sql); $sql .= "and domain_uuid = :domain_uuid ";
if ($prep_statement) { $parameters['domain_uuid'] = $domain_uuid;
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
$group_exists = ($row['num_rows'] > 0) ? true : false;
} }
else { else {
$group_exists = false; $sql .= "and domain_uuid is null ";
} }
unset($sql, $prep_statement, $row); $parameters['group_name'] = $group_name;
$parameters['group_uuid'] = $group_uuid;
$database = new database;
$num_rows = $database->select($sql, $parameters, 'column');
$group_exists = ($num_rows > 0) ? true : false;
unset($sql, $parameters, $num_rows);
//update group //update group
if (!$group_exists) { if (!$group_exists) {
$sql = "update v_groups "; $array['groups'][0]['group_uuid'] = $group_uuid;
$sql .= "set "; $array['groups'][0]['domain_uuid'] = is_uuid($domain_uuid) ? $domain_uuid : null;
$sql .= "group_name = '".$group_name."', "; $array['groups'][0]['group_name'] = $group_name;
$sql .= "domain_uuid = ".(($domain_uuid != '') ? "'".$domain_uuid."'" : "null").", "; $array['groups'][0]['group_description'] = $group_description;
$sql .= "group_description = '".$group_description."' "; $database = new database;
$sql .= "where group_uuid = '".$group_uuid."' "; $database->app_name = 'groups';
if (!$db->exec(check_sql($sql))) { $database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$error = $db->errorInfo(); $database->save($array);
echo "<pre>".print_r($error, true)."</pre>"; unset($array);
exit;
}
//group changed from global to domain-specific //group changed from global to domain-specific
if ($domain_uuid_previous == '' && $domain_uuid != '') { if (!is_uuid($domain_uuid_previous) && is_uuid($domain_uuid)) {
//remove any users assigned to the group from the old domain //remove any users assigned to the group from the old domain
$sql = "delete from v_user_groups where group_uuid = '".$group_uuid."' and domain_uuid <> '".$domain_uuid."' "; $sql = "delete from v_user_groups where group_uuid = :group_uuid and domain_uuid <> :domain_uuid ";
if (!$db->exec(check_sql($sql))) { $parameters['group_uuid'] = $group_uuid;
$error = $db->errorInfo(); $parameters['domain_uuid'] = $domain_uuid;
//echo "<pre>".print_r($error, true)."</pre>"; exit; $database = new database;
} $database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->execute($sql, $parameters);
unset($sql, $parameters);
//update permissions to use new domain uuid //update permissions to use new domain uuid
$sql = "update v_group_permissions set domain_uuid = '".$domain_uuid."' where group_name = '".$group_name_previous."' and domain_uuid is null "; $sql = "update v_group_permissions set domain_uuid = :domain_uuid where group_name = :group_name and domain_uuid is null ";
if (!$db->exec(check_sql($sql))) { $parameters['domain_uuid'] = $domain_uuid;
$error = $db->errorInfo(); $parameters['group_name'] = $group_name_previous;
//echo "<pre>".print_r($error, true)."</pre>"; exit; $database = new database;
} $database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->execute($sql, $parameters);
unset($sql, $parameters);
//change group name //change group name
if ($group_name != $group_name_previous && $group_name != '') { if ($group_name != $group_name_previous && $group_name != '') {
//change group name in group users //change group name in group users
$sql = "update v_user_groups set group_name = '".$group_name."' where group_uuid = '".$group_uuid."' and group_name = '".$group_name_previous."' "; $sql = "update v_user_groups set group_name = :group_name_new where group_uuid = :group_uuid and group_name = :group_name_old ";
if (!$db->exec(check_sql($sql))) { $parameters['group_name_new'] = $group_name;
$error = $db->errorInfo(); $parameters['group_uuid'] = $group_uuid;
//echo "<pre>".print_r($error, true)."</pre>"; exit; $parameters['group_name_old'] = $group_name_previous;
} $database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->execute($sql, $parameters);
unset($sql, $parameters);
//change group name in permissions //change group name in permissions
$sql = "update v_group_permissions set group_name = '".$group_name."' where domain_uuid = '".$domain_uuid."' and group_name = '".$group_name_previous."' "; $sql = "update v_group_permissions set group_name = :group_name_new where domain_uuid = :domain_uuid and group_name = :group_name_old ";
if (!$db->exec(check_sql($sql))) { $parameters['group_name_new'] = $group_name;
$error = $db->errorInfo(); $parameters['domain_uuid'] = $domain_uuid;
//echo "<pre>".print_r($error, true)."</pre>"; exit; $parameters['group_name_old'] = $group_name_previous;
} $database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->execute($sql, $parameters);
unset($sql, $parameters);
} }
} }
//group changed from one domain to another //group changed from one domain to another
else if ($domain_uuid_previous != '' && $domain_uuid != '' && $domain_uuid_previous != $domain_uuid) { else if (is_uuid($domain_uuid_previous) && is_uuid($domain_uuid) && $domain_uuid_previous != $domain_uuid) {
//remove any users assigned to the group from the old domain //remove any users assigned to the group from the old domain
$sql = "delete from v_user_groups where group_uuid = '".$group_uuid."' and domain_uuid = '".$domain_uuid_previous."' "; $array['user_groups'][0]['group_uuid'] = $group_uuid;
if (!$db->exec(check_sql($sql))) { $array['user_groups'][0]['domain_uuid'] = $domain_uuid_previous;
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit; $p = new permissions;
} $p->add('user_group_delete', 'temp');
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->delete($array);
unset($array);
$p->delete('user_group_delete', 'temp');
//update permissions to use new domain uuid //update permissions to use new domain uuid
$sql = "update v_group_permissions set domain_uuid = '".$domain_uuid."' where group_name = '".$group_name_previous."' and domain_uuid = '".$domain_uuid_previous."' "; $sql = "update v_group_permissions set domain_uuid = :domain_uuid_new where group_name = :group_name and domain_uuid = :domain_uuid_old ";
if (!$db->exec(check_sql($sql))) { $parameters['domain_uuid_new'] = $domain_uuid;
$error = $db->errorInfo(); $parameters['group_name'] = $group_name_previous;
//echo "<pre>".print_r($error, true)."</pre>"; exit; $parameters['domain_uuid_old'] = $domain_uuid_previous;
} $database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->execute($sql, $parameters);
unset($sql, $parameters);
//change group name //change group name
if ($group_name != $group_name_previous && $group_name != '') { if ($group_name != $group_name_previous && $group_name != '') {
//change group name in group users //change group name in group users
$sql = "update v_user_groups set group_name = '".$group_name."' where group_uuid = '".$group_uuid."' and group_name = '".$group_name_previous."' "; $sql = "update v_user_groups set group_name = :group_name_new where group_uuid = :group_uuid and group_name = :group_name_old ";
if (!$db->exec(check_sql($sql))) { $parameters['group_name_new'] = $group_name;
$error = $db->errorInfo(); $parameters['group_uuid'] = $group_uuid;
//echo "<pre>".print_r($error, true)."</pre>"; exit; $parameters['group_name_old'] = $group_name_previous;
} $database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->execute($sql, $parameters);
unset($sql, $parameters);
//change group name in permissions //change group name in permissions
$sql = "update v_group_permissions set group_name = '".$group_name."' where domain_uuid = '".$domain_uuid."' and group_name = '".$group_name_previous."' "; $sql = "update v_group_permissions set group_name = :group_name_new where domain_uuid = :domain_uuid and group_name = :group_name_old ";
if (!$db->exec(check_sql($sql))) { $parameters['group_name_new'] = $group_name;
$error = $db->errorInfo(); $parameters['domain_uuid'] = $domain_uuid;
//echo "<pre>".print_r($error, true)."</pre>"; exit; $parameters['group_name_old'] = $group_name_previous;
} $database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->execute($sql, $parameters);
unset($sql, $parameters);
} }
} }
//group changed from domain-specific to global //group changed from domain-specific to global
else if ($domain_uuid_previous != '' && $domain_uuid == '') { else if (is_uuid($domain_uuid_previous) && !is_uuid($domain_uuid)) {
//change group name //change group name
if ($group_name != $group_name_previous && $group_name != '') { if ($group_name != $group_name_previous && $group_name != '') {
//change group name in group users //change group name in group users
$sql = "update v_user_groups set group_name = '".$group_name."' where group_uuid = '".$group_uuid."' and group_name = '".$group_name_previous."' "; $sql = "update v_user_groups set group_name = :group_name_new where group_uuid = :group_uuid and group_name = :group_name_old ";
if (!$db->exec(check_sql($sql))) { $parameters['group_name_new'] = $group_name;
$error = $db->errorInfo(); $parameters['group_uuid'] = $group_uuid;
//echo "<pre>".print_r($error, true)."</pre>"; exit; $parameters['group_name_old'] = $group_name_previous;
} $database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->execute($sql, $parameters);
unset($sql, $parameters);
//change group name in permissions //change group name in permissions
$sql = "update v_group_permissions set group_name = '".$group_name."' where domain_uuid = '".$domain_uuid_previous."' and group_name = '".$group_name_previous."' "; $sql = "update v_group_permissions set group_name = :group_name_new where domain_uuid = :domain_uuid and group_name = :group_name_old ";
if (!$db->exec(check_sql($sql))) { $parameters['group_name_new'] = $group_name;
$error = $db->errorInfo(); $parameters['domain_uuid'] = $domain_uuid_previous;
//echo "<pre>".print_r($error, true)."</pre>"; exit; $parameters['group_name_old'] = $group_name_previous;
} $database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->execute($sql, $parameters);
unset($sql, $parameters);
} }
//update permissions to not use a domain uuid //update permissions to not use a domain uuid
$sql = "update v_group_permissions set domain_uuid = null where group_name = '".$group_name."' and domain_uuid = '".$domain_uuid_previous."' "; $sql = "update v_group_permissions set domain_uuid = null where group_name = :group_name and domain_uuid = :domain_uuid ";
if (!$db->exec(check_sql($sql))) { $parameters['group_name'] = $group_name;
$error = $db->errorInfo(); $parameters['domain_uuid'] = $domain_uuid_previous;
//echo "<pre>".print_r($error, true)."</pre>"; exit; $database = new database;
} $database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->execute($sql, $parameters);
unset($sql, $parameters);
} }
//domain didn't change, but name may still //domain didn't change, but name may still
@@ -174,17 +222,32 @@
//change group name //change group name
if ($group_name != $group_name_previous && $group_name != '') { if ($group_name != $group_name_previous && $group_name != '') {
//change group name in group users //change group name in group users
$sql = "update v_user_groups set group_name = '".$group_name."' where group_uuid = '".$group_uuid."' and group_name = '".$group_name_previous."' "; $sql = "update v_user_groups set group_name = :group_name_new where group_uuid = :group_uuid and group_name = :group_name_old ";
if (!$db->exec(check_sql($sql))) { $parameters['group_name_new'] = $group_name;
$error = $db->errorInfo(); $parameters['group_uuid'] = $group_uuid;
//echo "<pre>".print_r($error, true)."</pre>"; exit; $parameters['group_name_old'] = $group_name_previous;
} $database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->execute($sql, $parameters);
unset($sql, $parameters);
//change group name in permissions //change group name in permissions
$sql = "update v_group_permissions set group_name = '".$group_name."' where domain_uuid ".(($domain_uuid != '') ? " = '".$domain_uuid."' " : " is null ")." and group_name = '".$group_name_previous."' "; $sql = "update v_group_permissions set group_name = :group_name_new ";
if (!$db->exec(check_sql($sql))) { if (is_uuid($domain_uuid)) {
$error = $db->errorInfo(); $sql .= "where domain_uuid = :domain_uuid ";
//echo "<pre>".print_r($error, true)."</pre>"; exit; $parameters['domain_uuid'] = $domain_uuid;
} }
else {
$sql .= "where domain_uuid is null ";
}
$sql .= "and group_name = :group_name_old ";
$parameters['group_name_new'] = $group_name;
$parameters['group_name_old'] = $group_name_previous;
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->execute($sql, $parameters);
unset($sql, $parameters);
} }
} }
@@ -201,18 +264,19 @@
} }
//pre-populate the form //pre-populate the form
$group_uuid = check_str($_REQUEST['id']); $group_uuid = $_REQUEST['id'];
if ($group_uuid != '') { if (is_uuid($group_uuid)) {
$sql = "select * from v_groups where "; $sql = "select * from v_groups where ";
$sql .= "group_uuid = '".$group_uuid."' "; $sql .= "group_uuid = :group_uuid ";
$prep_statement = $db->prepare($sql); $parameters['group_uuid'] = $group_uuid;
if ($prep_statement) { $database = new database;
$prep_statement->execute(); $row = $database->select($sql, $parameters, 'row');
$row = $prep_statement->fetch(PDO::FETCH_ASSOC); if (is_array($row) && sizeof($row) != 0) {
$group_name = $row['group_name']; $group_name = $row['group_name'];
$domain_uuid = $row['domain_uuid']; $domain_uuid = $row['domain_uuid'];
$group_description = $row['group_description']; $group_description = $row['group_description'];
} }
unset($sql, $parameters, $row);
} }
//include the header //include the header
+22 -31
View File
@@ -45,43 +45,34 @@
} }
//get the http values and set them as variables //get the http values and set them as variables
$domain_uuid = check_str($_POST["domain_uuid"]); $domain_uuid = $_POST["domain_uuid"];
$group_uuid = check_str($_POST["group_uuid"]); $group_uuid = $_POST["group_uuid"];
$group_name = check_str($_POST["group_name"]); $group_name = $_POST["group_name"];
$user_uuid = check_str($_POST["user_uuid"]); $user_uuid = $_POST["user_uuid"];
//add the user to the group //add the user to the group
if (is_uuid($user_uuid) && is_uuid($group_uuid) && strlen($group_name) > 0) { if (is_uuid($user_uuid) && is_uuid($group_uuid) && strlen($group_name) > 0) {
$sql = "insert into v_user_groups "; $array['user_groups'][0]['user_group_uuid'] = uuid();
$sql .= "("; $array['user_groups'][0]['domain_uuid'] = $domain_uuid;
$sql .= "user_group_uuid, "; $array['user_groups'][0]['group_uuid'] = $group_uuid;
$sql .= "domain_uuid, "; $array['user_groups'][0]['group_name'] = $group_name;
$sql .= "group_uuid, "; $array['user_groups'][0]['user_uuid'] = $user_uuid;
$sql .= "group_name, ";
$sql .= "user_uuid "; $p = new permissions;
$sql .= ")"; $p->add('user_group_add', 'temp');
$sql .= "values ";
$sql .= "("; $database = new database;
$sql .= "'".uuid()."', "; $database->app_name = 'groups';
$sql .= "'".$domain_uuid."', "; $database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$sql .= "'".$group_uuid."', "; $database->save($array);
$sql .= "'".$group_name."', "; unset($array);
$sql .= "'".$user_uuid."' ";
$sql .= ")"; $p->delete('user_group_add', 'temp');
if (!$db->exec($sql)) {
$info = $db->errorInfo(); message::add($text['message-update']);
echo "<pre>".print_r($info, true)."</pre>";
exit;
}
else {
//log the success
//$log_type = 'group'; $log_status='add'; $log_add_user=$_SESSION["username"]; $log_desc= "username: ".$username." added to group: ".$group_name;
//log_add($db, $log_type, $log_status, $log_desc, $log_add_user, $_SERVER["REMOTE_ADDR"]);
}
} }
//redirect the user //redirect the user
message::add($text['message-update']);
header("Location: groupmembers.php?group_uuid=".$group_uuid."&group_name=".$group_name); header("Location: groupmembers.php?group_uuid=".$group_uuid."&group_name=".$group_name);
?> ?>
+15 -15
View File
@@ -45,23 +45,23 @@
} }
//get the http values and set them as variables //get the http values and set them as variables
$group_name = check_str($_GET["group_name"]); $group_name = $_GET["group_name"];
$user_uuid = check_str($_GET["user_uuid"]); $user_uuid = $_GET["user_uuid"];
$group_uuid = check_str($_GET["group_uuid"]); $group_uuid = $_GET["group_uuid"];
//delete the group membership //delete the group membership
$sql_delete = "delete from v_user_groups "; $p = new permissions;
$sql_delete .= "where user_uuid = '".$user_uuid."' "; $p->add('user_group_delete', 'temp');
$sql_delete .= "and group_uuid = '".$group_uuid."' ";
if (!$db->exec($sql_delete)) { $array['user_groups'][0]['user_uuid'] = $user_uuid;
$info = $db->errorInfo(); $array['user_groups'][0]['group_uuid'] = $group_uuid;
echo "<pre>".print_r($info, true)."</pre>"; $database = new database;
exit; $database->app_name = 'groups';
} $database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
else { $database->delete($array);
//$log_type = 'group'; $log_status='remove'; $log_add_user=$_SESSION["username"]; $log_desc= "username: ".$username." removed from group: ".$group_name; unset($array);
//log_add($db, $log_type, $log_status, $log_desc, $log_add_user, $_SERVER["REMOTE_ADDR"]);
} $p->delete('user_group_delete', 'temp');
//redirect the user //redirect the user
message::add($text['message-delete']); message::add($text['message-delete']);
+55 -52
View File
@@ -49,46 +49,44 @@
$text = $language->get(); $text = $language->get();
//get the group uuid, lookup domain uuid (if any) and name //get the group uuid, lookup domain uuid (if any) and name
$group_uuid = check_str($_REQUEST['group_uuid']); $group_uuid = $_REQUEST['group_uuid'];
$sql = "select domain_uuid, group_name from v_groups "; $sql = "select domain_uuid, group_name from v_groups ";
$sql .= "where group_uuid = '".$group_uuid."' "; $sql .= "where group_uuid = :group_uuid ";
$prep_statement = $db->prepare(check_sql($sql)); $parameters['group_uuid'] = $group_uuid;
$prep_statement->execute(); $database = new database;
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $row = $database->select($sql, $parameters, 'row');
foreach ($result as &$row) { if (is_array($row) && sizeof($row) != 0) {
$domain_uuid = $row["domain_uuid"]; $domain_uuid = $row["domain_uuid"];
$group_name = $row["group_name"]; $group_name = $row["group_name"];
break; //limit to 1 row
} }
unset ($prep_statement); unset($sql, $parameters, $row);
//define the if group members function //define the if group members function
function is_group_member($group_uuid, $user_uuid) { function is_group_member($group_uuid, $user_uuid) {
global $db, $domain_uuid; global $domain_uuid;
$sql = "select * from v_user_groups "; $sql = "select count(*) from v_user_groups ";
$sql .= "where user_uuid = '".$user_uuid."' "; $sql .= "where user_uuid = :user_uuid ";
$sql .= "and group_uuid = '".$group_uuid."' "; $sql .= "and group_uuid = :group_uuid ";
$sql .= "and domain_uuid = '".(($domain_uuid != '') ? $domain_uuid : $_SESSION['domain_uuid'])."' "; $sql .= "and domain_uuid = :domain_uuid ";
$prep_statement = $db->prepare(check_sql($sql)); $parameters['user_uuid'] = $user_uuid;
$prep_statement->execute(); $parameters['group_uuid'] = $group_uuid;
if (count($prep_statement->fetchAll(PDO::FETCH_NAMED)) == 0) { return true; } else { return false; } $parameters['domain_uuid'] = is_uuid($domain_uuid) ? $domain_uuid : $_SESSION['domain_uuid'];
unset ($sql, $prep_statement); $database = new database;
$num_rows = $database->select($sql, $parameters, 'column');
return $num_rows == 0 ? true : false;
unset($sql, $parameters, $num_rows);
} }
//$exampledatareturned = example("apples", 1); //$exampledatareturned = example("apples", 1);
//get the the users array //get the the users array
if (permission_exists('group_member_add')) { if (permission_exists('group_member_add')) {
$sql = "select * from v_users where "; $sql = "select * from v_users where ";
if ($domain_uuid != '') { $sql .= "domain_uuid = :domain_uuid ";
$sql .= "domain_uuid = '".$domain_uuid."' ";
}
else {
$sql .= "domain_uuid = '".$_SESSION['domain_uuid']."' ";
}
$sql .= "order by username "; $sql .= "order by username ";
$prep_statement = $db->prepare(check_sql($sql)); $parameters['domain_uuid'] = is_uuid($domain_uuid) ? $domain_uuid : $_SESSION['domain_uuid'];
$prep_statement->execute(); $database = new database;
$users = $prep_statement->fetchAll(PDO::FETCH_NAMED); $users = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
} }
//get the groups users //get the groups users
@@ -96,17 +94,20 @@
$sql .= "from v_user_groups as ug, v_users as u, v_domains as d "; $sql .= "from v_user_groups as ug, v_users as u, v_domains as d ";
$sql .= "where ug.user_uuid = u.user_uuid "; $sql .= "where ug.user_uuid = u.user_uuid ";
$sql .= "and ug.domain_uuid = d.domain_uuid "; $sql .= "and ug.domain_uuid = d.domain_uuid ";
if ($domain_uuid != '') { if (is_uuid($domain_uuid)) {
$sql .= "and ug.domain_uuid = '".$domain_uuid."' "; $sql .= "and ug.domain_uuid = :domain_uuid_ug ";
$parameters['domain_uuid_ug'] = $domain_uuid;
} }
if (!permission_exists('user_all')) { if (!permission_exists('user_all')) {
$sql .= "and u.domain_uuid = '".$_SESSION['domain_uuid']."' "; $sql .= "and u.domain_uuid = :domain_uuid_u ";
$parameters['domain_uuid_u'] = $_SESSION['domain_uuid'];
} }
$sql .= "and ug.group_uuid = '".$group_uuid."' "; $sql .= "and ug.group_uuid = :group_uuid ";
$sql .= "order by d.domain_name asc, u.username asc "; $sql .= "order by d.domain_name asc, u.username asc ";
$prep_statement = $db->prepare(check_sql($sql)); $parameters['group_uuid'] = $group_uuid;
$prep_statement->execute(); $database = new database;
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $result = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
//include the header //include the header
require_once "resources/header.php"; require_once "resources/header.php";
@@ -158,27 +159,29 @@
$echo .= "</tr>\n"; $echo .= "</tr>\n";
$count = 0; $count = 0;
foreach ($result as &$row) { if (is_array($result) && sizeof($result) != 0) {
$username = $row["username"]; foreach ($result as &$row) {
$user_uuid = $row["user_uuid"]; $username = $row["username"];
$domain_uuid = $row["domain_uuid"]; $user_uuid = $row["user_uuid"];
$group_uuid = $row["group_uuid"]; $domain_uuid = $row["domain_uuid"];
$echo .= "<tr>"; $group_uuid = $row["group_uuid"];
if (permission_exists('user_all')) { $echo .= "<tr>";
$echo .= "<td align='left' class='".$row_style[$c]."' nowrap='nowrap'>".$_SESSION['domains'][$domain_uuid]['domain_name']."</td>\n"; if (permission_exists('user_all')) {
} $echo .= "<td align='left' class='".$row_style[$c]."' nowrap='nowrap'>".$_SESSION['domains'][$domain_uuid]['domain_name']."</td>\n";
$echo .= "<td align='left' class='".$row_style[$c]."' nowrap='nowrap'>".$username."</td>\n"; }
$echo .= "<td class='list_control_icons' style='width: 25px;'>"; $echo .= "<td align='left' class='".$row_style[$c]."' nowrap='nowrap'>".$username."</td>\n";
if (permission_exists('group_member_delete')) { $echo .= "<td class='list_control_icons' style='width: 25px;'>";
$echo .= "<a href='groupmemberdelete.php?user_uuid=".$user_uuid."&group_name=".$group_name."&group_uuid=".$group_uuid."' onclick=\"return confirm('".$text['confirm-delete']."')\" alt='".$text['button-delete']."'>".$v_link_label_delete."</a>"; if (permission_exists('group_member_delete')) {
} $echo .= "<a href='groupmemberdelete.php?user_uuid=".$user_uuid."&group_name=".$group_name."&group_uuid=".$group_uuid."' onclick=\"return confirm('".$text['confirm-delete']."')\" alt='".$text['button-delete']."'>".$v_link_label_delete."</a>";
$echo .= "</td>\n"; }
$echo .= "</tr>\n"; $echo .= "</td>\n";
$echo .= "</tr>\n";
$c = ($c) ? 0 : 1; $c = ($c) ? 0 : 1;
$user_groups[] = $row["user_uuid"]; $user_groups[] = $row["user_uuid"];
$count++; $count++;
}
} }
$echo .= "</table>\n"; $echo .= "</table>\n";
+26 -20
View File
@@ -47,20 +47,24 @@
$document['title'] = $text['title-group_manager']; $document['title'] = $text['title-group_manager'];
if (isset($_REQUEST["change"])) { if (isset($_REQUEST["change"])) {
//get the values from the HTTP POST and save them as PHP variables //get the values from the HTTP POST and save them as PHP variables
$change = check_str($_REQUEST["change"]); $change = $_REQUEST["change"];
$group_uuid = check_str($_REQUEST["group_uuid"]); $group_uuid = $_REQUEST["group_uuid"];
$group_name = check_str($_REQUEST["group_name"]); $group_name = $_REQUEST["group_name"];
$sql = "update v_groups set group_protected = '".$change."' "; $sql = "update v_groups set group_protected = :group_protected ";
$sql .= "where group_uuid = '".$group_uuid."' "; $sql .= "where group_uuid = :group_uuid ";
if (!permission_exists('group_domain')) { if (!permission_exists('group_domain')) {
$sql .= "and ("; $sql .= "and (";
$sql .= " domain_uuid = '".$domain_uuid."' "; $sql .= " domain_uuid = :domain_uuid ";
$sql .= " or domain_uuid is null "; $sql .= " or domain_uuid is null ";
$sql .= ") "; $sql .= ") ";
$parameters['domain_uuid'] = $domain_uuid;
} }
$db->exec(check_sql($sql)); $parameters['group_protected'] = $change;
unset($sql); $parameters['group_uuid'] = $group_uuid;
$database = new database;
$database->execute($sql, $parameters);
unset($sql, $parameters);
message::add($text['message-update']); message::add($text['message-update']);
} }
@@ -68,14 +72,14 @@
//get the groups //get the groups
$sql = "select * from v_groups "; $sql = "select * from v_groups ";
if (!(permission_exists('group_all') && $_GET['show'] == 'all')) { if (!(permission_exists('group_all') && $_GET['show'] == 'all')) {
$sql .= "where domain_uuid = '".$domain_uuid."' "; $sql .= "where domain_uuid = :domain_uuid ";
$sql .= "or domain_uuid is null "; $sql .= "or domain_uuid is null ";
$parameters['domain_uuid'] = $domain_uuid;
} }
$sql .= "order by domain_uuid desc, group_name asc "; $sql .= "order by domain_uuid desc, group_name asc ";
$prep_statement = $db->prepare(check_sql($sql)); $database = new database;
$prep_statement->execute(); $groups = $database->select($sql, $parameters, 'all');
$groups = $prep_statement->fetchAll(PDO::FETCH_NAMED); unset($sql, $parameters);
unset($sql, $prep_statement);
//$system_groups = array('superadmin','admin','user','public','agent'); //$system_groups = array('superadmin','admin','user','public','agent');
$system_groups = array(); $system_groups = array();
@@ -83,16 +87,18 @@
//get group counts //get group counts
$sql = "select group_uuid, count(user_uuid) as group_count from v_user_groups "; $sql = "select group_uuid, count(user_uuid) as group_count from v_user_groups ";
if (!permission_exists('user_all')) { if (!permission_exists('user_all')) {
$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; $sql .= "where domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
} }
$sql .= "group by group_uuid "; $sql .= "group by group_uuid ";
$prep_statement = $db->prepare(check_sql($sql)); $database = new database;
$prep_statement->execute(); $result = $database->select($sql, $parameters, 'all');
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED); if (is_array($result) && sizeof($result) != 0) {
foreach ($result as $row) { foreach ($result as $row) {
$group_counts[$row['group_uuid']] = $row['group_count']; $group_counts[$row['group_uuid']] = $row['group_count'];
}
} }
unset($sql, $prep_statement, $result, $row); unset($sql, $parameters, $result, $row);
//show the content //show the content
echo "<table width='100%' cellpadding='0' cellspacing='0' border='0'>"; echo "<table width='100%' cellpadding='0' cellspacing='0' border='0'>";
+69 -58
View File
@@ -30,7 +30,7 @@
require_once "resources/check_auth.php"; require_once "resources/check_auth.php";
//check permissions //check permissions
if (permission_exists('extension_add')) { if (permission_exists('group_permission_add')) {
//access granted //access granted
} }
else { else {
@@ -46,76 +46,87 @@
require_once "resources/paging.php"; require_once "resources/paging.php";
//set the http get/post variable(s) to a php variable //set the http get/post variable(s) to a php variable
if (isset($_REQUEST["group_name"]) && isset($_REQUEST["new_group_name"])) { if (is_uuid($_REQUEST["id"]) && isset($_REQUEST["new_group_name"])) {
//get HTTP values and set as variables //get HTTP values and set as variables
$group_name = check_str($_REQUEST["group_name"]); $group_uuid = $_REQUEST["id"];
$new_group_name = check_str($_REQUEST["new_group_name"]); $new_group_name = $_REQUEST["new_group_name"];
$new_group_desc = check_str($_REQUEST["new_group_desc"]); $new_group_desc = $_REQUEST["new_group_desc"];
//get the groups data //get the source groups data
$sql = "select * from v_groups "; $sql = "select * from v_groups ";
$sql .= "where domain_uuid = '".$domain_uuid."' "; $sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) ";
$sql .= "or domain_uuid is null "; $sql .= "and group_uuid = :group_uuid ";
$sql .= "and group_name = '".$group_name."' "; $parameters['domain_uuid'] = $domain_uuid;
$prep_statement = $db->prepare(check_sql($sql)); $parameters['group_uuid'] = $group_uuid;
$prep_statement->execute(); $database = new database;
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $row = $database->select($sql, $parameters, 'row');
foreach ($result as &$row) { if (is_array($row) && sizeof($row) != 0) {
$domain_uuid = $row["domain_uuid"]; $domain_uuid = $row["domain_uuid"];
$group_name = $row["group_name"]; $group_name = $row["group_name"];
} }
unset ($prep_statement); unset($sql, $parameters, $row);
//create new group //create new target group
$group_uuid = uuid(); $new_group_uuid = uuid();
$sql = "insert into v_groups "; $array['groups'][0]['group_uuid'] = $new_group_uuid;
$sql .= "( "; if (is_uuid($domain_uuid)) {
$sql .= "group_uuid, "; $array['groups'][0]['domain_uuid'] = $domain_uuid;
$sql .= "group_name, "; }
$sql .= "group_description "; $array['groups'][0]['group_name'] = $new_group_name;
$sql .= ") "; $array['groups'][0]['group_description'] = $new_group_desc;
$sql .= "values "; $database = new database;
$sql .= "( "; $database->app_name = 'groups';
$sql .= "'".$group_uuid."', "; $database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$sql .= "'".$new_group_name."', "; $database->save($array);
$sql .= "'".$new_group_desc."' "; unset($array);
$sql .= ") ";
$db->exec(check_sql($sql));
unset($sql);
//get the group permissions data //get the source group permissions data
$sql = "select * from v_group_permissions "; $sql = "select * from v_group_permissions ";
$sql .= "where group_name = '".$group_name."' "; $sql .= "where group_name = :group_name ";
$prep_statement = $db->prepare(check_sql($sql)); if (is_uuid($domain_uuid)) {
$prep_statement->execute(); $sql .= "and domain_uuid = :domain_uuid ";
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $parameters['domain_uuid'] = $domain_uuid;
foreach ($result as &$row) { }
$domain_uuid = $row["domain_uuid"]; else {
$permission_name = $row["permission_name"]; $sql .= "and domain_uuid is null ";
$group_name = $row["group_name"]; }
$parameters['group_name'] = $group_name;
$database = new database;
$result = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
//copy the group permissions if (is_array($result) && sizeof($result) != 0) {
$group_permission_uuid = uuid(); foreach ($result as $index => &$row) {
$sql = "insert into v_group_permissions "; $domain_uuid = $row["domain_uuid"];
$sql .= "( "; $permission_name = $row["permission_name"];
$sql .= "group_permission_uuid, "; $group_name = $row["group_name"];
$sql .= "permission_name, ";
$sql .= "group_name "; //copy the group permissions
$sql .= ") "; $array['group_permissions'][$index]['group_permission_uuid'] = uuid();
$sql .= "values "; if (is_uuid($domain_uuid)) {
$sql .= "( "; $array['group_permissions'][$index]['domain_uuid'] = $domain_uuid;
$sql .= "'".$group_permission_uuid."', "; }
$sql .= "'".$permission_name."', "; $array['group_permissions'][$index]['permission_name'] = $permission_name;
$sql .= "'".$new_group_name."' "; $array['group_permissions'][$index]['group_name'] = $new_group_name;
$sql .= ") "; $array['group_permissions'][$index]['group_uuid'] = $new_group_uuid;
$db->exec(check_sql($sql)); }
unset($sql); if (is_array($array) && sizeof($array) != 0) {
$p = new permissions;
$p->add('group_permission_add', 'temp');
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->save($array);
unset($array);
$p->delete('group_permission_add', 'temp');
message::add($text['message-copy']);
}
} }
unset ($prep_statement); unset ($prep_statement);
//redirect the user
message::add($text['message-copy']);
} }
//redirect //redirect