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

View File

@ -58,65 +58,64 @@
}
//if there are no permissions listed in v_group_permissions then set the default permissions
$sql = "select count(*) as count from v_group_permissions ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$group_permission_count = $row["count"];
break; //limit to 1 row
}
unset ($prep_statement);
$sql = "select count(*) from v_group_permissions ";
$database = new database;
$group_permission_count = $database->select($sql, null, 'column');
unset($sql);
if ($group_permission_count == 0) {
//no permissions found add the defaults
foreach($apps as $app) {
foreach ($app['permissions'] as $row) {
foreach ($row['groups'] as $group) {
foreach ($row['groups'] as $index => $group) {
//add the record
$sql = "insert into v_group_permissions ";
$sql .= "(";
$sql .= "group_permission_uuid, ";
$sql .= "permission_name, ";
$sql .= "group_name ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$sql .= "'".uuid()."', ";
$sql .= "'".$row['name']."', ";
$sql .= "'".$group."' ";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
$array['group_permissions'][$index]['group_permission_uuid'] = uuid();
$array['group_permissions'][$index]['permission_name'] = $row['name'];
$array['group_permissions'][$index]['group_name'] = $group;
}
if (is_array($array) && sizeof($array) != 0) {
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->save($array);
unset($array);
}
}
}
}
//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 .= "where group_uuid = '".$group_uuid."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$sql .= "where group_uuid = :group_uuid ";
$parameters['group_uuid'] = $group_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && sizeof($row) != 0) {
$domain_uuid = $row["domain_uuid"];
$group_name = $row["group_name"];
break; //limit to 1 row
}
unset ($prep_statement);
unset($sql, $parameters, $row);
//get the permissions assigned to this group
$sql = " select * from v_group_permissions ";
$sql .= "where group_name = '$group_name' ";
$sql .= "and domain_uuid ".(($domain_uuid != '') ? " = '".$domain_uuid."' " : " is null ");
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$permission_name = $row["permission_name"];
$permissions_db[$permission_name] = "true";
$sql = "select * 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 &$row) {
$permissions_db[$row["permission_name"]] = "true";
}
}
unset($sql, $parameters, $result, $row);
//show the db checklist
//echo "<pre>";
@ -175,52 +174,68 @@
}
if ($permissions_db_checklist[$permission] == "true" && $permissions_form_checklist[$permission] == "false") {
//delete the record
$sql = "delete from v_group_permissions ";
$sql .= "where group_name = '$group_name' ";
$sql .= "and permission_name = '$permission' ";
$db->exec(check_sql($sql));
unset($sql);
$array['group_permissions'][0]['group_name'] = $group_name;
$array['group_permissions'][0]['permission_name'] = $permission;
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->delete($array);
unset($array);
foreach($apps as $app) {
foreach ($app['permissions'] as $row) {
if ($row['name'] == $permission) {
$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);
$array['menu_item_groups'][0]['menu_item_uuid'] = $row['menu']['uuid'];
$array['menu_item_groups'][0]['group_name'] = $group_name;
$array['menu_item_groups'][0]['menu_uuid'] = 'b4750c3f-2a86-b00d-b7d0-345c14eca286';
$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);
$p = new permissions;
$p->add('menu_item_group_delete', 'temp');
$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 .= "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);
$sql .= "and i.menu_item_parent_uuid = :menu_item_parent_uuid ";
$sql .= "and g.group_name = :group_name ";
$parameters['menu_item_parent_uuid'] = $menu_item_parent_uuid;
$parameters['group_name'] = $group_name;
$database = new database;
$result_count = $database->select($sql, $parameters, 'column');
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);
$array['menu_item_groups'][0]['menu_item_uuid'] = $menu_item_parent_uuid;
$array['menu_item_groups'][0]['group_name'] = $group_name;
$array['menu_item_groups'][0]['menu_uuid'] = 'b4750c3f-2a86-b00d-b7d0-345c14eca286';
$p = new permissions;
$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") {
//add the record
$sql = "insert into v_group_permissions ";
$sql .= "(";
$sql .= "group_permission_uuid, ";
if ($domain_uuid != '') {
$sql .= "domain_uuid, ";
$array['group_permissions'][0]['group_permission_uuid'] = uuid();
if (is_uuid($domain_uuid)) {
$array['group_permissions'][0]['domain_uuid'] = $domain_uuid;
}
$sql .= "permission_name, ";
$sql .= "group_name ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$sql .= "'".uuid()."', ";
if ($domain_uuid != '') {
$sql .= "'".$domain_uuid."', ";
}
$sql .= "'$permission', ";
$sql .= "'$group_name' ";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
$array['group_permissions'][0]['permission_name'] = $permission;
$array['group_permissions'][0]['group_name'] = $group_name;
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->save($array);
unset($array);
foreach($apps as $app) {
foreach ($app['permissions'] as $row) {
if ($row['name'] == $permission) {
$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);
$array['menu_item_groups'][0]['menu_uuid'] = 'b4750c3f-2a86-b00d-b7d0-345c14eca286';
$array['menu_item_groups'][0]['menu_item_uuid'] = $row['menu']['uuid'];
$array['menu_item_groups'][0]['group_name'] = $group_name;
$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);
$p = new permissions;
$p->add('menu_item_group_add', 'temp');
$sql = " select * from v_menu_item_groups ";
$sql .= "where menu_item_uuid = '$menu_item_parent_uuid' ";
$sql .= "and group_name = '$group_name' ";
$database = new database;
$database->app_name = 'groups';
$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' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$result_count = count($result);
$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_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) {
$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);
$array['menu_item_groups'][0]['menu_uuid'] = 'b4750c3f-2a86-b00d-b7d0-345c14eca286';
$array['menu_item_groups'][0]['menu_item_uuid'] = $menu_item_parent_uuid;
$array['menu_item_groups'][0]['group_name'] = $group_name;
$p = new permissions;
$p->add('menu_item_group_add', 'temp');
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->save($array);
unset($array);
$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 " new_group_desc = prompt('".$text['message-new_group_description']."');\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";
@ -427,7 +432,6 @@
} //end foreach
echo "<br>";
unset($sql, $result, $row_count);
echo "</form>\n";

View File

@ -45,55 +45,42 @@
//get the http values and set them as variables
if (count($_POST) > 0) {
//set the variables
$group_name = check_str($_POST["group_name"]);
$group_name = $_POST["group_name"];
if (permission_exists('group_domain')) {
$domain_uuid = check_str($_POST["domain_uuid"]);
$domain_uuid = $_POST["domain_uuid"];
}
else {
$domain_uuid = $_SESSION['domain_uuid'];
}
$group_description = check_str($_POST["group_description"]);
$group_description = $_POST["group_description"];
//check for global/domain duplicates
$sql = "select count(*) as num_rows from v_groups where ";
$sql .= "group_name = '".$group_name."' ";
$sql .= "and domain_uuid ".(($domain_uuid != '') ? " = '".$domain_uuid."' " : " is null ");
$prep_statement = $db->prepare($sql);
if ($prep_statement) {
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
$group_exists = ($row['num_rows'] > 0) ? true : false;
$sql = "select count(*) from v_groups where ";
$sql .= "group_name = :group_name ";
if (is_uuid($domain_uuid)) {
$sql .= "and domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $domain_uuid;
}
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
if (!$group_exists) {
$sql = "insert into v_groups ";
$sql .= "(";
$sql .= "group_uuid, ";
$sql .= "domain_uuid, ";
$sql .= "group_name, ";
$sql .= "group_description ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$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
}
$array['groups'][0]['group_uuid'] = uuid();
$array['groups'][0]['domain_uuid'] = is_uuid($domain_uuid) ? $domain_uuid : null;
$array['groups'][0]['group_name'] = $group_name;
$array['groups'][0]['group_description'] = $group_description;
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->save($array);
unset($array);
message::add($text['message-add']);
header("Location: groups.php");

View File

@ -42,57 +42,97 @@
$language = new text;
$text = $language->get();
//get the http value and set as a variable
$group_uuid = check_str($_GET["id"]);
//validate the uuid
if (is_uuid($group_uuid)) {
if (is_uuid($_GET["id"])) {
$group_uuid = $_GET["id"];
//get the group 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')) {
$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));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$parameters['group_uuid'] = $group_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
unset($sql, $parameters);
if (is_array($row) && sizeof($row) != 0) {
$domain_uuid = $row["domain_uuid"];
$group_name = $row["group_name"];
}
unset ($prep_statement);
//delete the user groups
$sql = "delete from v_user_groups ";
$sql .= "where group_uuid = '".$group_uuid."' ";
if (!$db->exec($sql)) {
$error = $db->errorInfo();
print_r($error);
}
//delete the user groups
$array['user_groups'][0]['group_uuid'] = $group_uuid;
//delete the group permissions
if (strlen($group_name) > 0) {
$sql = "delete from v_group_permissions ";
$sql .= "where group_name = '".$group_name."' ";
$sql .= "and domain_uuid ".(($domain_uuid != '') ? " = '".$domain_uuid."' " : " is null ");
if (!$db->exec($sql)) {
$error = $db->errorInfo();
print_r($error);
}
}
$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');
//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
message::add($text['message-delete']);
header("Location: groups.php");
?>

View File

@ -45,128 +45,176 @@
//process update
if (count($_POST) > 0) {
//set the variables
$group_uuid = check_str($_POST['group_uuid']);
$group_name = check_str($_POST['group_name']);
$group_name_previous = check_str($_POST['group_name_previous']);
$domain_uuid = check_str($_POST["domain_uuid"]);
$domain_uuid_previous = check_str($_POST["domain_uuid_previous"]);
$group_description = check_str($_POST["group_description"]);
$group_uuid = $_POST['group_uuid'];
$group_name = $_POST['group_name'];
$group_name_previous = $_POST['group_name_previous'];
$domain_uuid = $_POST["domain_uuid"];
$domain_uuid_previous = $_POST["domain_uuid_previous"];
$group_description = $_POST["group_description"];
//check for global/domain duplicates
$sql = "select count(*) as num_rows from v_groups where ";
$sql .= "group_name = '".$group_name."' ";
$sql .= "and group_uuid <> '".$group_uuid."' ";
$sql .= "and domain_uuid ".(($domain_uuid != '') ? " = '".$domain_uuid."' " : " is null ");
$prep_statement = $db->prepare($sql);
if ($prep_statement) {
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
$group_exists = ($row['num_rows'] > 0) ? true : false;
$sql = "select count(*) from v_groups where ";
$sql .= "group_name = :group_name ";
$sql .= "and group_uuid <> :group_uuid ";
if (is_uuid($domain_uuid)) {
$sql .= "and domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $domain_uuid;
}
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
if (!$group_exists) {
$sql = "update v_groups ";
$sql .= "set ";
$sql .= "group_name = '".$group_name."', ";
$sql .= "domain_uuid = ".(($domain_uuid != '') ? "'".$domain_uuid."'" : "null").", ";
$sql .= "group_description = '".$group_description."' ";
$sql .= "where group_uuid = '".$group_uuid."' ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
echo "<pre>".print_r($error, true)."</pre>";
exit;
}
$array['groups'][0]['group_uuid'] = $group_uuid;
$array['groups'][0]['domain_uuid'] = is_uuid($domain_uuid) ? $domain_uuid : null;
$array['groups'][0]['group_name'] = $group_name;
$array['groups'][0]['group_description'] = $group_description;
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->save($array);
unset($array);
//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
$sql = "delete from v_user_groups where group_uuid = '".$group_uuid."' and domain_uuid <> '".$domain_uuid."' ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit;
}
$sql = "delete from v_user_groups where group_uuid = :group_uuid and domain_uuid <> :domain_uuid ";
$parameters['group_uuid'] = $group_uuid;
$parameters['domain_uuid'] = $domain_uuid;
$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
$sql = "update v_group_permissions set domain_uuid = '".$domain_uuid."' where group_name = '".$group_name_previous."' and domain_uuid is null ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit;
}
$sql = "update v_group_permissions set domain_uuid = :domain_uuid where group_name = :group_name and domain_uuid is null ";
$parameters['domain_uuid'] = $domain_uuid;
$parameters['group_name'] = $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
if ($group_name != $group_name_previous && $group_name != '') {
//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."' ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit;
}
$sql = "update v_user_groups set group_name = :group_name_new where group_uuid = :group_uuid and group_name = :group_name_old ";
$parameters['group_name_new'] = $group_name;
$parameters['group_uuid'] = $group_uuid;
$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
$sql = "update v_group_permissions set group_name = '".$group_name."' where domain_uuid = '".$domain_uuid."' and group_name = '".$group_name_previous."' ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit;
}
$sql = "update v_group_permissions set group_name = :group_name_new where domain_uuid = :domain_uuid and group_name = :group_name_old ";
$parameters['group_name_new'] = $group_name;
$parameters['domain_uuid'] = $domain_uuid;
$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
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
$sql = "delete from v_user_groups where group_uuid = '".$group_uuid."' and domain_uuid = '".$domain_uuid_previous."' ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit;
}
$array['user_groups'][0]['group_uuid'] = $group_uuid;
$array['user_groups'][0]['domain_uuid'] = $domain_uuid_previous;
$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
$sql = "update v_group_permissions set domain_uuid = '".$domain_uuid."' where group_name = '".$group_name_previous."' and domain_uuid = '".$domain_uuid_previous."' ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit;
}
$sql = "update v_group_permissions set domain_uuid = :domain_uuid_new where group_name = :group_name and domain_uuid = :domain_uuid_old ";
$parameters['domain_uuid_new'] = $domain_uuid;
$parameters['group_name'] = $group_name_previous;
$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
if ($group_name != $group_name_previous && $group_name != '') {
//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."' ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit;
}
$sql = "update v_user_groups set group_name = :group_name_new where group_uuid = :group_uuid and group_name = :group_name_old ";
$parameters['group_name_new'] = $group_name;
$parameters['group_uuid'] = $group_uuid;
$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
$sql = "update v_group_permissions set group_name = '".$group_name."' where domain_uuid = '".$domain_uuid."' and group_name = '".$group_name_previous."' ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit;
}
$sql = "update v_group_permissions set group_name = :group_name_new where domain_uuid = :domain_uuid and group_name = :group_name_old ";
$parameters['group_name_new'] = $group_name;
$parameters['domain_uuid'] = $domain_uuid;
$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
else if ($domain_uuid_previous != '' && $domain_uuid == '') {
else if (is_uuid($domain_uuid_previous) && !is_uuid($domain_uuid)) {
//change group name
if ($group_name != $group_name_previous && $group_name != '') {
//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."' ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit;
}
$sql = "update v_user_groups set group_name = :group_name_new where group_uuid = :group_uuid and group_name = :group_name_old ";
$parameters['group_name_new'] = $group_name;
$parameters['group_uuid'] = $group_uuid;
$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
$sql = "update v_group_permissions set group_name = '".$group_name."' where domain_uuid = '".$domain_uuid_previous."' and group_name = '".$group_name_previous."' ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit;
}
$sql = "update v_group_permissions set group_name = :group_name_new where domain_uuid = :domain_uuid and group_name = :group_name_old ";
$parameters['group_name_new'] = $group_name;
$parameters['domain_uuid'] = $domain_uuid_previous;
$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
$sql = "update v_group_permissions set domain_uuid = null where group_name = '".$group_name."' and domain_uuid = '".$domain_uuid_previous."' ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit;
}
$sql = "update v_group_permissions set domain_uuid = null where group_name = :group_name and domain_uuid = :domain_uuid ";
$parameters['group_name'] = $group_name;
$parameters['domain_uuid'] = $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);
}
//domain didn't change, but name may still
@ -174,17 +222,32 @@
//change group name
if ($group_name != $group_name_previous && $group_name != '') {
//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."' ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit;
}
$sql = "update v_user_groups set group_name = :group_name_new where group_uuid = :group_uuid and group_name = :group_name_old ";
$parameters['group_name_new'] = $group_name;
$parameters['group_uuid'] = $group_uuid;
$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
$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."' ";
if (!$db->exec(check_sql($sql))) {
$error = $db->errorInfo();
//echo "<pre>".print_r($error, true)."</pre>"; exit;
$sql = "update v_group_permissions set group_name = :group_name_new ";
if (is_uuid($domain_uuid)) {
$sql .= "where domain_uuid = :domain_uuid ";
$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
$group_uuid = check_str($_REQUEST['id']);
if ($group_uuid != '') {
$group_uuid = $_REQUEST['id'];
if (is_uuid($group_uuid)) {
$sql = "select * from v_groups where ";
$sql .= "group_uuid = '".$group_uuid."' ";
$prep_statement = $db->prepare($sql);
if ($prep_statement) {
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
$sql .= "group_uuid = :group_uuid ";
$parameters['group_uuid'] = $group_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && sizeof($row) != 0) {
$group_name = $row['group_name'];
$domain_uuid = $row['domain_uuid'];
$group_description = $row['group_description'];
}
unset($sql, $parameters, $row);
}
//include the header

View File

@ -45,43 +45,34 @@
}
//get the http values and set them as variables
$domain_uuid = check_str($_POST["domain_uuid"]);
$group_uuid = check_str($_POST["group_uuid"]);
$group_name = check_str($_POST["group_name"]);
$user_uuid = check_str($_POST["user_uuid"]);
$domain_uuid = $_POST["domain_uuid"];
$group_uuid = $_POST["group_uuid"];
$group_name = $_POST["group_name"];
$user_uuid = $_POST["user_uuid"];
//add the user to the group
if (is_uuid($user_uuid) && is_uuid($group_uuid) && strlen($group_name) > 0) {
$sql = "insert into v_user_groups ";
$sql .= "(";
$sql .= "user_group_uuid, ";
$sql .= "domain_uuid, ";
$sql .= "group_uuid, ";
$sql .= "group_name, ";
$sql .= "user_uuid ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$sql .= "'".uuid()."', ";
$sql .= "'".$domain_uuid."', ";
$sql .= "'".$group_uuid."', ";
$sql .= "'".$group_name."', ";
$sql .= "'".$user_uuid."' ";
$sql .= ")";
if (!$db->exec($sql)) {
$info = $db->errorInfo();
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"]);
}
$array['user_groups'][0]['user_group_uuid'] = uuid();
$array['user_groups'][0]['domain_uuid'] = $domain_uuid;
$array['user_groups'][0]['group_uuid'] = $group_uuid;
$array['user_groups'][0]['group_name'] = $group_name;
$array['user_groups'][0]['user_uuid'] = $user_uuid;
$p = new permissions;
$p->add('user_group_add', 'temp');
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->save($array);
unset($array);
$p->delete('user_group_add', 'temp');
message::add($text['message-update']);
}
//redirect the user
message::add($text['message-update']);
header("Location: groupmembers.php?group_uuid=".$group_uuid."&group_name=".$group_name);
?>

View File

@ -45,23 +45,23 @@
}
//get the http values and set them as variables
$group_name = check_str($_GET["group_name"]);
$user_uuid = check_str($_GET["user_uuid"]);
$group_uuid = check_str($_GET["group_uuid"]);
$group_name = $_GET["group_name"];
$user_uuid = $_GET["user_uuid"];
$group_uuid = $_GET["group_uuid"];
//delete the group membership
$sql_delete = "delete from v_user_groups ";
$sql_delete .= "where user_uuid = '".$user_uuid."' ";
$sql_delete .= "and group_uuid = '".$group_uuid."' ";
if (!$db->exec($sql_delete)) {
$info = $db->errorInfo();
echo "<pre>".print_r($info, true)."</pre>";
exit;
}
else {
//$log_type = 'group'; $log_status='remove'; $log_add_user=$_SESSION["username"]; $log_desc= "username: ".$username." removed from group: ".$group_name;
//log_add($db, $log_type, $log_status, $log_desc, $log_add_user, $_SERVER["REMOTE_ADDR"]);
}
$p = new permissions;
$p->add('user_group_delete', 'temp');
$array['user_groups'][0]['user_uuid'] = $user_uuid;
$array['user_groups'][0]['group_uuid'] = $group_uuid;
$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');
//redirect the user
message::add($text['message-delete']);

View File

@ -49,46 +49,44 @@
$text = $language->get();
//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 .= "where group_uuid = '".$group_uuid."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$sql .= "where group_uuid = :group_uuid ";
$parameters['group_uuid'] = $group_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && sizeof($row) != 0) {
$domain_uuid = $row["domain_uuid"];
$group_name = $row["group_name"];
break; //limit to 1 row
}
unset ($prep_statement);
unset($sql, $parameters, $row);
//define the if group members function
function is_group_member($group_uuid, $user_uuid) {
global $db, $domain_uuid;
$sql = "select * from v_user_groups ";
$sql .= "where user_uuid = '".$user_uuid."' ";
$sql .= "and group_uuid = '".$group_uuid."' ";
$sql .= "and domain_uuid = '".(($domain_uuid != '') ? $domain_uuid : $_SESSION['domain_uuid'])."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
if (count($prep_statement->fetchAll(PDO::FETCH_NAMED)) == 0) { return true; } else { return false; }
unset ($sql, $prep_statement);
global $domain_uuid;
$sql = "select count(*) from v_user_groups ";
$sql .= "where user_uuid = :user_uuid ";
$sql .= "and group_uuid = :group_uuid ";
$sql .= "and domain_uuid = :domain_uuid ";
$parameters['user_uuid'] = $user_uuid;
$parameters['group_uuid'] = $group_uuid;
$parameters['domain_uuid'] = is_uuid($domain_uuid) ? $domain_uuid : $_SESSION['domain_uuid'];
$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);
//get the the users array
if (permission_exists('group_member_add')) {
$sql = "select * from v_users where ";
if ($domain_uuid != '') {
$sql .= "domain_uuid = '".$domain_uuid."' ";
}
else {
$sql .= "domain_uuid = '".$_SESSION['domain_uuid']."' ";
}
$sql .= "domain_uuid = :domain_uuid ";
$sql .= "order by username ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$users = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$parameters['domain_uuid'] = is_uuid($domain_uuid) ? $domain_uuid : $_SESSION['domain_uuid'];
$database = new database;
$users = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
}
//get the groups users
@ -96,17 +94,20 @@
$sql .= "from v_user_groups as ug, v_users as u, v_domains as d ";
$sql .= "where ug.user_uuid = u.user_uuid ";
$sql .= "and ug.domain_uuid = d.domain_uuid ";
if ($domain_uuid != '') {
$sql .= "and ug.domain_uuid = '".$domain_uuid."' ";
if (is_uuid($domain_uuid)) {
$sql .= "and ug.domain_uuid = :domain_uuid_ug ";
$parameters['domain_uuid_ug'] = $domain_uuid;
}
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 ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$parameters['group_uuid'] = $group_uuid;
$database = new database;
$result = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
//include the header
require_once "resources/header.php";
@ -158,27 +159,29 @@
$echo .= "</tr>\n";
$count = 0;
foreach ($result as &$row) {
$username = $row["username"];
$user_uuid = $row["user_uuid"];
$domain_uuid = $row["domain_uuid"];
$group_uuid = $row["group_uuid"];
$echo .= "<tr>";
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;'>";
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";
if (is_array($result) && sizeof($result) != 0) {
foreach ($result as &$row) {
$username = $row["username"];
$user_uuid = $row["user_uuid"];
$domain_uuid = $row["domain_uuid"];
$group_uuid = $row["group_uuid"];
$echo .= "<tr>";
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;'>";
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";
$c = ($c) ? 0 : 1;
$c = ($c) ? 0 : 1;
$user_groups[] = $row["user_uuid"];
$count++;
$user_groups[] = $row["user_uuid"];
$count++;
}
}
$echo .= "</table>\n";

View File

@ -47,20 +47,24 @@
$document['title'] = $text['title-group_manager'];
if (isset($_REQUEST["change"])) {
//get the values from the HTTP POST and save them as PHP variables
$change = check_str($_REQUEST["change"]);
$group_uuid = check_str($_REQUEST["group_uuid"]);
$group_name = check_str($_REQUEST["group_name"]);
$change = $_REQUEST["change"];
$group_uuid = $_REQUEST["group_uuid"];
$group_name = $_REQUEST["group_name"];
$sql = "update v_groups set group_protected = '".$change."' ";
$sql .= "where group_uuid = '".$group_uuid."' ";
$sql = "update v_groups set group_protected = :group_protected ";
$sql .= "where group_uuid = :group_uuid ";
if (!permission_exists('group_domain')) {
$sql .= "and (";
$sql .= " domain_uuid = '".$domain_uuid."' ";
$sql .= " domain_uuid = :domain_uuid ";
$sql .= " or domain_uuid is null ";
$sql .= ") ";
$parameters['domain_uuid'] = $domain_uuid;
}
$db->exec(check_sql($sql));
unset($sql);
$parameters['group_protected'] = $change;
$parameters['group_uuid'] = $group_uuid;
$database = new database;
$database->execute($sql, $parameters);
unset($sql, $parameters);
message::add($text['message-update']);
}
@ -68,14 +72,14 @@
//get the groups
$sql = "select * from v_groups ";
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 ";
$parameters['domain_uuid'] = $domain_uuid;
}
$sql .= "order by domain_uuid desc, group_name asc ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$groups = $prep_statement->fetchAll(PDO::FETCH_NAMED);
unset($sql, $prep_statement);
$database = new database;
$groups = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
//$system_groups = array('superadmin','admin','user','public','agent');
$system_groups = array();
@ -83,16 +87,18 @@
//get group counts
$sql = "select group_uuid, count(user_uuid) as group_count from v_user_groups ";
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 ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as $row) {
$group_counts[$row['group_uuid']] = $row['group_count'];
$database = new database;
$result = $database->select($sql, $parameters, 'all');
if (is_array($result) && sizeof($result) != 0) {
foreach ($result as $row) {
$group_counts[$row['group_uuid']] = $row['group_count'];
}
}
unset($sql, $prep_statement, $result, $row);
unset($sql, $parameters, $result, $row);
//show the content
echo "<table width='100%' cellpadding='0' cellspacing='0' border='0'>";

View File

@ -30,7 +30,7 @@
require_once "resources/check_auth.php";
//check permissions
if (permission_exists('extension_add')) {
if (permission_exists('group_permission_add')) {
//access granted
}
else {
@ -46,76 +46,87 @@
require_once "resources/paging.php";
//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
$group_name = check_str($_REQUEST["group_name"]);
$new_group_name = check_str($_REQUEST["new_group_name"]);
$new_group_desc = check_str($_REQUEST["new_group_desc"]);
$group_uuid = $_REQUEST["id"];
$new_group_name = $_REQUEST["new_group_name"];
$new_group_desc = $_REQUEST["new_group_desc"];
//get the groups data
//get the source groups data
$sql = "select * from v_groups ";
$sql .= "where domain_uuid = '".$domain_uuid."' ";
$sql .= "or domain_uuid is null ";
$sql .= "and group_name = '".$group_name."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) ";
$sql .= "and group_uuid = :group_uuid ";
$parameters['domain_uuid'] = $domain_uuid;
$parameters['group_uuid'] = $group_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && sizeof($row) != 0) {
$domain_uuid = $row["domain_uuid"];
$group_name = $row["group_name"];
}
unset ($prep_statement);
unset($sql, $parameters, $row);
//create new group
$group_uuid = uuid();
$sql = "insert into v_groups ";
$sql .= "( ";
$sql .= "group_uuid, ";
$sql .= "group_name, ";
$sql .= "group_description ";
$sql .= ") ";
$sql .= "values ";
$sql .= "( ";
$sql .= "'".$group_uuid."', ";
$sql .= "'".$new_group_name."', ";
$sql .= "'".$new_group_desc."' ";
$sql .= ") ";
$db->exec(check_sql($sql));
unset($sql);
//create new target group
$new_group_uuid = uuid();
$array['groups'][0]['group_uuid'] = $new_group_uuid;
if (is_uuid($domain_uuid)) {
$array['groups'][0]['domain_uuid'] = $domain_uuid;
}
$array['groups'][0]['group_name'] = $new_group_name;
$array['groups'][0]['group_description'] = $new_group_desc;
$database = new database;
$database->app_name = 'groups';
$database->app_uuid = '2caf27b0-540a-43d5-bb9b-c9871a1e4f84';
$database->save($array);
unset($array);
//get the group permissions data
//get the source group permissions data
$sql = "select * from v_group_permissions ";
$sql .= "where group_name = '".$group_name."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$domain_uuid = $row["domain_uuid"];
$permission_name = $row["permission_name"];
$group_name = $row["group_name"];
$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');
unset($sql, $parameters);
//copy the group permissions
$group_permission_uuid = uuid();
$sql = "insert into v_group_permissions ";
$sql .= "( ";
$sql .= "group_permission_uuid, ";
$sql .= "permission_name, ";
$sql .= "group_name ";
$sql .= ") ";
$sql .= "values ";
$sql .= "( ";
$sql .= "'".$group_permission_uuid."', ";
$sql .= "'".$permission_name."', ";
$sql .= "'".$new_group_name."' ";
$sql .= ") ";
$db->exec(check_sql($sql));
unset($sql);
if (is_array($result) && sizeof($result) != 0) {
foreach ($result as $index => &$row) {
$domain_uuid = $row["domain_uuid"];
$permission_name = $row["permission_name"];
$group_name = $row["group_name"];
//copy the group permissions
$array['group_permissions'][$index]['group_permission_uuid'] = uuid();
if (is_uuid($domain_uuid)) {
$array['group_permissions'][$index]['domain_uuid'] = $domain_uuid;
}
$array['group_permissions'][$index]['permission_name'] = $permission_name;
$array['group_permissions'][$index]['group_name'] = $new_group_name;
$array['group_permissions'][$index]['group_uuid'] = $new_group_uuid;
}
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);
//redirect the user
message::add($text['message-copy']);
}
//redirect