Migrate GORM to generics API, simplify user-domain relationship, refactor models
This commit is contained in:
parent
19ce2224b8
commit
560b40503a
9 changed files with 192 additions and 117 deletions
|
|
@ -26,7 +26,8 @@ func (d *DB) GetAllMailUsers() ([]VirtualUser, error) {
|
|||
// Returns a slice of VirtualUser or an error.
|
||||
func (d *DB) GetUsersByDomain(domainID uint) ([]VirtualUser, error) {
|
||||
var users []VirtualUser
|
||||
if err := d.Where("domain_id = ?", domainID).Find(&users).Error; err != nil {
|
||||
err := d.Where("domain_id = ?", domainID).Find(&users).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if users == nil {
|
||||
|
|
@ -40,7 +41,8 @@ func (d *DB) GetUsersByDomain(domainID uint) ([]VirtualUser, error) {
|
|||
// Returns the VirtualUser or an error (including "record not found").
|
||||
func (d *DB) GetUserByID(id uint) (*VirtualUser, error) {
|
||||
var user VirtualUser
|
||||
if err := d.Preload("Domain").First(&user, id).Error; err != nil {
|
||||
err := d.Where("id = ?", id).Preload("Domain").First(&user).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &user, nil
|
||||
|
|
@ -51,7 +53,8 @@ func (d *DB) GetUserByID(id uint) (*VirtualUser, error) {
|
|||
// Returns the VirtualUser or an error (including "record not found").
|
||||
func (d *DB) GetUserByEmail(email string) (*VirtualUser, error) {
|
||||
var user VirtualUser
|
||||
if err := d.Where("email = ?", email).First(&user).Error; err != nil {
|
||||
err := d.Where("email = ?", email).First(&user).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &user, nil
|
||||
|
|
@ -98,7 +101,7 @@ func (d *DB) CreateUserInDomain(email, passwordHash string, quota int64, domainI
|
|||
// passwordHash: the new bcrypt hash of the password.
|
||||
// Returns an error if the update fails.
|
||||
func (d *DB) UpdateUserPassword(id uint, passwordHash string) error {
|
||||
return d.Model(&VirtualUser{}).Where("id = ?", id).Update("password", passwordHash).Error
|
||||
return d.Model(&VirtualUser{}).Updates(map[string]any{"password": passwordHash}).Error
|
||||
}
|
||||
|
||||
// UpdateUserQuota updates the mailbox quota for a mail user.
|
||||
|
|
@ -106,7 +109,7 @@ func (d *DB) UpdateUserPassword(id uint, passwordHash string) error {
|
|||
// quota: new quota in bytes (0 = use system default).
|
||||
// Returns an error if the update fails.
|
||||
func (d *DB) UpdateUserQuota(id uint, quota int64) error {
|
||||
return d.Model(&VirtualUser{}).Where("id = ?", id).Update("quota", quota).Error
|
||||
return d.Model(&VirtualUser{}).Updates(map[string]any{"quota": quota}).Error
|
||||
}
|
||||
|
||||
// DeleteUser permanently removes a mail user from the database.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue