Merge branch 'master' of https://github.com/ONLYOFFICE/CommunityServer-AspNetCore
This commit is contained in:
commit
bea24a4b5e
@ -1,11 +1,12 @@
|
|||||||
import React, { Suspense, lazy } from "react";
|
import React, { Suspense, lazy } from "react";
|
||||||
import { BrowserRouter, Route, Switch } from "react-router-dom";
|
import { Router, Route, Switch } from "react-router-dom";
|
||||||
import { Loader } from "asc-web-components";
|
import { Loader } from "asc-web-components";
|
||||||
import StudioLayout from "./components/Layout/index";
|
import StudioLayout from "./components/Layout/index";
|
||||||
import Login from "./components/pages/Login";
|
import Login from "./components/pages/Login";
|
||||||
import { PrivateRoute } from "./helpers/privateRoute";
|
import { PrivateRoute } from "./helpers/privateRoute";
|
||||||
import PublicRoute from "./helpers/publicRoute";
|
import PublicRoute from "./helpers/publicRoute";
|
||||||
import { Error404 } from "./components/pages/Error";
|
import { Error404 } from "./components/pages/Error";
|
||||||
|
import history from './history';
|
||||||
|
|
||||||
const Home = lazy(() => import("./components/pages/Home"));
|
const Home = lazy(() => import("./components/pages/Home"));
|
||||||
const About = lazy(() => import("./components/pages/About"));
|
const About = lazy(() => import("./components/pages/About"));
|
||||||
@ -13,7 +14,7 @@ const Confirm = lazy(() => import("./components/pages/Confirm"));
|
|||||||
|
|
||||||
const App = () => {
|
const App = () => {
|
||||||
return (
|
return (
|
||||||
<BrowserRouter>
|
<Router history={history}>
|
||||||
<StudioLayout>
|
<StudioLayout>
|
||||||
<Suspense
|
<Suspense
|
||||||
fallback={<Loader className="pageLoader" type="rombs" size={40} />}
|
fallback={<Loader className="pageLoader" type="rombs" size={40} />}
|
||||||
@ -27,7 +28,7 @@ const App = () => {
|
|||||||
</Switch>
|
</Switch>
|
||||||
</Suspense>
|
</Suspense>
|
||||||
</StudioLayout>
|
</StudioLayout>
|
||||||
</BrowserRouter>
|
</Router>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import React, { Suspense, lazy } from "react";
|
import React, { Suspense, lazy } from "react";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { Redirect, Route, Switch } from "react-router-dom";
|
import { Route, Switch } from "react-router-dom";
|
||||||
import { Loader } from "asc-web-components";
|
import { Loader } from "asc-web-components";
|
||||||
import ConfirmRoute from "../../../helpers/confirmRoute";
|
import ConfirmRoute from "../../../helpers/confirmRoute";
|
||||||
import i18n from "./i18n";
|
import i18n from "./i18n";
|
||||||
@ -31,6 +31,7 @@ const Confirm = ({ match, language }) => {
|
|||||||
component={CreateUserForm}
|
component={CreateUserForm}
|
||||||
/>
|
/>
|
||||||
<ConfirmRoute
|
<ConfirmRoute
|
||||||
|
forUnauthorized
|
||||||
path={`${match.path}/Activation`}
|
path={`${match.path}/Activation`}
|
||||||
component={ActivateUserForm}
|
component={ActivateUserForm}
|
||||||
/>
|
/>
|
||||||
|
@ -111,13 +111,14 @@ class Confirm extends React.PureComponent {
|
|||||||
firstname: this.state.firstName,
|
firstname: this.state.firstName,
|
||||||
lastname: this.state.lastName
|
lastname: this.state.lastName
|
||||||
};
|
};
|
||||||
logout();
|
|
||||||
activateConfirmUser(personalData, loginData, this.state.key, this.state.userId, EmployeeActivationStatus.Activated)
|
activateConfirmUser(personalData, loginData, this.state.key, this.state.userId, EmployeeActivationStatus.Activated)
|
||||||
.then(() => window.location.href = '/')
|
.then(() => window.location.href = '/')
|
||||||
.catch(e => {
|
.catch(e => {
|
||||||
console.error("activate error", e);
|
console.error("activate error", e);
|
||||||
this.setState({ errorText: e.message });
|
this.setState({
|
||||||
this.setState({ isLoading: false });
|
errorText: e.message,
|
||||||
|
isLoading: false
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -321,4 +322,4 @@ function mapStateToProps(state) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export default connect(mapStateToProps, { getConfirmationInfo, activateConfirmUser,logout })(withRouter(withTranslation()(ActivateUserForm)));
|
export default connect(mapStateToProps, { getConfirmationInfo, activateConfirmUser, logout })(withRouter(withTranslation()(ActivateUserForm)));
|
@ -8,6 +8,23 @@ import PropTypes from 'prop-types';
|
|||||||
|
|
||||||
|
|
||||||
class ChangeEmail extends React.PureComponent {
|
class ChangeEmail extends React.PureComponent {
|
||||||
|
componentDidMount() {
|
||||||
|
const { changeEmail, userId, isLoaded, linkData } = this.props;
|
||||||
|
if (isLoaded) {
|
||||||
|
const email = linkData.email;
|
||||||
|
const key = linkData.confirmHeader;
|
||||||
|
changeEmail(userId, { email }, key)
|
||||||
|
.then((res) => {
|
||||||
|
console.log('change client email success', res)
|
||||||
|
window.location.href = `${window.location.origin}/products/people/view/@self?email_change=success`;
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
console.log('change client email error', e)
|
||||||
|
window.location.href = `${window.location.origin}/error=${e.message}`;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
componentDidUpdate() {
|
componentDidUpdate() {
|
||||||
const { changeEmail, userId, isLoaded, linkData } = this.props;
|
const { changeEmail, userId, isLoaded, linkData } = this.props;
|
||||||
if (isLoaded) {
|
if (isLoaded) {
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Route } from 'react-router-dom';
|
import { Route, Redirect } from 'react-router-dom';
|
||||||
import { ValidationResult } from './../helpers/constants';
|
import { ValidationResult } from './../helpers/constants';
|
||||||
import { decomposeConfirmLink } from './../helpers/converters';
|
import { decomposeConfirmLink } from './../helpers/converters';
|
||||||
import { PageLayout, Loader } from "asc-web-components";
|
import { PageLayout, Loader } from "asc-web-components";
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { checkConfirmLink } from './../store/auth/actions';
|
import { checkConfirmLink } from './../store/auth/actions';
|
||||||
import { withRouter } from "react-router";
|
import { withRouter } from "react-router";
|
||||||
|
import Cookies from "universal-cookie";
|
||||||
|
import { AUTH_KEY } from './constants';
|
||||||
|
|
||||||
class ConfirmRoute extends React.Component {
|
class ConfirmRoute extends React.Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
@ -56,24 +58,38 @@ class ConfirmRoute extends React.Component {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((e) => history.push(`${path}/error=${e}`));
|
.catch((e) => {
|
||||||
|
history.push(`${path}/error=${e.message}`);
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { component: Component, ...rest } = this.props;
|
const { component: Component, isAuthenticated, ...rest } = this.props;
|
||||||
|
let path = '';
|
||||||
|
if (!isAuthenticated) {
|
||||||
|
path = '/login';
|
||||||
|
}
|
||||||
|
const { forUnauthorized } = rest;
|
||||||
return (
|
return (
|
||||||
<Route
|
<Route
|
||||||
{...rest}
|
{...rest}
|
||||||
render={props =>
|
render={props =>
|
||||||
!this.state.isLoaded ? (
|
forUnauthorized && (new Cookies()).get(AUTH_KEY)
|
||||||
<PageLayout
|
? <Redirect
|
||||||
sectionBodyContent={
|
to={{
|
||||||
<Loader className="pageLoader" type="rombs" size={40} />
|
pathname: `${path}/error=Access error`,
|
||||||
}
|
state: { from: props.location }
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
) : (
|
: !this.state.isLoaded ? (
|
||||||
<Component {...props = { ...props, linkData: this.state.componentProps }} />
|
<PageLayout
|
||||||
)
|
sectionBodyContent={
|
||||||
|
<Loader className="pageLoader" type="rombs" size={40} />
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<Component {...props = { ...props, linkData: this.state.componentProps }} />
|
||||||
|
)
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
|
6
web/ASC.Web.Client/src/helpers/utils.js
Normal file
6
web/ASC.Web.Client/src/helpers/utils.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
export function checkResponseError(res) {
|
||||||
|
if (res && res.data && res.data.error) {
|
||||||
|
console.error(res.data.error);
|
||||||
|
throw new Error(res.data.error.message);
|
||||||
|
}
|
||||||
|
}
|
3
web/ASC.Web.Client/src/history.js
Normal file
3
web/ASC.Web.Client/src/history.js
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
import { createBrowserHistory } from 'history';
|
||||||
|
|
||||||
|
export default createBrowserHistory();
|
@ -1,5 +1,6 @@
|
|||||||
import * as api from '../services/api';
|
import * as api from '../services/api';
|
||||||
import setAuthorizationToken from '../services/setAuthorizationToken';
|
import setAuthorizationToken from '../services/setAuthorizationToken';
|
||||||
|
import { checkResponseError } from '../../helpers/utils';
|
||||||
|
|
||||||
export const LOGIN_POST = 'LOGIN_POST';
|
export const LOGIN_POST = 'LOGIN_POST';
|
||||||
export const SET_CURRENT_USER = 'SET_CURRENT_USER';
|
export const SET_CURRENT_USER = 'SET_CURRENT_USER';
|
||||||
@ -74,20 +75,34 @@ export function setNewEmail(email) {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export function getUser(dispatch) {
|
||||||
|
return api.getUser()
|
||||||
|
.then((res) => {
|
||||||
|
checkResponseError(res);
|
||||||
|
return dispatch(setCurrentUser(res.data.response));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export function getPortalSettings(dispatch) {
|
export function getPortalSettings(dispatch) {
|
||||||
return api.getSettings()
|
return api.getSettings()
|
||||||
.then(res => {
|
.then(res => {
|
||||||
checkResponseError(res);
|
checkResponseError(res);
|
||||||
return dispatch(setSettings(res.data.response))
|
return dispatch(setSettings(res.data.response));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getModules(dispatch) {
|
||||||
|
return api.getModulesList()
|
||||||
|
.then(res => {
|
||||||
|
checkResponseError(res);
|
||||||
|
return dispatch(setModules(res.data.response));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getUserInfo(dispatch) {
|
export function getUserInfo(dispatch) {
|
||||||
return api.getUser()
|
return getUser(dispatch)
|
||||||
.then((res) => dispatch(setCurrentUser(res.data.response)))
|
.then(getPortalSettings.bind(this, dispatch))
|
||||||
.then(() => getPortalSettings(dispatch))
|
.then(getModules.bind(this, dispatch))
|
||||||
.then(api.getModulesList)
|
|
||||||
.then((res) => dispatch(setModules(res.data.response)))
|
|
||||||
.then(() => dispatch(setIsLoaded(true)));
|
.then(() => dispatch(setIsLoaded(true)));
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -138,13 +153,6 @@ export function createConfirmUser(registerData, loginData, key) {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function checkResponseError(res) {
|
|
||||||
if (res && res.data && res.data.error) {
|
|
||||||
console.error(res.data.error);
|
|
||||||
throw new Error(res.data.error.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function changePassword(userId, password, key) {
|
export function changePassword(userId, password, key) {
|
||||||
return dispatch => {
|
return dispatch => {
|
||||||
return api.changePassword(userId, password, key)
|
return api.changePassword(userId, password, key)
|
||||||
|
Loading…
Reference in New Issue
Block a user