1
0

Integration tests (#71)

This commit is contained in:
konrad
2019-04-21 18:18:17 +00:00
committed by Gitea
parent 46efcb1005
commit 3872d1d8a7
69 changed files with 3924 additions and 136 deletions

View File

@ -57,10 +57,20 @@ func Login(c echo.Context) error {
}
// Create token
token := jwt.New(jwt.SigningMethodHS256)
t, err := CreateNewJWTTokenForUser(&user)
if err != nil {
return err
}
return c.JSON(http.StatusOK, Token{Token: t})
}
// CreateNewJWTTokenForUser generates and signes a new jwt token for a user. This is a global function to be able to call it from integration tests.
func CreateNewJWTTokenForUser(user *models.User) (token string, err error) {
t := jwt.New(jwt.SigningMethodHS256)
// Set claims
claims := token.Claims.(jwt.MapClaims)
claims := t.Claims.(jwt.MapClaims)
claims["username"] = user.Username
claims["email"] = user.Email
claims["id"] = user.ID
@ -70,10 +80,5 @@ func Login(c echo.Context) error {
claims["avatar"] = hex.EncodeToString(avatar[:])
// Generate encoded token and send it as response.
t, err := token.SignedString([]byte(viper.GetString("service.JWTSecret")))
if err != nil {
return err
}
return c.JSON(http.StatusOK, Token{Token: t})
return t.SignedString([]byte(viper.GetString("service.JWTSecret")))
}

View File

@ -55,6 +55,10 @@ func UserChangePassword(c echo.Context) error {
return echo.NewHTTPError(http.StatusBadRequest, "No password provided.")
}
if newPW.OldPassword == "" {
return handler.HandleHTTPError(models.ErrEmptyOldPassword{}, c)
}
// Check the current password
if _, err = models.CheckUserCredentials(&models.UserLogin{Username: doer.Username, Password: newPW.OldPassword}); err != nil {
return handler.HandleHTTPError(err, c)