Skip to content

Commit 90eb9fb

Browse files
authored
Move EmailAddress & UserRedirect into models/user/ (#17607)
* Move EmailAddress into models/user/ * Fix test * rename user_mail to user_email * Fix test * Move UserRedirect into models/user/ * Fix lint & test * Fix lint * Fix lint * remove nolint comment * Fix lint
1 parent 492e1c2 commit 90eb9fb

32 files changed

+719
-644
lines changed

models/error.go

Lines changed: 0 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -123,21 +123,6 @@ func (err ErrUserNotExist) Error() string {
123123
return fmt.Sprintf("user does not exist [uid: %d, name: %s, keyid: %d]", err.UID, err.Name, err.KeyID)
124124
}
125125

126-
// ErrUserRedirectNotExist represents a "UserRedirectNotExist" kind of error.
127-
type ErrUserRedirectNotExist struct {
128-
Name string
129-
}
130-
131-
// IsErrUserRedirectNotExist check if an error is an ErrUserRedirectNotExist.
132-
func IsErrUserRedirectNotExist(err error) bool {
133-
_, ok := err.(ErrUserRedirectNotExist)
134-
return ok
135-
}
136-
137-
func (err ErrUserRedirectNotExist) Error() string {
138-
return fmt.Sprintf("user redirect does not exist [name: %s]", err.Name)
139-
}
140-
141126
// ErrUserProhibitLogin represents a "ErrUserProhibitLogin" kind of error.
142127
type ErrUserProhibitLogin struct {
143128
UID int64
@@ -170,66 +155,6 @@ func (err ErrUserInactive) Error() string {
170155
return fmt.Sprintf("user is inactive [uid: %d, name: %s]", err.UID, err.Name)
171156
}
172157

173-
// ErrEmailAlreadyUsed represents a "EmailAlreadyUsed" kind of error.
174-
type ErrEmailAlreadyUsed struct {
175-
Email string
176-
}
177-
178-
// IsErrEmailAlreadyUsed checks if an error is a ErrEmailAlreadyUsed.
179-
func IsErrEmailAlreadyUsed(err error) bool {
180-
_, ok := err.(ErrEmailAlreadyUsed)
181-
return ok
182-
}
183-
184-
func (err ErrEmailAlreadyUsed) Error() string {
185-
return fmt.Sprintf("e-mail already in use [email: %s]", err.Email)
186-
}
187-
188-
// ErrEmailInvalid represents an error where the email address does not comply with RFC 5322
189-
type ErrEmailInvalid struct {
190-
Email string
191-
}
192-
193-
// IsErrEmailInvalid checks if an error is an ErrEmailInvalid
194-
func IsErrEmailInvalid(err error) bool {
195-
_, ok := err.(ErrEmailInvalid)
196-
return ok
197-
}
198-
199-
func (err ErrEmailInvalid) Error() string {
200-
return fmt.Sprintf("e-mail invalid [email: %s]", err.Email)
201-
}
202-
203-
// ErrEmailAddressNotExist email address not exist
204-
type ErrEmailAddressNotExist struct {
205-
Email string
206-
}
207-
208-
// IsErrEmailAddressNotExist checks if an error is an ErrEmailAddressNotExist
209-
func IsErrEmailAddressNotExist(err error) bool {
210-
_, ok := err.(ErrEmailAddressNotExist)
211-
return ok
212-
}
213-
214-
func (err ErrEmailAddressNotExist) Error() string {
215-
return fmt.Sprintf("Email address does not exist [email: %s]", err.Email)
216-
}
217-
218-
// ErrPrimaryEmailCannotDelete primary email address cannot be deleted
219-
type ErrPrimaryEmailCannotDelete struct {
220-
Email string
221-
}
222-
223-
// IsErrPrimaryEmailCannotDelete checks if an error is an ErrPrimaryEmailCannotDelete
224-
func IsErrPrimaryEmailCannotDelete(err error) bool {
225-
_, ok := err.(ErrPrimaryEmailCannotDelete)
226-
return ok
227-
}
228-
229-
func (err ErrPrimaryEmailCannotDelete) Error() string {
230-
return fmt.Sprintf("Primary email address cannot be deleted [email: %s]", err.Email)
231-
}
232-
233158
// ErrOpenIDAlreadyUsed represents a "OpenIDAlreadyUsed" kind of error.
234159
type ErrOpenIDAlreadyUsed struct {
235160
OpenID string

models/gpg_key.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"time"
1111

1212
"code.gitea.io/gitea/models/db"
13+
user_model "code.gitea.io/gitea/models/user"
1314
"code.gitea.io/gitea/modules/log"
1415
"code.gitea.io/gitea/modules/timeutil"
1516

@@ -36,7 +37,7 @@ type GPGKey struct {
3637
ExpiredUnix timeutil.TimeStamp
3738
AddedUnix timeutil.TimeStamp
3839
SubsKey []*GPGKey `xorm:"-"`
39-
Emails []*EmailAddress
40+
Emails []*user_model.EmailAddress
4041
Verified bool `xorm:"NOT NULL DEFAULT false"`
4142
CanSign bool
4243
CanEncryptComms bool
@@ -148,12 +149,12 @@ func parseGPGKey(ownerID int64, e *openpgp.Entity, verified bool) (*GPGKey, erro
148149
}
149150

150151
// Check emails
151-
userEmails, err := GetEmailAddresses(ownerID)
152+
userEmails, err := user_model.GetEmailAddresses(ownerID)
152153
if err != nil {
153154
return nil, err
154155
}
155156

156-
emails := make([]*EmailAddress, 0, len(e.Identities))
157+
emails := make([]*user_model.EmailAddress, 0, len(e.Identities))
157158
for _, ident := range e.Identities {
158159
if ident.Revocation != nil {
159160
continue
@@ -242,7 +243,7 @@ func DeleteGPGKey(doer *User, id int64) (err error) {
242243

243244
func checkKeyEmails(email string, keys ...*GPGKey) (bool, string) {
244245
uid := int64(0)
245-
var userEmails []*EmailAddress
246+
var userEmails []*user_model.EmailAddress
246247
var user *User
247248
for _, key := range keys {
248249
for _, e := range key.Emails {
@@ -252,7 +253,7 @@ func checkKeyEmails(email string, keys ...*GPGKey) (bool, string) {
252253
}
253254
if key.Verified && key.OwnerID != 0 {
254255
if uid != key.OwnerID {
255-
userEmails, _ = GetEmailAddresses(key.OwnerID)
256+
userEmails, _ = user_model.GetEmailAddresses(key.OwnerID)
256257
uid = key.OwnerID
257258
user = &User{ID: uid}
258259
_, _ = GetUser(user)

models/gpg_key_commit_verification.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"strings"
1111

1212
"code.gitea.io/gitea/models/db"
13+
user_model "code.gitea.io/gitea/models/user"
1314
"code.gitea.io/gitea/modules/git"
1415
"code.gitea.io/gitea/modules/log"
1516
"code.gitea.io/gitea/modules/setting"
@@ -167,7 +168,7 @@ func ParseCommitWithSignature(c *git.Commit) *CommitVerification {
167168
}
168169
}
169170

170-
committerEmailAddresses, _ := GetEmailAddresses(committer.ID)
171+
committerEmailAddresses, _ := user_model.GetEmailAddresses(committer.ID)
171172
activated := false
172173
for _, e := range committerEmailAddresses {
173174
if e.IsActivated && strings.EqualFold(e.Email, c.Committer.Email) {

models/org.go

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111

1212
"code.gitea.io/gitea/models/db"
1313
"code.gitea.io/gitea/models/unit"
14+
user_model "code.gitea.io/gitea/models/user"
1415
"code.gitea.io/gitea/modules/log"
1516
"code.gitea.io/gitea/modules/setting"
1617
"code.gitea.io/gitea/modules/storage"
@@ -163,25 +164,25 @@ func CreateOrganization(org, owner *User) (err error) {
163164
org.NumMembers = 1
164165
org.Type = UserTypeOrganization
165166

166-
sess := db.NewSession(db.DefaultContext)
167-
defer sess.Close()
168-
if err = sess.Begin(); err != nil {
167+
ctx, committer, err := db.TxContext()
168+
if err != nil {
169169
return err
170170
}
171+
defer committer.Close()
171172

172-
if err = deleteUserRedirect(sess, org.Name); err != nil {
173+
if err = user_model.DeleteUserRedirect(ctx, org.Name); err != nil {
173174
return err
174175
}
175176

176-
if _, err = sess.Insert(org); err != nil {
177+
if err = db.Insert(ctx, org); err != nil {
177178
return fmt.Errorf("insert organization: %v", err)
178179
}
179-
if err = org.generateRandomAvatar(sess); err != nil {
180+
if err = org.generateRandomAvatar(db.GetEngine(ctx)); err != nil {
180181
return fmt.Errorf("generate random avatar: %v", err)
181182
}
182183

183184
// Add initial creator to organization and owner team.
184-
if _, err = sess.Insert(&OrgUser{
185+
if err = db.Insert(ctx, &OrgUser{
185186
UID: owner.ID,
186187
OrgID: org.ID,
187188
}); err != nil {
@@ -198,7 +199,7 @@ func CreateOrganization(org, owner *User) (err error) {
198199
IncludesAllRepositories: true,
199200
CanCreateOrgRepo: true,
200201
}
201-
if _, err = sess.Insert(t); err != nil {
202+
if err = db.Insert(ctx, t); err != nil {
202203
return fmt.Errorf("insert owner team: %v", err)
203204
}
204205

@@ -212,22 +213,19 @@ func CreateOrganization(org, owner *User) (err error) {
212213
})
213214
}
214215

215-
if _, err = sess.Insert(&units); err != nil {
216-
if err := sess.Rollback(); err != nil {
217-
log.Error("CreateOrganization: sess.Rollback: %v", err)
218-
}
216+
if err = db.Insert(ctx, &units); err != nil {
219217
return err
220218
}
221219

222-
if _, err = sess.Insert(&TeamUser{
220+
if err = db.Insert(ctx, &TeamUser{
223221
UID: owner.ID,
224222
OrgID: org.ID,
225223
TeamID: t.ID,
226224
}); err != nil {
227225
return fmt.Errorf("insert team-user relation: %v", err)
228226
}
229227

230-
return sess.Commit()
228+
return committer.Commit()
231229
}
232230

233231
// GetOrgByName returns organization by given name.

models/ssh_key_principals.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"strings"
1111

1212
"code.gitea.io/gitea/models/db"
13+
user_model "code.gitea.io/gitea/models/user"
1314
"code.gitea.io/gitea/modules/setting"
1415
)
1516

@@ -88,7 +89,7 @@ func CheckPrincipalKeyString(user *User, content string) (_ string, err error) {
8889
case "anything":
8990
return content, nil
9091
case "email":
91-
emails, err := GetEmailAddresses(user.ID)
92+
emails, err := user_model.GetEmailAddresses(user.ID)
9293
if err != nil {
9394
return "", err
9495
}

0 commit comments

Comments
 (0)