]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blobdiff - db/user.go
User roles.
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / db / user.go
index aed0ac173c92652338c213629abbe5d276fff663..24ce491e80ab9e4e3b7ee9135912aa4da1d9c853 100644 (file)
@@ -11,10 +11,16 @@ const (
        AwaitingConfirmation
 )
 
+type UserRole string
+
+const RoleUser UserRole = "user"
+const RoleAdmin UserRole = "admin"
+
 type User struct {
        Id           int64
-       Email        string `sql:",unique,notnull"`
-       PasswordHash string `sql:",notnull"`
+       Role         UserRole
+       Email        string
+       PasswordHash string
        OtpSecret    string
        IsOtpSetup   bool
        Status       UserStatus
@@ -70,3 +76,19 @@ func SetOtpSecret(user *User, secret string, temporary bool) error {
 
        return DB.Update(user)
 }
+
+func SetPassword(user *User, password string) error {
+       var err error
+       user.PasswordHash, err = HashPassword(password)
+       if err != nil {
+               return err
+       }
+
+       return DB.Update(user)
+}
+
+func SetUserStatus(user *User, status UserStatus) error {
+       user.Status = status
+
+       return DB.Update(user)
+}