You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

app.go 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // Copyright 2014 The Gogs Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package user
  5. import (
  6. api "code.gitea.io/sdk/gitea"
  7. "code.gitea.io/gitea/models"
  8. "code.gitea.io/gitea/modules/context"
  9. )
  10. // ListAccessTokens list all the access tokens
  11. func ListAccessTokens(ctx *context.APIContext) {
  12. // swagger:operation GET /users/{username}/tokens user userGetTokens
  13. // ---
  14. // summary: List the authenticated user's access tokens
  15. // produces:
  16. // - application/json
  17. // parameters:
  18. // - name: username
  19. // in: path
  20. // description: username of user
  21. // type: string
  22. // required: true
  23. // responses:
  24. // "200":
  25. // "$ref": "#/responses/AccessTokenList"
  26. tokens, err := models.ListAccessTokens(ctx.User.ID)
  27. if err != nil {
  28. ctx.Error(500, "ListAccessTokens", err)
  29. return
  30. }
  31. apiTokens := make([]*api.AccessToken, len(tokens))
  32. for i := range tokens {
  33. apiTokens[i] = &api.AccessToken{
  34. Name: tokens[i].Name,
  35. Sha1: tokens[i].Sha1,
  36. }
  37. }
  38. ctx.JSON(200, &apiTokens)
  39. }
  40. // CreateAccessToken create access tokens
  41. func CreateAccessToken(ctx *context.APIContext, form api.CreateAccessTokenOption) {
  42. // swagger:operation POST /users/{username}/tokens user userCreateToken
  43. // ---
  44. // summary: Create an access token
  45. // consumes:
  46. // - application/json
  47. // produces:
  48. // - application/json
  49. // parameters:
  50. // - name: username
  51. // in: path
  52. // description: username of user
  53. // type: string
  54. // required: true
  55. // responses:
  56. // "200":
  57. // "$ref": "#/responses/AccessToken"
  58. t := &models.AccessToken{
  59. UID: ctx.User.ID,
  60. Name: form.Name,
  61. }
  62. if err := models.NewAccessToken(t); err != nil {
  63. ctx.Error(500, "NewAccessToken", err)
  64. return
  65. }
  66. ctx.JSON(201, &api.AccessToken{
  67. Name: t.Name,
  68. Sha1: t.Sha1,
  69. })
  70. }