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.

hooks.go 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // Copyright 2018 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/webhook"
  7. "code.gitea.io/gitea/modules/base"
  8. "code.gitea.io/gitea/modules/context"
  9. "code.gitea.io/gitea/modules/setting"
  10. "code.gitea.io/gitea/modules/util"
  11. )
  12. const (
  13. // tplAdminHooks template path to render hook settings
  14. tplAdminHooks base.TplName = "admin/hooks"
  15. )
  16. // DefaultOrSystemWebhooks renders both admin default and system webhook list pages
  17. func DefaultOrSystemWebhooks(ctx *context.Context) {
  18. var err error
  19. ctx.Data["Title"] = ctx.Tr("admin.hooks")
  20. ctx.Data["PageIsAdminSystemHooks"] = true
  21. ctx.Data["PageIsAdminDefaultHooks"] = true
  22. def := make(map[string]interface{}, len(ctx.Data))
  23. sys := make(map[string]interface{}, len(ctx.Data))
  24. for k, v := range ctx.Data {
  25. def[k] = v
  26. sys[k] = v
  27. }
  28. sys["Title"] = ctx.Tr("admin.systemhooks")
  29. sys["Description"] = ctx.Tr("admin.systemhooks.desc")
  30. sys["Webhooks"], err = webhook.GetSystemWebhooks(ctx, util.OptionalBoolNone)
  31. sys["BaseLink"] = setting.AppSubURL + "/admin/hooks"
  32. sys["BaseLinkNew"] = setting.AppSubURL + "/admin/system-hooks"
  33. if err != nil {
  34. ctx.ServerError("GetWebhooksAdmin", err)
  35. return
  36. }
  37. def["Title"] = ctx.Tr("admin.defaulthooks")
  38. def["Description"] = ctx.Tr("admin.defaulthooks.desc")
  39. def["Webhooks"], err = webhook.GetDefaultWebhooks(ctx)
  40. def["BaseLink"] = setting.AppSubURL + "/admin/hooks"
  41. def["BaseLinkNew"] = setting.AppSubURL + "/admin/default-hooks"
  42. if err != nil {
  43. ctx.ServerError("GetWebhooksAdmin", err)
  44. return
  45. }
  46. ctx.Data["DefaultWebhooks"] = def
  47. ctx.Data["SystemWebhooks"] = sys
  48. ctx.HTML(http.StatusOK, tplAdminHooks)
  49. }
  50. // DeleteDefaultOrSystemWebhook handler to delete an admin-defined system or default webhook
  51. func DeleteDefaultOrSystemWebhook(ctx *context.Context) {
  52. if err := webhook.DeleteDefaultSystemWebhook(ctx, ctx.FormInt64("id")); err != nil {
  53. ctx.Flash.Error("DeleteDefaultWebhook: " + err.Error())
  54. } else {
  55. ctx.Flash.Success(ctx.Tr("repo.settings.webhook_deletion_success"))
  56. }
  57. ctx.JSON(http.StatusOK, map[string]interface{}{
  58. "redirect": setting.AppSubURL + "/admin/hooks",
  59. })
  60. }