diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2023-12-07 15:27:36 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-07 15:27:36 +0800 |
commit | dd30d9d5c0f577cb6e084aae6de2752ad43474d8 (patch) | |
tree | 1e3799a672a23424484b849827ba39eae447856a /services/repository | |
parent | beb71f5ef6e8074dc744ac995c15f7b5947a3f2e (diff) | |
download | gitea-dd30d9d5c0f577cb6e084aae6de2752ad43474d8.tar.gz gitea-dd30d9d5c0f577cb6e084aae6de2752ad43474d8.zip |
Remove GetByBean method because sometimes it's danger when query condition parameter is zero and also introduce new generic methods (#28220)
The function `GetByBean` has an obvious defect that when the fields are
empty values, it will be ignored. Then users will get a wrong result
which is possibly used to make a security problem.
To avoid the possibility, this PR removed function `GetByBean` and all
references.
And some new generic functions have been introduced to be used.
The recommand usage like below.
```go
// if query an object according id
obj, err := db.GetByID[Object](ctx, id)
// query with other conditions
obj, err := db.Get[Object](ctx, builder.Eq{"a": a, "b":b})
```
Diffstat (limited to 'services/repository')
-rw-r--r-- | services/repository/files/update.go | 2 | ||||
-rw-r--r-- | services/repository/files/upload.go | 2 | ||||
-rw-r--r-- | services/repository/lfs_test.go | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/services/repository/files/update.go b/services/repository/files/update.go index 2a08bcbace..42b98a2739 100644 --- a/services/repository/files/update.go +++ b/services/repository/files/update.go @@ -438,7 +438,7 @@ func CreateOrUpdateFile(ctx context.Context, t *TemporaryUploadRepository, file if lfsMetaObject != nil { // We have an LFS object - create it - lfsMetaObject, err = git_model.NewLFSMetaObject(ctx, lfsMetaObject) + lfsMetaObject, err = git_model.NewLFSMetaObject(ctx, lfsMetaObject.RepositoryID, lfsMetaObject.Pointer) if err != nil { return err } diff --git a/services/repository/files/upload.go b/services/repository/files/upload.go index f4e1da7bb1..6a1f2ccd16 100644 --- a/services/repository/files/upload.go +++ b/services/repository/files/upload.go @@ -143,7 +143,7 @@ func UploadRepoFiles(ctx context.Context, repo *repo_model.Repository, doer *use if infos[i].lfsMetaObject == nil { continue } - infos[i].lfsMetaObject, err = git_model.NewLFSMetaObject(ctx, infos[i].lfsMetaObject) + infos[i].lfsMetaObject, err = git_model.NewLFSMetaObject(ctx, infos[i].lfsMetaObject.RepositoryID, infos[i].lfsMetaObject.Pointer) if err != nil { // OK Now we need to cleanup return cleanUpAfterFailure(ctx, &infos, t, err) diff --git a/services/repository/lfs_test.go b/services/repository/lfs_test.go index 61348143d0..ee0b8f6b89 100644 --- a/services/repository/lfs_test.go +++ b/services/repository/lfs_test.go @@ -52,7 +52,7 @@ func storeObjectInRepo(t *testing.T, repositoryID int64, content *[]byte) string pointer, err := lfs.GeneratePointer(bytes.NewReader(*content)) assert.NoError(t, err) - _, err = git_model.NewLFSMetaObject(db.DefaultContext, &git_model.LFSMetaObject{Pointer: pointer, RepositoryID: repositoryID}) + _, err = git_model.NewLFSMetaObject(db.DefaultContext, repositoryID, pointer) assert.NoError(t, err) contentStore := lfs.NewContentStore() exist, err := contentStore.Exists(pointer) |