This commit is contained in:
Lunny Xiao 2022-10-14 21:48:47 +08:00 committed by Jason Song
parent 8ec691f3ce
commit e7d5c99b42
8 changed files with 56 additions and 43 deletions

View File

@ -29,6 +29,7 @@ func (err ErrSecretDataInvalid) Error() string {
var nameRE = regexp.MustCompile("[^a-zA-Z0-9-_.]+") var nameRE = regexp.MustCompile("[^a-zA-Z0-9-_.]+")
// Secret represents a secret
type Secret struct { type Secret struct {
ID int64 ID int64
UserID int64 `xorm:"index"` UserID int64 `xorm:"index"`
@ -39,7 +40,7 @@ type Secret struct {
CreatedUnix timeutil.TimeStamp `xorm:"created"` CreatedUnix timeutil.TimeStamp `xorm:"created"`
} }
// Validate validates the required fields and formats. // Validate validates the required fields and formats.
func (s *Secret) Validate() error { func (s *Secret) Validate() error {
switch { switch {
case len(s.Name) == 0: case len(s.Name) == 0:

View File

@ -41,7 +41,7 @@ func FindObjects[Object any](ctx context.Context, cond builder.Cond, opts *ListO
if opts.Page < 1 { if opts.Page < 1 {
opts.Page = 1 opts.Page = 1
} }
sess.Limit(opts.PageSize, opts.PageSize * (opts.Page - 1)) sess.Limit(opts.PageSize, opts.PageSize*(opts.Page-1))
} }
return sess.Find(objects) return sess.Find(objects)
} }

25
models/migrations/v227.go Normal file
View File

@ -0,0 +1,25 @@
// Copyright 2022 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package migrations
import (
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/xorm"
)
func createSecretsTable(x *xorm.Engine) error {
type Secret struct {
ID int64
UserID int64 `xorm:"index"`
RepoID int64 `xorm:"index"`
Name string
Data string
PullRequest bool
CreatedUnix timeutil.TimeStamp `xorm:"created"`
}
return x.Sync(new(Secret))
}

View File

@ -9,7 +9,6 @@ import (
"crypto/rand" "crypto/rand"
"encoding/base64" "encoding/base64"
"io" "io"
"math/big"
"time" "time"
"code.gitea.io/gitea/modules/util" "code.gitea.io/gitea/modules/util"
@ -79,12 +78,3 @@ func NewMasterKey() ([]byte, error) {
return secretBytes, nil return secretBytes, nil
} }
func randomInt(max *big.Int) (int, error) {
rand, err := rand.Int(rand.Reader, max)
if err != nil {
return 0, err
}
return int(rand.Int64()), nil
}

View File

@ -13,8 +13,7 @@ import (
"io" "io"
) )
type aesEncryptionProvider struct { type aesEncryptionProvider struct{}
}
func NewAesEncryptionProvider() EncryptionProvider { func NewAesEncryptionProvider() EncryptionProvider {
return &aesEncryptionProvider{} return &aesEncryptionProvider{}

View File

@ -4,8 +4,7 @@
package secrets package secrets
type nopMasterKeyProvider struct { type nopMasterKeyProvider struct{}
}
// NewNopMasterKeyProvider returns master key provider that holds no master key and is always unsealed // NewNopMasterKeyProvider returns master key provider that holds no master key and is always unsealed
func NewNopMasterKeyProvider() MasterKeyProvider { func NewNopMasterKeyProvider() MasterKeyProvider {

View File

@ -103,16 +103,16 @@ func DecryptString(enc string) (string, error) {
} }
func InsertRepoSecret(ctx context.Context, repoID int64, key, data string, pullRequest bool) error { func InsertRepoSecret(ctx context.Context, repoID int64, key, data string, pullRequest bool) error {
v, err := EncryptString( data) v, err := EncryptString(data)
if err != nil { if err != nil {
return err return err
} }
return db.Insert(ctx, &auth_model.Secret{ return db.Insert(ctx, &auth_model.Secret{
RepoID: repoID, RepoID: repoID,
Name: key, Name: key,
Data: v, Data: v,
PullRequest: pullRequest, PullRequest: pullRequest,
}) })
} }
func InsertOrgSecret(ctx context.Context, userID int64, key, data string, pullRequest bool) error { func InsertOrgSecret(ctx context.Context, userID int64, key, data string, pullRequest bool) error {
@ -120,26 +120,25 @@ func InsertOrgSecret(ctx context.Context, userID int64, key, data string, pullRe
if err != nil { if err != nil {
return err return err
} }
return db.Insert(ctx, &auth_model.Secret{ return db.Insert(ctx, &auth_model.Secret{
UserID: userID, UserID: userID,
Name: key, Name: key,
Data: v, Data: v,
PullRequest: pullRequest, PullRequest: pullRequest,
}) })
} }
func DeleteSecretByID(ctx context.Context, id int64) error { func DeleteSecretByID(ctx context.Context, id int64) error {
_, err := db.DeleteByBean(ctx, &auth_model.Secret{ID: id}) _, err := db.DeleteByBean(ctx, &auth_model.Secret{ID: id})
return err return err
} }
func FindRepoSecrets(ctx context.Context, repoID int64) ([]*auth_model.Secret, error) {
func FindRepoSecrets(ctx context.Context,repoID int64) ([]*auth_model.Secret, error) {
var res []*auth_model.Secret var res []*auth_model.Secret
return res, db.FindObjects(ctx, builder.Eq{"repo_id": repoID}, nil,&res) return res, db.FindObjects(ctx, builder.Eq{"repo_id": repoID}, nil, &res)
} }
func FindUserSecrets(ctx context.Context, userID int64) ([]*auth_model.Secret, error) { func FindUserSecrets(ctx context.Context, userID int64) ([]*auth_model.Secret, error) {
var res []*auth_model.Secret var res []*auth_model.Secret
return res, db.FindObjects(ctx, builder.Eq{"user_id": userID}, nil,&res) return res, db.FindObjects(ctx, builder.Eq{"user_id": userID}, nil, &res)
} }