accounts-frontend/packages/app/services/authFlow/PermissionsState.ts

30 lines
908 B
TypeScript
Raw Normal View History

2016-03-02 02:06:14 +05:30
import AbstractState from './AbstractState';
import { AuthContext } from './AuthFlow';
import CompleteState from './CompleteState';
2016-03-02 02:06:14 +05:30
export default class PermissionsState extends AbstractState {
2020-05-24 04:38:24 +05:30
enter(context: AuthContext): Promise<void> | void {
context.navigate('/oauth/permissions', {
// replacing oauth entry point if currently on it
// to allow user easy go-back action to client's site
replace: context.getRequest().path.includes('oauth2'),
});
}
2016-03-02 02:06:14 +05:30
2020-05-24 04:38:24 +05:30
resolve(context: AuthContext): Promise<void> | void {
return this.process(context, true);
2020-05-24 04:38:24 +05:30
}
2016-03-02 02:06:14 +05:30
2020-05-24 04:38:24 +05:30
reject(context: AuthContext): void {
this.process(context, false);
}
2016-03-02 02:06:14 +05:30
process(context: AuthContext, accept: boolean): Promise<void> | void {
return context.setState(
2020-05-24 04:38:24 +05:30
new CompleteState({
accept,
}),
);
}
2016-03-02 02:06:14 +05:30
}