fix(server): make account.reset a flow event

https://github.com/mozilla/fxa-auth-server/pull/1584

r=rfk
This commit is contained in:
Phil Booth 2016-12-03 04:49:37 -10:00 коммит произвёл GitHub
Родитель 1d49428aa8
Коммит ed9ec79565
5 изменённых файлов: 19 добавлений и 9 удалений

Просмотреть файл

@ -60,6 +60,7 @@ in a sign-in or sign-up flow:
|`account.verified`|A new account has been verified via email.|
|`account.keyfetch`|Sync encryption keys have been fetched.|
|`account.signed`|A certificate has been signed.|
|`account.reset`|An account has been reset.|
|`account.login.confirmedUnblockCode`|A user has successfully unblocked their account.|
|`account.login.sentUnblockCode`|A sign-in unblock email has been sent to the user.|
|`password.forgot.send_code.start`|A user has initiated the password reset flow.|
@ -203,6 +204,10 @@ in the preceding five days.
were fixed in the content server]
(https://github.com/mozilla/fxa-content-server/pull/4478).
* [The `account.reset` event
was made a flow event]
(https://github.com/mozilla/fxa-auth-server/pull/1584).
### Train 75
* [The correct `service` parameter

Просмотреть файл

@ -17,6 +17,7 @@ var StatsDCollector = require('./metrics/statsd')
// Don't log the error for those events.
const OPTIONAL_FLOW_EVENTS = {
'account.keyfetch': true,
'account.reset': true,
'account.signed': true
}

Просмотреть файл

@ -28,7 +28,6 @@ const ACTIVITY_EVENTS = new Set([
const NOT_FLOW_EVENTS = new Set([
'account.changedPassword',
'account.deleted',
'account.reset',
'device.created',
'device.deleted',
'device.updated'

Просмотреть файл

@ -1808,6 +1808,16 @@ module.exports = function (
var account, sessionToken, keyFetchToken, verifyHash, wrapKb, devicesToNotify
var hasSessionToken = request.payload.sessionToken
request.validateMetricsContext()
let flowCompleteSignal
if (requestHelper.wantsKeys(request)) {
flowCompleteSignal = 'account.signed'
} else {
flowCompleteSignal = 'account.reset'
}
request.setMetricsFlowCompleteSignal(flowCompleteSignal)
return fetchDevicesToNotify()
.then(resetAccountData)
.then(createSessionToken)
@ -1888,14 +1898,6 @@ module.exports = function (
.then(
function (wrapKbData) {
wrapKb = wrapKbData
let flowCompleteSignal
if (requestHelper.wantsKeys(request)) {
flowCompleteSignal = 'account.signed'
} else {
flowCompleteSignal = 'account.login'
}
request.setMetricsFlowCompleteSignal(flowCompleteSignal)
}
)
}

Просмотреть файл

@ -365,6 +365,9 @@ describe('/account/reset', function () {
assert.equal(securityEvent.ipAddr, clientAddress)
assert.equal(securityEvent.name, 'account.reset')
assert.equal(mockMetricsContext.validate.callCount, 1, 'metricsContext.validate was called')
assert.equal(mockMetricsContext.validate.args[0].length, 0, 'validate was called without arguments')
assert.equal(mockMetricsContext.setFlowCompleteSignal.callCount, 1, 'metricsContext.setFlowCompleteSignal was called once')
args = mockMetricsContext.setFlowCompleteSignal.args[0]
assert.equal(args.length, 1, 'metricsContext.setFlowCompleteSignal was passed one argument')