implemented user deactivation

This commit is contained in:
Fran Jurmanović
2021-05-22 17:29:17 +02:00
parent 1657834b40
commit a84f58dee1
7 changed files with 112 additions and 81 deletions

View File

@@ -57,6 +57,13 @@ func (us *UsersService) Login(loginBody *models.Login) (*models.Token, *models.E
return tokenPayload, exceptionReturn
}
if !check.IsActive {
exceptionReturn.Message = "Can't log in. User is deactivated."
exceptionReturn.ErrorCode = "400106"
exceptionReturn.StatusCode = 400
return tokenPayload, exceptionReturn
}
if bcrypt.CompareHashAndPassword([]byte(check.Password), []byte(loginBody.Password)) != nil {
exceptionReturn.Message = "Incorrect password"
exceptionReturn.ErrorCode = "400104"
@@ -72,6 +79,34 @@ func (us *UsersService) Login(loginBody *models.Login) (*models.Token, *models.E
return tokenPayload, exceptionReturn
}
func (us *UsersService) Deactivate(auth *models.Auth) (*models.MessageResponse, *models.Exception) {
mm := new(models.MessageResponse)
me := new(models.Exception)
um := new(models.User)
err := us.Db.Model(um).Where("? = ?", pg.Ident("id"), auth.Id).Select()
if err != nil {
me.ErrorCode = "404101"
me.Message = "User not found"
me.StatusCode = 404
return mm, me
}
um.IsActive = false
_, err = us.Db.Model(um).Where("? = ?", pg.Ident("id"), auth.Id).Update()
if err != nil {
me.ErrorCode = "400105"
me.Message = "Could not deactivate user"
me.StatusCode = 400
return mm, me
}
mm.Message = "User successfully deactivated."
return mm, me
}
func CreateToken(user *models.User) (string, error) {
atClaims := jwt.MapClaims{}
atClaims["authorized"] = true