2016-01-03 01:54:07 +05:30
|
|
|
import React from 'react';
|
|
|
|
import { Route, IndexRoute } from 'react-router';
|
|
|
|
|
2016-01-04 02:48:42 +05:30
|
|
|
import RootPage from 'pages/root/RootPage';
|
|
|
|
import IndexPage from 'pages/index/IndexPage';
|
2016-01-16 17:36:22 +05:30
|
|
|
import AuthPage from 'pages/auth/AuthPage';
|
|
|
|
|
2016-03-02 02:06:14 +05:30
|
|
|
import { authenticate } from 'components/user/actions';
|
2016-02-26 11:55:47 +05:30
|
|
|
|
2016-02-23 11:27:16 +05:30
|
|
|
import OAuthInit from 'components/auth/OAuthInit';
|
2016-01-16 17:36:22 +05:30
|
|
|
import Register from 'components/auth/Register';
|
|
|
|
import Login from 'components/auth/Login';
|
|
|
|
import Permissions from 'components/auth/Permissions';
|
|
|
|
import Activation from 'components/auth/Activation';
|
|
|
|
import Password from 'components/auth/Password';
|
2016-02-13 20:58:47 +05:30
|
|
|
import Logout from 'components/auth/Logout';
|
2016-02-26 04:12:20 +05:30
|
|
|
import PasswordChange from 'components/auth/PasswordChange';
|
2016-02-28 02:56:13 +05:30
|
|
|
import ForgotPassword from 'components/auth/ForgotPassword';
|
2016-01-03 01:54:07 +05:30
|
|
|
|
2016-03-02 02:06:14 +05:30
|
|
|
import authFlow from 'services/authFlow';
|
2016-01-18 10:58:43 +05:30
|
|
|
|
2016-03-02 02:06:14 +05:30
|
|
|
export default function routesFactory(store) {
|
2016-02-26 11:55:47 +05:30
|
|
|
const state = store.getState();
|
|
|
|
if (state.user.token) {
|
|
|
|
// authorizing user if it is possible
|
2016-02-26 23:43:41 +05:30
|
|
|
store.dispatch(authenticate(state.user.token));
|
2016-02-26 11:55:47 +05:30
|
|
|
}
|
|
|
|
|
2016-03-02 02:06:14 +05:30
|
|
|
authFlow.setStore(store);
|
|
|
|
|
|
|
|
const onEnter = {
|
|
|
|
onEnter: ({location}, replace) => authFlow.handleRequest(location.pathname, replace)
|
|
|
|
};
|
|
|
|
|
2016-02-13 20:58:47 +05:30
|
|
|
return (
|
|
|
|
<Route path="/" component={RootPage}>
|
2016-03-02 02:06:14 +05:30
|
|
|
<IndexRoute component={IndexPage} />
|
|
|
|
|
|
|
|
<Route path="oauth" component={OAuthInit} {...onEnter} />
|
|
|
|
<Route path="logout" component={Logout} {...onEnter} />
|
2016-02-13 20:58:47 +05:30
|
|
|
|
|
|
|
<Route path="auth" component={AuthPage}>
|
2016-03-02 02:06:14 +05:30
|
|
|
<Route path="/login" components={new Login()} {...onEnter} />
|
|
|
|
<Route path="/password" components={new Password()} {...onEnter} />
|
|
|
|
<Route path="/register" components={new Register()} {...onEnter} />
|
|
|
|
<Route path="/activation" components={new Activation()} {...onEnter} />
|
|
|
|
<Route path="/oauth/permissions" components={new Permissions()} {...onEnter} />
|
|
|
|
<Route path="/password-change" components={new PasswordChange()} {...onEnter} />
|
|
|
|
<Route path="/forgot-password" components={new ForgotPassword()} {...onEnter} />
|
2016-02-13 20:58:47 +05:30
|
|
|
</Route>
|
|
|
|
</Route>
|
|
|
|
);
|
|
|
|
}
|