gitea源码

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package admin
  4. import (
  5. "net/http"
  6. "code.gitea.io/gitea/models/auth"
  7. "code.gitea.io/gitea/models/db"
  8. "code.gitea.io/gitea/modules/setting"
  9. "code.gitea.io/gitea/modules/templates"
  10. user_setting "code.gitea.io/gitea/routers/web/user/setting"
  11. "code.gitea.io/gitea/services/context"
  12. )
  13. var (
  14. tplSettingsApplications templates.TplName = "admin/applications/list"
  15. tplSettingsOauth2ApplicationEdit templates.TplName = "admin/applications/oauth2_edit"
  16. )
  17. func newOAuth2CommonHandlers() *user_setting.OAuth2CommonHandlers {
  18. return &user_setting.OAuth2CommonHandlers{
  19. OwnerID: 0,
  20. BasePathList: setting.AppSubURL + "/-/admin/applications",
  21. BasePathEditPrefix: setting.AppSubURL + "/-/admin/applications/oauth2",
  22. TplAppEdit: tplSettingsOauth2ApplicationEdit,
  23. }
  24. }
  25. // Applications render org applications page (for org, at the moment, there are only OAuth2 applications)
  26. func Applications(ctx *context.Context) {
  27. ctx.Data["Title"] = ctx.Tr("settings.applications")
  28. ctx.Data["PageIsAdminApplications"] = true
  29. apps, err := db.Find[auth.OAuth2Application](ctx, auth.FindOAuth2ApplicationsOptions{
  30. IsGlobal: true,
  31. })
  32. if err != nil {
  33. ctx.ServerError("GetOAuth2ApplicationsByUserID", err)
  34. return
  35. }
  36. ctx.Data["Applications"] = apps
  37. ctx.Data["BuiltinApplications"] = auth.BuiltinApplications()
  38. ctx.HTML(http.StatusOK, tplSettingsApplications)
  39. }
  40. // ApplicationsPost response for adding an oauth2 application
  41. func ApplicationsPost(ctx *context.Context) {
  42. ctx.Data["Title"] = ctx.Tr("settings.applications")
  43. ctx.Data["PageIsAdminApplications"] = true
  44. oa := newOAuth2CommonHandlers()
  45. oa.AddApp(ctx)
  46. }
  47. // EditApplication displays the given application
  48. func EditApplication(ctx *context.Context) {
  49. ctx.Data["PageIsAdminApplications"] = true
  50. oa := newOAuth2CommonHandlers()
  51. oa.EditShow(ctx)
  52. }
  53. // EditApplicationPost response for editing oauth2 application
  54. func EditApplicationPost(ctx *context.Context) {
  55. ctx.Data["Title"] = ctx.Tr("settings.applications")
  56. ctx.Data["PageIsAdminApplications"] = true
  57. oa := newOAuth2CommonHandlers()
  58. oa.EditSave(ctx)
  59. }
  60. // ApplicationsRegenerateSecret handles the post request for regenerating the secret
  61. func ApplicationsRegenerateSecret(ctx *context.Context) {
  62. ctx.Data["Title"] = ctx.Tr("settings")
  63. ctx.Data["PageIsAdminApplications"] = true
  64. oa := newOAuth2CommonHandlers()
  65. oa.RegenerateSecret(ctx)
  66. }
  67. // DeleteApplication deletes the given oauth2 application
  68. func DeleteApplication(ctx *context.Context) {
  69. oa := newOAuth2CommonHandlers()
  70. oa.DeleteApp(ctx)
  71. }
  72. // TODO: revokes the grant with the given id