MCPcopy Index your code
hub / github.com/coder/coder / enrichUserAISeat

Method enrichUserAISeat

coderd/users.go:2055–2078  ·  view source on GitHub ↗

enrichUserAISeat sets HasAISeat on the user when the feature is entitled.

(ctx context.Context, user *codersdk.User)

Source from the content-addressed store, hash-verified

2053
2054// enrichUserAISeat sets HasAISeat on the user when the feature is entitled.
2055func (api *API) enrichUserAISeat(ctx context.Context, user *codersdk.User) {
2056 if !api.Entitlements.Enabled(codersdk.FeatureAIGovernanceUserLimit) {
2057 return
2058 }
2059
2060 //nolint:gocritic // AI seat state is a system-level read gated by entitlement.
2061 aiSeatUserIDs, err := api.Database.GetUserAISeatStates(
2062 dbauthz.AsSystemRestricted(ctx),
2063 []uuid.UUID{user.ID},
2064 )
2065 if err != nil {
2066 if !xerrors.Is(err, sql.ErrNoRows) {
2067 api.Logger.Warn(
2068 ctx,
2069 "failed to fetch AI seat state for user",
2070 slog.F("user_id", user.ID),
2071 slog.Error(err),
2072 )
2073 }
2074 return
2075 }
2076
2077 user.HasAISeat = len(aiSeatUserIDs) > 0
2078}
2079
2080func convertUsers(users []database.User, organizationIDsByUserID map[uuid.UUID][]uuid.UUID, aiSeatSet map[uuid.UUID]struct{}) []codersdk.User {
2081 converted := make([]codersdk.User, 0, len(users))

Callers 5

postUserMethod · 0.95
userByNameMethod · 0.95
putUserProfileMethod · 0.95
putUserStatusMethod · 0.95
putUserRolesMethod · 0.95

Calls 5

AsSystemRestrictedFunction · 0.92
EnabledMethod · 0.65
GetUserAISeatStatesMethod · 0.65
IsMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected