Invalidate password recovery tokens on eMail change (#10302)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
ab812207ab
Коммит
26d3362eca
@@ -622,3 +622,41 @@ func TestPermanentDeleteUser(t *testing.T) {
|
||||
t.Fatal("GetFileInfo after DeleteUser is nil")
|
||||
}
|
||||
}
|
||||
|
||||
func TestPasswordRecovery(t *testing.T) {
|
||||
th := Setup(t).InitBasic()
|
||||
defer th.TearDown()
|
||||
|
||||
token, err := th.App.CreatePasswordRecoveryToken(th.BasicUser.Id, th.BasicUser.Email)
|
||||
assert.Nil(t, err)
|
||||
|
||||
tokenData := struct {
|
||||
UserId string
|
||||
Email string
|
||||
}{}
|
||||
|
||||
err2 := json.Unmarshal([]byte(token.Extra), &tokenData)
|
||||
assert.Nil(t, err2)
|
||||
assert.Equal(t, th.BasicUser.Id, tokenData.UserId)
|
||||
assert.Equal(t, th.BasicUser.Email, tokenData.Email)
|
||||
|
||||
// Password token with same eMail as during creation
|
||||
err = th.App.ResetPasswordFromToken(token.Token, "abcdefgh")
|
||||
assert.Nil(t, err)
|
||||
|
||||
// Password token with modified eMail after creation
|
||||
token, err = th.App.CreatePasswordRecoveryToken(th.BasicUser.Id, th.BasicUser.Email)
|
||||
assert.Nil(t, err)
|
||||
|
||||
th.App.UpdateConfig(func (c *model.Config){
|
||||
*c.EmailSettings.RequireEmailVerification = false
|
||||
})
|
||||
|
||||
th.BasicUser.Email = th.MakeEmail()
|
||||
_, err = th.App.UpdateUser(th.BasicUser, false)
|
||||
assert.Nil(t, err)
|
||||
|
||||
err = th.App.ResetPasswordFromToken(token.Token, "abcdefgh")
|
||||
assert.NotNil(t, err)
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user