Skip to content

Commit d63417b

Browse files
fix: update WorkspaceOwnerName to use user.name instead of user.username (#18025)
We have been using the user.username instead of user.name in wrong places, making it very confusing for the UI.
1 parent 9827c97 commit d63417b

24 files changed

+579
-90
lines changed

cli/testdata/coder_list_--output_json.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"workspace_id": "===========[workspace ID]===========",
2424
"workspace_name": "test-workspace",
2525
"workspace_owner_id": "==========[first user ID]===========",
26-
"workspace_owner_name": "testuser",
26+
"workspace_owner_username": "testuser",
2727
"template_version_id": "============[version ID]============",
2828
"template_version_name": "===========[version name]===========",
2929
"build_number": 1,

coderd/apidoc/docs.go

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

coderd/apidoc/swagger.json

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

coderd/database/dbmem/dbmem.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,7 @@ func (q *FakeQuerier) convertToWorkspaceRowsNoLock(ctx context.Context, workspac
531531

532532
OwnerAvatarUrl: extended.OwnerAvatarUrl,
533533
OwnerUsername: extended.OwnerUsername,
534+
OwnerName: extended.OwnerName,
534535

535536
OrganizationName: extended.OrganizationName,
536537
OrganizationDisplayName: extended.OrganizationDisplayName,
@@ -628,6 +629,7 @@ func (q *FakeQuerier) extendWorkspace(w database.WorkspaceTable) database.Worksp
628629
return u.ID == w.OwnerID
629630
})
630631
extended.OwnerUsername = owner.Username
632+
extended.OwnerName = owner.Name
631633
extended.OwnerAvatarUrl = owner.AvatarURL
632634

633635
return extended

coderd/database/dump.sql

Lines changed: 7 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
DROP VIEW template_version_with_user;
2+
3+
DROP VIEW workspace_build_with_user;
4+
5+
DROP VIEW template_with_names;
6+
7+
DROP VIEW workspaces_expanded;
8+
9+
DROP VIEW visible_users;
10+
11+
-- Recreate `visible_users` as described in dump.sql
12+
13+
CREATE VIEW visible_users AS
14+
SELECT users.id, users.username, users.avatar_url
15+
FROM users;
16+
17+
COMMENT ON VIEW visible_users IS 'Visible fields of users are allowed to be joined with other tables for including context of other resources.';
18+
19+
-- Recreate `workspace_build_with_user` as described in dump.sql
20+
21+
CREATE VIEW workspace_build_with_user AS
22+
SELECT
23+
workspace_builds.id,
24+
workspace_builds.created_at,
25+
workspace_builds.updated_at,
26+
workspace_builds.workspace_id,
27+
workspace_builds.template_version_id,
28+
workspace_builds.build_number,
29+
workspace_builds.transition,
30+
workspace_builds.initiator_id,
31+
workspace_builds.provisioner_state,
32+
workspace_builds.job_id,
33+
workspace_builds.deadline,
34+
workspace_builds.reason,
35+
workspace_builds.daily_cost,
36+
workspace_builds.max_deadline,
37+
workspace_builds.template_version_preset_id,
38+
COALESCE(
39+
visible_users.avatar_url,
40+
''::text
41+
) AS initiator_by_avatar_url,
42+
COALESCE(
43+
visible_users.username,
44+
''::text
45+
) AS initiator_by_username
46+
FROM (
47+
workspace_builds
48+
LEFT JOIN visible_users ON (
49+
(
50+
workspace_builds.initiator_id = visible_users.id
51+
)
52+
)
53+
);
54+
55+
COMMENT ON VIEW workspace_build_with_user IS 'Joins in the username + avatar url of the initiated by user.';
56+
57+
-- Recreate `template_with_names` as described in dump.sql
58+
59+
CREATE VIEW template_with_names AS
60+
SELECT
61+
templates.id,
62+
templates.created_at,
63+
templates.updated_at,
64+
templates.organization_id,
65+
templates.deleted,
66+
templates.name,
67+
templates.provisioner,
68+
templates.active_version_id,
69+
templates.description,
70+
templates.default_ttl,
71+
templates.created_by,
72+
templates.icon,
73+
templates.user_acl,
74+
templates.group_acl,
75+
templates.display_name,
76+
templates.allow_user_cancel_workspace_jobs,
77+
templates.allow_user_autostart,
78+
templates.allow_user_autostop,
79+
templates.failure_ttl,
80+
templates.time_til_dormant,
81+
templates.time_til_dormant_autodelete,
82+
templates.autostop_requirement_days_of_week,
83+
templates.autostop_requirement_weeks,
84+
templates.autostart_block_days_of_week,
85+
templates.require_active_version,
86+
templates.deprecated,
87+
templates.activity_bump,
88+
templates.max_port_sharing_level,
89+
templates.use_classic_parameter_flow,
90+
COALESCE(
91+
visible_users.avatar_url,
92+
''::text
93+
) AS created_by_avatar_url,
94+
COALESCE(
95+
visible_users.username,
96+
''::text
97+
) AS created_by_username,
98+
COALESCE(organizations.name, ''::text) AS organization_name,
99+
COALESCE(
100+
organizations.display_name,
101+
''::text
102+
) AS organization_display_name,
103+
COALESCE(organizations.icon, ''::text) AS organization_icon
104+
FROM (
105+
(
106+
templates
107+
LEFT JOIN visible_users ON (
108+
(
109+
templates.created_by = visible_users.id
110+
)
111+
)
112+
)
113+
LEFT JOIN organizations ON (
114+
(
115+
templates.organization_id = organizations.id
116+
)
117+
)
118+
);
119+
120+
COMMENT ON VIEW template_with_names IS 'Joins in the display name information such as username, avatar, and organization name.';
121+
122+
-- Recreate `template_version_with_user` as described in dump.sql
123+
124+
CREATE VIEW template_version_with_user AS
125+
SELECT
126+
template_versions.id,
127+
template_versions.template_id,
128+
template_versions.organization_id,
129+
template_versions.created_at,
130+
template_versions.updated_at,
131+
template_versions.name,
132+
template_versions.readme,
133+
template_versions.job_id,
134+
template_versions.created_by,
135+
template_versions.external_auth_providers,
136+
template_versions.message,
137+
template_versions.archived,
138+
template_versions.source_example_id,
139+
COALESCE(
140+
visible_users.avatar_url,
141+
''::text
142+
) AS created_by_avatar_url,
143+
COALESCE(
144+
visible_users.username,
145+
''::text
146+
) AS created_by_username
147+
FROM (
148+
template_versions
149+
LEFT JOIN visible_users ON (
150+
template_versions.created_by = visible_users.id
151+
)
152+
);
153+
154+
COMMENT ON VIEW template_version_with_user IS 'Joins in the username + avatar url of the created by user.';
155+
156+
-- Recreate `workspaces_expanded` as described in dump.sql
157+
158+
CREATE VIEW workspaces_expanded AS
159+
SELECT
160+
workspaces.id,
161+
workspaces.created_at,
162+
workspaces.updated_at,
163+
workspaces.owner_id,
164+
workspaces.organization_id,
165+
workspaces.template_id,
166+
workspaces.deleted,
167+
workspaces.name,
168+
workspaces.autostart_schedule,
169+
workspaces.ttl,
170+
workspaces.last_used_at,
171+
workspaces.dormant_at,
172+
workspaces.deleting_at,
173+
workspaces.automatic_updates,
174+
workspaces.favorite,
175+
workspaces.next_start_at,
176+
visible_users.avatar_url AS owner_avatar_url,
177+
visible_users.username AS owner_username,
178+
organizations.name AS organization_name,
179+
organizations.display_name AS organization_display_name,
180+
organizations.icon AS organization_icon,
181+
organizations.description AS organization_description,
182+
templates.name AS template_name,
183+
templates.display_name AS template_display_name,
184+
templates.icon AS template_icon,
185+
templates.description AS template_description
186+
FROM (
187+
(
188+
(
189+
workspaces
190+
JOIN visible_users ON (
191+
(
192+
workspaces.owner_id = visible_users.id
193+
)
194+
)
195+
)
196+
JOIN organizations ON (
197+
(
198+
workspaces.organization_id = organizations.id
199+
)
200+
)
201+
)
202+
JOIN templates ON (
203+
(
204+
workspaces.template_id = templates.id
205+
)
206+
)
207+
);
208+
209+
COMMENT ON VIEW workspaces_expanded IS 'Joins in the display name information such as username, avatar, and organization name.';

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy