accounts-frontend/src/services/authFlow/ForgotPasswordState.js
2016-05-14 23:53:58 +03:00

40 lines
1.0 KiB
JavaScript

import AbstractState from './AbstractState';
import LoginState from './LoginState';
import CompleteState from './CompleteState';
import RecoverPasswordState from './RecoverPasswordState';
export default class ForgotPasswordState extends AbstractState {
enter(context) {
const {user} = context.getState();
if (user.isGuest) {
if (this.getLogin(context)) {
context.navigate('/forgot-password');
} else {
context.setState(new LoginState());
}
} else {
context.setState(new CompleteState());
}
}
resolve(context) {
context.run('forgotPassword', {login: this.getLogin(context)})
.then(() => context.setState(new RecoverPasswordState()));
}
goBack(context) {
context.setState(new LoginState());
}
reject(context) {
context.setState(new RecoverPasswordState());
}
getLogin(context) {
const {user} = context.getState();
return user.email || user.username;
}
}