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 ( const (
query = `UPDATE tab_password_reset a query = `UPDATE tab_password_reset a
SET a.opened = 1, 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 return err
} }
if updateCount, err := result.RowsAffected(); err != nil || updateCount == 0 {
return fmt.Errorf("Invalid token")
}
return nil return nil
} }

View File

@@ -101,22 +101,21 @@ func (c *controller) handleResetRequest(ctx echo.Context) error {
} }
func (c *controller) handleResetComplete(ctx echo.Context) error { func (c *controller) handleResetComplete(ctx echo.Context) error {
/* userToken, err := routeutils.GetAndValidateStringParam(ctx, "token", "mandatory field")
userEmail, err := routeutils.GetAndValidateStringParam(ctx, "email", "mandatory field") if err != nil {
if err != nil { return routeutils.HandleAPIError(ctx, err)
return routeutils.HandleAPIError(ctx, err) }
}
//find if user with email exists var user viewmodel.User
user, err := c.svc.Users.GetByEmail(userEmail) if err = ctx.Bind(&user); err != nil {
if err != nil { return routeutils.HandleAPIError(ctx, err)
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) return routeutils.ResponseAPIOK(ctx, nil)
} }

View File

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