summaryrefslogtreecommitdiffstats
path: root/routers/web/shared
diff options
context:
space:
mode:
authorKN4CK3R <admin@oldschoolhack.me>2023-02-01 13:53:04 +0100
committerGitHub <noreply@github.com>2023-02-01 20:53:04 +0800
commit5882e179a93a00a0635c6c578ec6d43ce68d687b (patch)
treee1bba3b2d88f74e95f05214bedebc616e2452805 /routers/web/shared
parent9f9a1ce92292739c3d0b5ee4bb654d883eb3b869 (diff)
downloadgitea-5882e179a93a00a0635c6c578ec6d43ce68d687b.tar.gz
gitea-5882e179a93a00a0635c6c578ec6d43ce68d687b.zip
Add user secrets (#22191)
Fixes #22183 Replaces #22187 This PR adds secrets for users. I refactored the files for organizations and repos to use the same logic and templates. I splitted the secrets from deploy keys again and reverted the fix from #22187. --------- Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'routers/web/shared')
-rw-r--r--routers/web/shared/secrets/secrets.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/routers/web/shared/secrets/secrets.go b/routers/web/shared/secrets/secrets.go
new file mode 100644
index 0000000000..e242c5e816
--- /dev/null
+++ b/routers/web/shared/secrets/secrets.go
@@ -0,0 +1,54 @@
+// Copyright 2022 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package secrets
+
+import (
+ "net/http"
+
+ "code.gitea.io/gitea/models/db"
+ secret_model "code.gitea.io/gitea/models/secret"
+ "code.gitea.io/gitea/modules/context"
+ "code.gitea.io/gitea/modules/log"
+ "code.gitea.io/gitea/modules/web"
+ "code.gitea.io/gitea/services/forms"
+)
+
+func SetSecretsContext(ctx *context.Context, ownerID, repoID int64) {
+ secrets, err := secret_model.FindSecrets(ctx, secret_model.FindSecretsOptions{OwnerID: ownerID, RepoID: repoID})
+ if err != nil {
+ ctx.ServerError("FindSecrets", err)
+ return
+ }
+
+ ctx.Data["Secrets"] = secrets
+}
+
+func PerformSecretsPost(ctx *context.Context, ownerID, repoID int64, redirectURL string) {
+ form := web.GetForm(ctx).(*forms.AddSecretForm)
+
+ s, err := secret_model.InsertEncryptedSecret(ctx, ownerID, repoID, form.Title, form.Content)
+ if err != nil {
+ log.Error("InsertEncryptedSecret: %v", err)
+ ctx.Flash.Error(ctx.Tr("secrets.creation.failed"))
+ } else {
+ ctx.Flash.Success(ctx.Tr("secrets.creation.success", s.Name))
+ }
+
+ ctx.Redirect(redirectURL)
+}
+
+func PerformSecretsDelete(ctx *context.Context, redirectURL string) {
+ id := ctx.FormInt64("id")
+
+ if _, err := db.DeleteByBean(ctx, &secret_model.Secret{ID: id}); err != nil {
+ log.Error("Delete secret %d failed: %v", id, err)
+ ctx.Flash.Error(ctx.Tr("secrets.deletion.failed"))
+ } else {
+ ctx.Flash.Success(ctx.Tr("secrets.deletion.success"))
+ }
+
+ ctx.JSON(http.StatusOK, map[string]interface{}{
+ "redirect": redirectURL,
+ })
+}