diff --git a/core/users/app_defaults.php b/core/users/app_defaults.php index 2d6a878c5c..b37a5f1482 100644 --- a/core/users/app_defaults.php +++ b/core/users/app_defaults.php @@ -32,25 +32,33 @@ if ($domains_processed == 1) { //create the user view combines username, organization, contact first and last name $db->exec("DROP VIEW view_users;"); - $sql = "CREATE VIEW view_users AS (\n"; + $sql = "CREATE VIEW view_users AS ( \n"; $sql .= " select u.domain_uuid, u.user_uuid, d.domain_name, u.username, u.user_enabled, u.add_date, \n"; - $sql .= " c.contact_uuid, c.contact_organization, c.contact_name_given, c.contact_name_family,\n"; - $sql .= " (\n"; - $sql .= " select\n"; - $sql .= " string_agg(g.group_name, ', ')\n"; - $sql .= " from\n"; - $sql .= " v_user_groups as ug,\n"; - $sql .= " v_groups as g\n"; - $sql .= " where\n"; - $sql .= " ug.group_uuid = g.group_uuid\n"; - $sql .= " and u.user_uuid = ug.user_uuid\n"; - $sql .= " ) AS groups\n"; - $sql .= " from v_contacts as c\n"; - $sql .= " right join v_users u on u.contact_uuid = c.contact_uuid\n"; - $sql .= " inner join v_domains as d on d.domain_uuid = u.domain_uuid\n"; - $sql .= " where 1 = 1\n"; - $sql .= " order by u.username asc\n"; - $sql .= ");\n"; + $sql .= " c.contact_uuid, c.contact_organization, c.contact_name_given, c.contact_name_family, \n"; + $sql .= " ( \n"; + $sql .= " select \n"; + $sql .= " string_agg(g.group_name, ', ') \n"; + $sql .= " from \n"; + $sql .= " v_user_groups as ug, \n"; + $sql .= " v_groups as g \n"; + $sql .= " where \n"; + $sql .= " ug.group_uuid = g.group_uuid \n"; + $sql .= " and u.user_uuid = ug.user_uuid \n"; + $sql .= " ) AS groups, \n"; + $sql .= " ( \n"; + $sql .= " SELECT group_level \n"; + $sql .= " FROM v_user_groups ug, v_groups g \n"; + $sql .= " WHERE (ug.group_uuid = g.group_uuid) \n"; + $sql .= " AND (u.user_uuid = ug.user_uuid) \n"; + $sql .= " ORDER BY group_level DESC \n"; + $sql .= " LIMIT 1 \n"; + $sql .= " ) AS group_level \n"; + $sql .= " from v_contacts as c \n"; + $sql .= " right join v_users u on u.contact_uuid = c.contact_uuid \n"; + $sql .= " inner join v_domains as d on d.domain_uuid = u.domain_uuid \n"; + $sql .= " where 1 = 1 \n"; + $sql .= " order by u.username asc \n"; + $sql .= "); \n"; $database = new database; $database->execute($sql, null); unset($sql);