Another suggestion by @Tirokk

This commit is contained in:
Robert Schäfer 2019-06-20 15:29:19 +02:00
parent 9ec9034ea5
commit 1ed338542c

View File

@ -55,15 +55,15 @@ export default {
stillValid.setDate(stillValid.getDate() - 1) stillValid.setDate(stillValid.getDate() - 1)
const newHashedPassword = await bcrypt.hashSync(newPassword, 10) const newHashedPassword = await bcrypt.hashSync(newPassword, 10)
const cypher = ` const cypher = `
MATCH (r:PasswordReset {code: $code}) MATCH (pr:PasswordReset {code: $code})
MATCH (u:User {email: $email})-[:REQUESTED]->(r) MATCH (u:User {email: $email})-[:REQUESTED]->(pr)
WHERE duration.between(r.issuedAt, datetime()).days <= 0 AND r.usedAt IS NULL WHERE duration.between(pr.issuedAt, datetime()).days <= 0 AND pr.usedAt IS NULL
SET r.usedAt = datetime() SET pr.usedAt = datetime()
SET u.password = $newHashedPassword SET u.password = $newHashedPassword
RETURN r RETURN pr
` `
let transactionRes = await session.run(cypher, { stillValid, email, code, newHashedPassword }) let transactionRes = await session.run(cypher, { stillValid, email, code, newHashedPassword })
const [reset] = transactionRes.records.map(record => record.get('r')) const [reset] = transactionRes.records.map(record => record.get('pr'))
const result = !!(reset && reset.properties.usedAt) const result = !!(reset && reset.properties.usedAt)
session.close() session.close()
return result return result