skeleton for completing reset procedure

This commit is contained in:
GotPPay
2018-06-01 05:02:56 +02:00
parent 636b1a1523
commit f61c8b084d
3 changed files with 20 additions and 16 deletions

View File

@@ -113,13 +113,18 @@ func (c *passwordResetRepo) SetTokenOpened(token string) error {
const (
query = `UPDATE tab_password_reset a
SET a.opened = 1,
WHERE a.token = ? AND a.used = 0`
WHERE a.token = ? AND a.used = 0 AND a.expire_date < CURRENT_TIMESTAMP`
)
if _, err := c.conn.Exec(query, token); err != nil {
result, err := c.conn.Exec(query, token)
if err != nil {
return err
}
if updateCount, err := result.RowsAffected(); err != nil || updateCount == 0 {
return fmt.Errorf("Invalid token")
}
return nil
}

View File

@@ -101,22 +101,21 @@ func (c *controller) handleResetRequest(ctx echo.Context) error {
}
func (c *controller) handleResetComplete(ctx echo.Context) error {
/*
userEmail, err := routeutils.GetAndValidateStringParam(ctx, "email", "mandatory field")
if err != nil {
return routeutils.HandleAPIError(ctx, err)
}
userToken, err := routeutils.GetAndValidateStringParam(ctx, "token", "mandatory field")
if err != nil {
return routeutils.HandleAPIError(ctx, err)
}
//find if user with email exists
user, err := c.svc.Users.GetByEmail(userEmail)
if err != nil {
return routeutils.HandleAPIError(ctx, err)
}
var user viewmodel.User
if err = ctx.Bind(&user); err != nil {
return routeutils.HandleAPIError(ctx, err)
}
//create and store reset token
//get full user data connecting user ID and token in password reset table
//send email with reset link
*/
//write new password in database
//set token used
return routeutils.ResponseAPIOK(ctx, nil)
}

View File

@@ -8,7 +8,7 @@ import (
const (
resetRequest = "/request/:email"
resetComplete = "/complete"
resetComplete = "/complete/:token"
tokenOpen = "/open/:token"
)