diff --git a/coderd/chats.go b/coderd/chats.go index 1fc8975497..d3e5e4f36b 100644 --- a/coderd/chats.go +++ b/coderd/chats.go @@ -764,6 +764,19 @@ func (api *API) watchChatDesktop(rw http.ResponseWriter, r *http.Request) { return } + workspace, err := api.Database.GetWorkspaceByID(ctx, chat.WorkspaceID.UUID) + if err != nil { + httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{ + Message: "Chat workspace not found.", + }) + return + } + if !api.Authorize(r, policy.ActionApplicationConnect, workspace) && + !api.Authorize(r, policy.ActionSSH, workspace) { + httpapi.Forbidden(rw) + return + } + agents, err := api.Database.GetWorkspaceAgentsInLatestBuildByWorkspaceID(ctx, chat.WorkspaceID.UUID) if err != nil { httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{