2023-02-01 15:53:04 +03:00
// Copyright 2022 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package secrets
import (
2023-11-24 06:49:41 +03:00
"code.gitea.io/gitea/models/db"
2023-02-01 15:53:04 +03:00
secret_model "code.gitea.io/gitea/models/secret"
"code.gitea.io/gitea/modules/log"
2024-03-28 23:40:35 +03:00
"code.gitea.io/gitea/modules/util"
2023-02-01 15:53:04 +03:00
"code.gitea.io/gitea/modules/web"
2024-02-27 10:12:22 +03:00
"code.gitea.io/gitea/services/context"
2023-02-01 15:53:04 +03:00
"code.gitea.io/gitea/services/forms"
2023-09-05 18:21:02 +03:00
secret_service "code.gitea.io/gitea/services/secrets"
2023-02-01 15:53:04 +03:00
)
func SetSecretsContext ( ctx * context . Context , ownerID , repoID int64 ) {
2023-11-24 06:49:41 +03:00
secrets , err := db . Find [ secret_model . Secret ] ( ctx , secret_model . FindSecretsOptions { OwnerID : ownerID , RepoID : repoID } )
2023-02-01 15:53:04 +03:00
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 )
2024-03-28 23:40:35 +03:00
s , _ , err := secret_service . CreateOrUpdateSecret ( ctx , ownerID , repoID , form . Name , util . ReserveLineBreakForTextarea ( form . Data ) )
2023-02-01 15:53:04 +03:00
if err != nil {
2023-09-05 18:21:02 +03:00
log . Error ( "CreateOrUpdateSecret failed: %v" , err )
2023-06-21 01:54:15 +03:00
ctx . JSONError ( ctx . Tr ( "secrets.creation.failed" ) )
return
2023-02-01 15:53:04 +03:00
}
2023-06-21 01:54:15 +03:00
ctx . Flash . Success ( ctx . Tr ( "secrets.creation.success" , s . Name ) )
ctx . JSONRedirect ( redirectURL )
2023-02-01 15:53:04 +03:00
}
2023-04-23 16:35:14 +03:00
func PerformSecretsDelete ( ctx * context . Context , ownerID , repoID int64 , redirectURL string ) {
2023-02-01 15:53:04 +03:00
id := ctx . FormInt64 ( "id" )
2023-09-05 18:21:02 +03:00
err := secret_service . DeleteSecretByID ( ctx , ownerID , repoID , id )
if err != nil {
log . Error ( "DeleteSecretByID(%d) failed: %v" , id , err )
2023-06-21 01:54:15 +03:00
ctx . JSONError ( ctx . Tr ( "secrets.deletion.failed" ) )
return
2023-02-01 15:53:04 +03:00
}
2023-09-05 18:21:02 +03:00
2023-06-21 01:54:15 +03:00
ctx . Flash . Success ( ctx . Tr ( "secrets.deletion.success" ) )
ctx . JSONRedirect ( redirectURL )
2023-02-01 15:53:04 +03:00
}