gitea源码

secrets.go 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package secrets
  4. import (
  5. "code.gitea.io/gitea/models/db"
  6. secret_model "code.gitea.io/gitea/models/secret"
  7. "code.gitea.io/gitea/modules/log"
  8. "code.gitea.io/gitea/modules/util"
  9. "code.gitea.io/gitea/modules/web"
  10. "code.gitea.io/gitea/services/context"
  11. "code.gitea.io/gitea/services/forms"
  12. secret_service "code.gitea.io/gitea/services/secrets"
  13. )
  14. func SetSecretsContext(ctx *context.Context, ownerID, repoID int64) {
  15. secrets, err := db.Find[secret_model.Secret](ctx, secret_model.FindSecretsOptions{OwnerID: ownerID, RepoID: repoID})
  16. if err != nil {
  17. ctx.ServerError("FindSecrets", err)
  18. return
  19. }
  20. ctx.Data["Secrets"] = secrets
  21. ctx.Data["DataMaxLength"] = secret_model.SecretDataMaxLength
  22. ctx.Data["DescriptionMaxLength"] = secret_model.SecretDescriptionMaxLength
  23. }
  24. func PerformSecretsPost(ctx *context.Context, ownerID, repoID int64, redirectURL string) {
  25. form := web.GetForm(ctx).(*forms.AddSecretForm)
  26. s, _, err := secret_service.CreateOrUpdateSecret(ctx, ownerID, repoID, form.Name, util.ReserveLineBreakForTextarea(form.Data), form.Description)
  27. if err != nil {
  28. log.Error("CreateOrUpdateSecret failed: %v", err)
  29. ctx.JSONError(ctx.Tr("secrets.save_failed"))
  30. return
  31. }
  32. ctx.Flash.Success(ctx.Tr("secrets.save_success", s.Name))
  33. ctx.JSONRedirect(redirectURL)
  34. }
  35. func PerformSecretsDelete(ctx *context.Context, ownerID, repoID int64, redirectURL string) {
  36. id := ctx.FormInt64("id")
  37. err := secret_service.DeleteSecretByID(ctx, ownerID, repoID, id)
  38. if err != nil {
  39. log.Error("DeleteSecretByID(%d) failed: %v", id, err)
  40. ctx.JSONError(ctx.Tr("secrets.deletion.failed"))
  41. return
  42. }
  43. ctx.Flash.Success(ctx.Tr("secrets.deletion.success"))
  44. ctx.JSONRedirect(redirectURL)
  45. }