-
-
Notifications
You must be signed in to change notification settings - Fork 5.8k
Add user secrets #22191
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add user secrets #22191
Changes from all commits
1f44012
3bec2de
3854c6b
cfad5c4
4f8e223
0a4d717
ef06e02
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
// Copyright 2022 The Gitea Authors. All rights reserved. | ||
// SPDX-License-Identifier: MIT | ||
|
||
package org | ||
|
||
import ( | ||
"net/http" | ||
|
||
"code.gitea.io/gitea/modules/base" | ||
"code.gitea.io/gitea/modules/context" | ||
shared "code.gitea.io/gitea/routers/web/shared/secrets" | ||
) | ||
|
||
const ( | ||
tplSettingsSecrets base.TplName = "org/settings/secrets" | ||
) | ||
|
||
// Secrets render organization secrets page | ||
func Secrets(ctx *context.Context) { | ||
ctx.Data["Title"] = ctx.Tr("secrets.secrets") | ||
ctx.Data["PageIsOrgSettings"] = true | ||
ctx.Data["PageIsOrgSettingsSecrets"] = true | ||
|
||
shared.SetSecretsContext(ctx, ctx.ContextUser.ID, 0) | ||
if ctx.Written() { | ||
return | ||
} | ||
|
||
ctx.HTML(http.StatusOK, tplSettingsSecrets) | ||
} | ||
|
||
// SecretsPost add secrets | ||
func SecretsPost(ctx *context.Context) { | ||
shared.PerformSecretsPost( | ||
ctx, | ||
ctx.ContextUser.ID, | ||
0, | ||
ctx.Org.OrgLink+"/settings/secrets", | ||
) | ||
} | ||
|
||
// SecretsDelete delete secrets | ||
func SecretsDelete(ctx *context.Context) { | ||
shared.PerformSecretsDelete( | ||
ctx, | ||
ctx.Org.OrgLink+"/settings/secrets", | ||
) | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
// Copyright 2022 The Gitea Authors. All rights reserved. | ||
// SPDX-License-Identifier: MIT | ||
|
||
package repo | ||
|
||
import ( | ||
"net/http" | ||
|
||
"code.gitea.io/gitea/modules/base" | ||
"code.gitea.io/gitea/modules/context" | ||
"code.gitea.io/gitea/modules/setting" | ||
shared "code.gitea.io/gitea/routers/web/shared/secrets" | ||
) | ||
|
||
const ( | ||
tplSecrets base.TplName = "repo/settings/secrets" | ||
) | ||
|
||
func Secrets(ctx *context.Context) { | ||
ctx.Data["Title"] = ctx.Tr("secrets.secrets") | ||
ctx.Data["PageIsSettingsSecrets"] = true | ||
ctx.Data["DisableSSH"] = setting.SSH.Disabled | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why |
||
|
||
shared.SetSecretsContext(ctx, 0, ctx.Repo.Repository.ID) | ||
if ctx.Written() { | ||
return | ||
} | ||
|
||
ctx.HTML(http.StatusOK, tplSecrets) | ||
} | ||
|
||
func SecretsPost(ctx *context.Context) { | ||
shared.PerformSecretsPost( | ||
ctx, | ||
0, | ||
ctx.Repo.Repository.ID, | ||
ctx.Repo.RepoLink+"/settings/secrets", | ||
) | ||
} | ||
|
||
func DeleteSecret(ctx *context.Context) { | ||
shared.PerformSecretsDelete( | ||
ctx, | ||
ctx.Repo.RepoLink+"/settings/secrets", | ||
) | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
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) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
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) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
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, | ||
}) | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
// Copyright 2022 The Gitea Authors. All rights reserved. | ||
// SPDX-License-Identifier: MIT | ||
|
||
package setting | ||
|
||
import ( | ||
"net/http" | ||
|
||
"code.gitea.io/gitea/modules/base" | ||
"code.gitea.io/gitea/modules/context" | ||
"code.gitea.io/gitea/modules/setting" | ||
shared "code.gitea.io/gitea/routers/web/shared/secrets" | ||
) | ||
|
||
const ( | ||
tplSettingsSecrets base.TplName = "user/settings/secrets" | ||
) | ||
|
||
func Secrets(ctx *context.Context) { | ||
ctx.Data["Title"] = ctx.Tr("secrets.secrets") | ||
ctx.Data["PageIsSettingsSecrets"] = true | ||
|
||
shared.SetSecretsContext(ctx, ctx.Doer.ID, 0) | ||
if ctx.Written() { | ||
return | ||
} | ||
|
||
ctx.HTML(http.StatusOK, tplSettingsSecrets) | ||
} | ||
|
||
func SecretsPost(ctx *context.Context) { | ||
shared.PerformSecretsPost( | ||
ctx, | ||
ctx.Doer.ID, | ||
0, | ||
setting.AppSubURL+"/user/settings/secrets", | ||
) | ||
} | ||
|
||
func SecretsDelete(ctx *context.Context) { | ||
shared.PerformSecretsDelete( | ||
ctx, | ||
setting.AppSubURL+"/user/settings/secrets", | ||
) | ||
} |
Uh oh!
There was an error while loading. Please reload this page.