diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2021-09-19 19:49:59 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-19 19:49:59 +0800 |
commit | a4bfef265d9e512830350635a0489c2cdcd6508f (patch) | |
tree | 1e3c2ec94276dfcb2f8ba73a2ac075ba39c4a34a /models/ssh_key.go | |
parent | 462306e263db5a809dbe2cdf62e99307aeff28de (diff) | |
download | gitea-a4bfef265d9e512830350635a0489c2cdcd6508f.tar.gz gitea-a4bfef265d9e512830350635a0489c2cdcd6508f.zip |
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>
Diffstat (limited to 'models/ssh_key.go')
-rw-r--r-- | models/ssh_key.go | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/models/ssh_key.go b/models/ssh_key.go index a4745d8e39..04be4ce605 100644 --- a/models/ssh_key.go +++ b/models/ssh_key.go @@ -10,6 +10,7 @@ import ( "strings" "time" + "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/timeutil" "code.gitea.io/gitea/modules/util" @@ -47,6 +48,10 @@ type PublicKey struct { HasUsed bool `xorm:"-"` } +func init() { + db.RegisterModel(new(PublicKey)) +} + // AfterLoad is invoked from XORM after setting the values of all fields of this object. func (key *PublicKey) AfterLoad() { key.HasUsed = key.UpdatedUnix > key.CreatedUnix @@ -65,7 +70,7 @@ func (key *PublicKey) AuthorizedString() string { return AuthorizedStringForKey(key) } -func addKey(e Engine, key *PublicKey) (err error) { +func addKey(e db.Engine, key *PublicKey) (err error) { if len(key.Fingerprint) == 0 { key.Fingerprint, err = calcFingerprint(key.Content) if err != nil { @@ -90,7 +95,7 @@ func AddPublicKey(ownerID int64, name, content string, loginSourceID int64) (*Pu return nil, err } - sess := x.NewSession() + sess := db.DefaultContext().NewSession() defer sess.Close() if err = sess.Begin(); err != nil { return nil, err @@ -129,7 +134,7 @@ func AddPublicKey(ownerID int64, name, content string, loginSourceID int64) (*Pu // GetPublicKeyByID returns public key by given ID. func GetPublicKeyByID(keyID int64) (*PublicKey, error) { key := new(PublicKey) - has, err := x. + has, err := db.DefaultContext().Engine(). ID(keyID). Get(key) if err != nil { @@ -140,7 +145,7 @@ func GetPublicKeyByID(keyID int64) (*PublicKey, error) { return key, nil } -func searchPublicKeyByContentWithEngine(e Engine, content string) (*PublicKey, error) { +func searchPublicKeyByContentWithEngine(e db.Engine, content string) (*PublicKey, error) { key := new(PublicKey) has, err := e. Where("content like ?", content+"%"). @@ -156,10 +161,10 @@ func searchPublicKeyByContentWithEngine(e Engine, content string) (*PublicKey, e // SearchPublicKeyByContent searches content as prefix (leak e-mail part) // and returns public key found. func SearchPublicKeyByContent(content string) (*PublicKey, error) { - return searchPublicKeyByContentWithEngine(x, content) + return searchPublicKeyByContentWithEngine(db.DefaultContext().Engine(), content) } -func searchPublicKeyByContentExactWithEngine(e Engine, content string) (*PublicKey, error) { +func searchPublicKeyByContentExactWithEngine(e db.Engine, content string) (*PublicKey, error) { key := new(PublicKey) has, err := e. Where("content = ?", content). @@ -175,7 +180,7 @@ func searchPublicKeyByContentExactWithEngine(e Engine, content string) (*PublicK // SearchPublicKeyByContentExact searches content // and returns public key found. func SearchPublicKeyByContentExact(content string) (*PublicKey, error) { - return searchPublicKeyByContentExactWithEngine(x, content) + return searchPublicKeyByContentExactWithEngine(db.DefaultContext().Engine(), content) } // SearchPublicKey returns a list of public keys matching the provided arguments. @@ -188,12 +193,12 @@ func SearchPublicKey(uid int64, fingerprint string) ([]*PublicKey, error) { if fingerprint != "" { cond = cond.And(builder.Eq{"fingerprint": fingerprint}) } - return keys, x.Where(cond).Find(&keys) + return keys, db.DefaultContext().Engine().Where(cond).Find(&keys) } // ListPublicKeys returns a list of public keys belongs to given user. func ListPublicKeys(uid int64, listOptions ListOptions) ([]*PublicKey, error) { - sess := x.Where("owner_id = ? AND type != ?", uid, KeyTypePrincipal) + sess := db.DefaultContext().Engine().Where("owner_id = ? AND type != ?", uid, KeyTypePrincipal) if listOptions.Page != 0 { sess = setSessionPagination(sess, &listOptions) @@ -207,14 +212,14 @@ func ListPublicKeys(uid int64, listOptions ListOptions) ([]*PublicKey, error) { // CountPublicKeys count public keys a user has func CountPublicKeys(userID int64) (int64, error) { - sess := x.Where("owner_id = ? AND type != ?", userID, KeyTypePrincipal) + sess := db.DefaultContext().Engine().Where("owner_id = ? AND type != ?", userID, KeyTypePrincipal) return sess.Count(&PublicKey{}) } // ListPublicKeysBySource returns a list of synchronized public keys for a given user and login source. func ListPublicKeysBySource(uid, loginSourceID int64) ([]*PublicKey, error) { keys := make([]*PublicKey, 0, 5) - return keys, x. + return keys, db.DefaultContext().Engine(). Where("owner_id = ? AND login_source_id = ?", uid, loginSourceID). Find(&keys) } @@ -223,13 +228,13 @@ func ListPublicKeysBySource(uid, loginSourceID int64) ([]*PublicKey, error) { func UpdatePublicKeyUpdated(id int64) error { // Check if key exists before update as affected rows count is unreliable // and will return 0 affected rows if two updates are made at the same time - if cnt, err := x.ID(id).Count(&PublicKey{}); err != nil { + if cnt, err := db.DefaultContext().Engine().ID(id).Count(&PublicKey{}); err != nil { return err } else if cnt != 1 { return ErrKeyNotExist{id} } - _, err := x.ID(id).Cols("updated_unix").Update(&PublicKey{ + _, err := db.DefaultContext().Engine().ID(id).Cols("updated_unix").Update(&PublicKey{ UpdatedUnix: timeutil.TimeStampNow(), }) if err != nil { @@ -239,7 +244,7 @@ func UpdatePublicKeyUpdated(id int64) error { } // deletePublicKeys does the actual key deletion but does not update authorized_keys file. -func deletePublicKeys(e Engine, keyIDs ...int64) error { +func deletePublicKeys(e db.Engine, keyIDs ...int64) error { if len(keyIDs) == 0 { return nil } @@ -328,7 +333,7 @@ func DeletePublicKey(doer *User, id int64) (err error) { return ErrKeyAccessDenied{doer.ID, key.ID, "public"} } - sess := x.NewSession() + sess := db.DefaultContext().NewSession() defer sess.Close() if err = sess.Begin(); err != nil { return err @@ -353,7 +358,7 @@ func DeletePublicKey(doer *User, id int64) (err error) { // deleteKeysMarkedForDeletion returns true if ssh keys needs update func deleteKeysMarkedForDeletion(keys []string) (bool, error) { // Start session - sess := x.NewSession() + sess := db.DefaultContext().NewSession() defer sess.Close() if err := sess.Begin(); err != nil { return false, err |