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

Method tokens

coderd/apikey.go:312–385  ·  view source on GitHub ↗

@Summary Get user tokens @ID get-user-tokens @Security CoderSessionToken @Produce json @Tags Users @Param user path string true "User ID, name, or me" @Success 200 {array} codersdk.APIKey @Param include_expired query bool false "Include expired tokens in the list" @Router /api/v2/users/{user}/keys/t

(rw http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

310// @Param include_expired query bool false "Include expired tokens in the list"
311// @Router /api/v2/users/{user}/keys/tokens [get]
312func (api *API) tokens(rw http.ResponseWriter, r *http.Request) {
313 var (
314 ctx = r.Context()
315 user = httpmw.UserParam(r)
316 keys []database.APIKey
317 err error
318 queryStr = r.URL.Query().Get("include_all")
319 includeAll, _ = strconv.ParseBool(queryStr)
320 expiredStr = r.URL.Query().Get("include_expired")
321 includeExpired, _ = strconv.ParseBool(expiredStr)
322 )
323
324 if includeAll {
325 // get tokens for all users
326 keys, err = api.Database.GetAPIKeysByLoginType(ctx, database.GetAPIKeysByLoginTypeParams{
327 LoginType: database.LoginTypeToken,
328 IncludeExpired: includeExpired,
329 })
330 if err != nil {
331 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
332 Message: "Internal error fetching API keys.",
333 Detail: err.Error(),
334 })
335 return
336 }
337 } else {
338 // get user's tokens only
339 keys, err = api.Database.GetAPIKeysByUserID(ctx, database.GetAPIKeysByUserIDParams{LoginType: database.LoginTypeToken, UserID: user.ID, IncludeExpired: includeExpired})
340 if err != nil {
341 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
342 Message: "Internal error fetching API keys.",
343 Detail: err.Error(),
344 })
345 return
346 }
347 }
348
349 keys, err = AuthorizeFilter(api.HTTPAuth, r, policy.ActionRead, keys)
350 if err != nil {
351 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
352 Message: "Internal error fetching keys.",
353 Detail: err.Error(),
354 })
355 return
356 }
357
358 var userIDs []uuid.UUID
359 for _, key := range keys {
360 userIDs = append(userIDs, key.UserID)
361 }
362
363 users, _ := api.Database.GetUsersByIDs(ctx, userIDs)
364 usersByID := map[uuid.UUID]database.User{}
365 for _, user := range users {
366 usersByID[user.ID] = user
367 }
368
369 var apiKeys []codersdk.APIKeyWithOwner

Callers 1

RefreshMethod · 0.45

Calls 10

UserParamFunction · 0.92
WriteFunction · 0.92
convertAPIKeyFunction · 0.85
AuthorizeFilterFunction · 0.70
ContextMethod · 0.65
GetMethod · 0.65
GetAPIKeysByLoginTypeMethod · 0.65
GetAPIKeysByUserIDMethod · 0.65
GetUsersByIDsMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected