|
4 | 4 | package secrets |
5 | 5 |
|
6 | 6 | import ( |
| 7 | + "fmt" |
| 8 | + |
7 | 9 | "code.gitea.io/gitea/models/db" |
8 | 10 | secret_model "code.gitea.io/gitea/models/secret" |
9 | 11 | "code.gitea.io/gitea/modules/log" |
@@ -38,6 +40,37 @@ func PerformSecretsPost(ctx *context.Context, ownerID, repoID int64, redirectURL |
38 | 40 | ctx.JSONRedirect(redirectURL) |
39 | 41 | } |
40 | 42 |
|
| 43 | +func PerformSecretsEdit(ctx *context.Context, ownerID, repoID int64, redirectURL string) { |
| 44 | + form := web.GetForm(ctx).(*forms.EditSecretForm) |
| 45 | + id := ctx.PathParamInt64("secret_id") |
| 46 | + |
| 47 | + if id == 0 { |
| 48 | + ctx.ServerError("PerformSecretsEdit", fmt.Errorf("id not found")) |
| 49 | + return |
| 50 | + } |
| 51 | + |
| 52 | + secrets, err := db.Find[secret_model.Secret](ctx, secret_model.FindSecretsOptions{OwnerID: ownerID, RepoID: repoID, SecretID: id}) |
| 53 | + if err != nil { |
| 54 | + ctx.ServerError("FindSecrets", err) |
| 55 | + return |
| 56 | + } |
| 57 | + |
| 58 | + if len(secrets) != 1 { |
| 59 | + ctx.ServerError("FindSecrets", fmt.Errorf("secret not found")) |
| 60 | + return |
| 61 | + } |
| 62 | + |
| 63 | + s, _, err := secret_service.CreateOrUpdateSecret(ctx, ownerID, repoID, secrets[0].Name, util.ReserveLineBreakForTextarea(form.Data)) |
| 64 | + if err != nil { |
| 65 | + log.Error("CreateOrUpdateSecret failed: %v", err) |
| 66 | + ctx.JSONError(ctx.Tr("secrets.edit.failed")) |
| 67 | + return |
| 68 | + } |
| 69 | + |
| 70 | + ctx.Flash.Success(ctx.Tr("secrets.edit.success", s.Name)) |
| 71 | + ctx.JSONRedirect(redirectURL) |
| 72 | +} |
| 73 | + |
41 | 74 | func PerformSecretsDelete(ctx *context.Context, ownerID, repoID int64, redirectURL string) { |
42 | 75 | id := ctx.FormInt64("id") |
43 | 76 |
|
|
0 commit comments