mirror of
https://github.com/coder/coder.git
synced 2026-06-02 20:48:20 +00:00
fix(coderd/httpmw): reject inactive workspace agent owners
This commit is contained in:
@@ -109,7 +109,7 @@ func ExtractWorkspaceAgentAndLatestBuild(opts ExtractWorkspaceAgentAndLatestBuil
|
||||
return
|
||||
}
|
||||
|
||||
subject, _, err := UserRBACSubject(
|
||||
subject, userStatus, err := UserRBACSubject(
|
||||
ctx,
|
||||
opts.DB,
|
||||
row.WorkspaceTable.OwnerID,
|
||||
@@ -129,6 +129,12 @@ func ExtractWorkspaceAgentAndLatestBuild(opts ExtractWorkspaceAgentAndLatestBuil
|
||||
})
|
||||
return
|
||||
}
|
||||
if userStatus != database.UserStatusActive {
|
||||
httpapi.Write(ctx, rw, http.StatusUnauthorized, codersdk.Response{
|
||||
Message: fmt.Sprintf("User has status %q. Contact an admin to reactivate your account.", userStatus),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
ctx = context.WithValue(ctx, workspaceAgentContextKey{}, row.WorkspaceAgent)
|
||||
ctx = context.WithValue(ctx, latestBuildContextKey{}, row.WorkspaceBuild)
|
||||
|
||||
@@ -102,7 +102,7 @@ func TestWorkspaceAgent(t *testing.T) {
|
||||
err = json.NewDecoder(res.Body).Decode(&resp)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t,
|
||||
fmt.Sprintf("User is not active (status = %q). Contact an admin to reactivate your account.", status),
|
||||
fmt.Sprintf("User has status %q. Contact an admin to reactivate your account.", status),
|
||||
resp.Message,
|
||||
)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user