Skip to content

Commit 8e2430d

Browse files
committed
alter query
1 parent 317537c commit 8e2430d

File tree

3 files changed

+37
-49
lines changed

3 files changed

+37
-49
lines changed

coderd/database/queries.sql.go

Lines changed: 15 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/workspaceagents.sql

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -199,31 +199,10 @@ SELECT
199199
users.username AS owner_name,
200200
users.status AS owner_status,
201201
array_cat(
202-
-- All users are members
203202
array_append(users.rbac_roles, 'member'),
204-
(
205-
SELECT
206-
array_agg(org_roles)
207-
FROM
208-
organization_members,
209-
-- All org_members get the org-member role for their orgs
210-
unnest(
211-
array_append(roles, 'organization-member:' || organization_members.organization_id::text)
212-
) AS org_roles
213-
WHERE
214-
user_id = users.id
215-
)
216-
) :: text[] AS owner_roles,
217-
(
218-
SELECT
219-
array_agg(
220-
group_members.group_id :: text
221-
)
222-
FROM
223-
group_members
224-
WHERE
225-
user_id = users.id
226-
) :: text[] AS owner_groups
203+
array_append(ARRAY[]::text[], 'organization-member:' || organization_members.organization_id::text)
204+
)::text[] as owner_roles,
205+
array_agg(COALESCE(group_members.group_id::text, ''))::text[] AS owner_groups
227206
FROM users
228207
INNER JOIN
229208
workspaces
@@ -241,6 +220,18 @@ FROM users
241220
workspace_agents
242221
ON
243222
workspace_agents.resource_id = workspace_resources.id
223+
INNER JOIN -- every user is a member of some org
224+
organization_members
225+
ON
226+
organization_members.user_id = users.id
227+
LEFT JOIN -- as they may not be a member of any groups
228+
group_members
229+
ON
230+
group_members.user_id = users.id
244231
WHERE
245232
workspace_agents.auth_token = @auth_token
233+
AND
234+
users.status = 'active' -- workspaces that belong to inactive users should not be
235+
GROUP BY
236+
workspace_agents.id, workspaces.id, users.id, organization_members.organization_id
246237
LIMIT 1;

coderd/httpmw/workspaceagent_test.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,13 @@ func TestWorkspaceAgent(t *testing.T) {
6767
func setup(t testing.TB, db database.Store, authToken uuid.UUID, mw func(http.Handler) http.Handler) (*http.Request, http.Handler) {
6868
t.Helper()
6969
org := dbgen.Organization(t, db, database.Organization{})
70-
user := dbgen.User(t, db, database.User{})
70+
user := dbgen.User(t, db, database.User{
71+
Status: database.UserStatusActive,
72+
})
73+
_ = dbgen.OrganizationMember(t, db, database.OrganizationMember{
74+
UserID: user.ID,
75+
OrganizationID: org.ID,
76+
})
7177
templateVersion := dbgen.TemplateVersion(t, db, database.TemplateVersion{
7278
OrganizationID: org.ID,
7379
CreatedBy: user.ID,

0 commit comments

Comments
 (0)