code.gitea.io/gitea@v1.21.7/routers/web/shared/secrets/secrets.go (about)

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