diff options
| author | Bobby <[email protected]> | 2025-07-13 14:22:20 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2025-07-13 14:22:20 +0530 |
| commit | 3d7f8602d45583f25e2428bf6f8123453646dc08 (patch) | |
| tree | ecd707d298099ae9fda55efc3f0d1daf48f7b6e9 /models/user.go | |
| parent | bf112649d039f8f02e2135a74d8b506f7c31c784 (diff) | |
| download | imageboard-3d7f8602d45583f25e2428bf6f8123453646dc08.tar.xz imageboard-3d7f8602d45583f25e2428bf6f8123453646dc08.zip | |
registration controllers and email sending support
Diffstat (limited to 'models/user.go')
| -rw-r--r-- | models/user.go | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/models/user.go b/models/user.go index 5607e68..3b92077 100644 --- a/models/user.go +++ b/models/user.go @@ -72,13 +72,27 @@ func (u *User) BeforeCreate(tx *gorm.DB) error { var userCount int64 if err := tx.Model(&User{}).Where("is_deleted = ?", false).Count(&userCount).Error; err != nil { - return err + return fmt.Errorf("failed to count existing users: %v", err) } if userCount == 0 { u.Level = UserLevelSuperAdmin // First user becomes Super Admin } + if len(u.Password) < config.Server.MinPasswordLength { + return fmt.Errorf("password must be at least %d characters long", config.Server.MinPasswordLength) + } + if len(u.Password) > 255 { + return fmt.Errorf("password must not exceed 255 characters") + } + + hashedPassword, err := bcrypt.GenerateFromPassword([]byte(u.Password), bcrypt.DefaultCost) + if err != nil { + return err + } + + u.Password = string(hashedPassword) + return nil } @@ -93,16 +107,13 @@ func (u *User) SetPassword(password string) error { if len(password) < config.Server.MinPasswordLength { return fmt.Errorf("password must be at least %d characters long", config.Server.MinPasswordLength) } - if len(password) > 255 { return fmt.Errorf("password must not exceed 255 characters") } - hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost) if err != nil { return err } - u.Password = string(hashedPassword) return nil } |
