Skip to content

Commit d63417b

Browse files
fix: update WorkspaceOwnerName to use user.name instead of user.username (coder#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)