mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Move db related basic functions to models/db (#17075)
* Move db related basic functions to models/db * Fix lint * Fix lint * Fix test * Fix lint * Fix lint * revert unnecessary change * Fix test * Fix wrong replace string * Use *Context * Correct committer spelling and fix wrong replaced words Co-authored-by: zeripath <art27@cantab.net>
This commit is contained in:
		@@ -7,6 +7,7 @@ package models
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/models/db"
 | 
			
		||||
	"code.gitea.io/gitea/modules/lfs"
 | 
			
		||||
	"code.gitea.io/gitea/modules/timeutil"
 | 
			
		||||
 | 
			
		||||
@@ -22,6 +23,10 @@ type LFSMetaObject struct {
 | 
			
		||||
	CreatedUnix  timeutil.TimeStamp `xorm:"created"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	db.RegisterModel(new(LFSMetaObject))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// LFSTokenResponse defines the JSON structure in which the JWT token is stored.
 | 
			
		||||
// This structure is fetched via SSH and passed by the Git LFS client to the server
 | 
			
		||||
// endpoint for authorization.
 | 
			
		||||
@@ -39,7 +44,7 @@ var ErrLFSObjectNotExist = errors.New("LFS Meta object does not exist")
 | 
			
		||||
func NewLFSMetaObject(m *LFSMetaObject) (*LFSMetaObject, error) {
 | 
			
		||||
	var err error
 | 
			
		||||
 | 
			
		||||
	sess := x.NewSession()
 | 
			
		||||
	sess := db.DefaultContext().NewSession()
 | 
			
		||||
	defer sess.Close()
 | 
			
		||||
	if err = sess.Begin(); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@@ -71,7 +76,7 @@ func (repo *Repository) GetLFSMetaObjectByOid(oid string) (*LFSMetaObject, error
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	m := &LFSMetaObject{Pointer: lfs.Pointer{Oid: oid}, RepositoryID: repo.ID}
 | 
			
		||||
	has, err := x.Get(m)
 | 
			
		||||
	has, err := db.DefaultContext().Engine().Get(m)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	} else if !has {
 | 
			
		||||
@@ -87,7 +92,7 @@ func (repo *Repository) RemoveLFSMetaObjectByOid(oid string) (int64, error) {
 | 
			
		||||
		return 0, ErrLFSObjectNotExist
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	sess := x.NewSession()
 | 
			
		||||
	sess := db.DefaultContext().NewSession()
 | 
			
		||||
	defer sess.Close()
 | 
			
		||||
	if err := sess.Begin(); err != nil {
 | 
			
		||||
		return -1, err
 | 
			
		||||
@@ -108,7 +113,7 @@ func (repo *Repository) RemoveLFSMetaObjectByOid(oid string) (int64, error) {
 | 
			
		||||
 | 
			
		||||
// GetLFSMetaObjects returns all LFSMetaObjects associated with a repository
 | 
			
		||||
func (repo *Repository) GetLFSMetaObjects(page, pageSize int) ([]*LFSMetaObject, error) {
 | 
			
		||||
	sess := x.NewSession()
 | 
			
		||||
	sess := db.DefaultContext().NewSession()
 | 
			
		||||
	defer sess.Close()
 | 
			
		||||
 | 
			
		||||
	if page >= 0 && pageSize > 0 {
 | 
			
		||||
@@ -124,23 +129,23 @@ func (repo *Repository) GetLFSMetaObjects(page, pageSize int) ([]*LFSMetaObject,
 | 
			
		||||
 | 
			
		||||
// CountLFSMetaObjects returns a count of all LFSMetaObjects associated with a repository
 | 
			
		||||
func (repo *Repository) CountLFSMetaObjects() (int64, error) {
 | 
			
		||||
	return x.Count(&LFSMetaObject{RepositoryID: repo.ID})
 | 
			
		||||
	return db.DefaultContext().Engine().Count(&LFSMetaObject{RepositoryID: repo.ID})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// LFSObjectAccessible checks if a provided Oid is accessible to the user
 | 
			
		||||
func LFSObjectAccessible(user *User, oid string) (bool, error) {
 | 
			
		||||
	if user.IsAdmin {
 | 
			
		||||
		count, err := x.Count(&LFSMetaObject{Pointer: lfs.Pointer{Oid: oid}})
 | 
			
		||||
		count, err := db.DefaultContext().Engine().Count(&LFSMetaObject{Pointer: lfs.Pointer{Oid: oid}})
 | 
			
		||||
		return count > 0, err
 | 
			
		||||
	}
 | 
			
		||||
	cond := accessibleRepositoryCondition(user)
 | 
			
		||||
	count, err := x.Where(cond).Join("INNER", "repository", "`lfs_meta_object`.repository_id = `repository`.id").Count(&LFSMetaObject{Pointer: lfs.Pointer{Oid: oid}})
 | 
			
		||||
	count, err := db.DefaultContext().Engine().Where(cond).Join("INNER", "repository", "`lfs_meta_object`.repository_id = `repository`.id").Count(&LFSMetaObject{Pointer: lfs.Pointer{Oid: oid}})
 | 
			
		||||
	return count > 0, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// LFSAutoAssociate auto associates accessible LFSMetaObjects
 | 
			
		||||
func LFSAutoAssociate(metas []*LFSMetaObject, user *User, repoID int64) error {
 | 
			
		||||
	sess := x.NewSession()
 | 
			
		||||
	sess := db.DefaultContext().NewSession()
 | 
			
		||||
	defer sess.Close()
 | 
			
		||||
	if err := sess.Begin(); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
@@ -179,7 +184,7 @@ func IterateLFS(f func(mo *LFSMetaObject) error) error {
 | 
			
		||||
	const batchSize = 100
 | 
			
		||||
	for {
 | 
			
		||||
		mos := make([]*LFSMetaObject, 0, batchSize)
 | 
			
		||||
		if err := x.Limit(batchSize, start).Find(&mos); err != nil {
 | 
			
		||||
		if err := db.DefaultContext().Engine().Limit(batchSize, start).Find(&mos); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
		if len(mos) == 0 {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user