From 6062f228195e875b277096355fbfa82f4de95d5b Mon Sep 17 00:00:00 2001 From: Nate Jones Date: Sat, 9 May 2015 20:30:35 +0000 Subject: [PATCH] User Edit: Include domain for non-global groups in list and select. --- core/users/usersupdate.php | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/core/users/usersupdate.php b/core/users/usersupdate.php index 6db2fc4944..c4c1ed1da3 100644 --- a/core/users/usersupdate.php +++ b/core/users/usersupdate.php @@ -388,11 +388,6 @@ if (count($_POST) > 0 && $_POST["persistform"] != "1") { $user_status = $row["user_status"]; } - //get the groups the user is a member of - //group_members function defined in config.php - $group_members = group_members($db, $user_uuid); - - //include the header require_once "resources/header.php"; $document['title'] = $text['title-user_edit']; @@ -497,9 +492,22 @@ if (count($_POST) > 0 && $_POST["persistform"] != "1") { echo " ".$text['label-groups'].""; echo " "; - $sql = "SELECT * FROM v_group_users "; - $sql .= "where domain_uuid=:domain_uuid "; - $sql .= "and user_uuid=:user_uuid "; + $sql = "select "; + $sql .= " gu.*, g.domain_uuid as group_domain_uuid "; + $sql .= "from "; + $sql .= " v_group_users as gu, "; + $sql .= " v_groups as g "; + $sql .= "where "; + $sql .= " gu.group_uuid = g.group_uuid "; + $sql .= " and ("; + $sql .= " g.domain_uuid = :domain_uuid "; + $sql .= " or g.domain_uuid is null "; + $sql .= " ) "; + $sql .= " and gu.domain_uuid = :domain_uuid "; + $sql .= " and gu.user_uuid = :user_uuid "; + $sql .= "order by "; + $sql .= " g.domain_uuid desc, "; + $sql .= " g.group_name asc "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->bindParam(':domain_uuid', $domain_uuid); $prep_statement->bindParam(':user_uuid', $user_uuid); @@ -507,13 +515,15 @@ if (count($_POST) > 0 && $_POST["persistform"] != "1") { $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $result_count = count($result); if ($result_count > 0) { - echo "\n"; + echo "
\n"; foreach($result as $field) { if (strlen($field['group_name']) > 0) { echo "\n"; - echo " \n"; + echo " \n"; if ($result_count > 1) { - echo "
".$field['group_name'].""; + echo ($field['group_domain_uuid'] == '') ? "".$field['group_name']."" : $field['group_name']."@".$_SESSION['domains'][$field['group_domain_uuid']]['domain_name']; + echo " \n"; + echo " \n"; if (permission_exists('group_member_delete') || if_group("superadmin")) { echo " $v_link_label_delete\n"; } @@ -527,13 +537,13 @@ if (count($_POST) > 0 && $_POST["persistform"] != "1") { } unset($sql, $prep_statement, $result, $result_count); - $sql = "SELECT * FROM v_groups "; + $sql = "select * from v_groups "; $sql .= "where domain_uuid = '".$domain_uuid."' "; $sql .= "or domain_uuid is null "; if (sizeof($assigned_groups) > 0) { $sql .= "and group_uuid not in ('".implode("','",$assigned_groups)."') "; } - $sql .= "order by group_name asc "; + $sql .= "order by domain_uuid desc, group_name asc "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); @@ -546,7 +556,7 @@ if (count($_POST) > 0 && $_POST["persistform"] != "1") { if ($field['group_name'] == "superadmin" && !if_group("superadmin")) { continue; } //only show the superadmin group to other superadmins if ($field['group_name'] == "admin" && (!if_group("superadmin") && !if_group("admin") )) { continue; } //only show the admin group to other admins if (!in_array($field["group_uuid"], $assigned_groups)) { - echo "\n"; + echo "\n"; } } echo "";