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 { BrowserRouter, Route, Switch } from "react-router-dom";
|
||||
import { Router, Route, Switch } from "react-router-dom";
|
||||
import { Loader } from "asc-web-components";
|
||||
import StudioLayout from "./components/Layout/index";
|
||||
import Login from "./components/pages/Login";
|
||||
import { PrivateRoute } from "./helpers/privateRoute";
|
||||
import PublicRoute from "./helpers/publicRoute";
|
||||
import { Error404 } from "./components/pages/Error";
|
||||
import history from './history';
|
||||
|
||||
const Home = lazy(() => import("./components/pages/Home"));
|
||||
const About = lazy(() => import("./components/pages/About"));
|
||||
@ -13,7 +14,7 @@ const Confirm = lazy(() => import("./components/pages/Confirm"));
|
||||
|
||||
const App = () => {
|
||||
return (
|
||||
<BrowserRouter>
|
||||
<Router history={history}>
|
||||
<StudioLayout>
|
||||
<Suspense
|
||||
fallback={<Loader className="pageLoader" type="rombs" size={40} />}
|
||||
@ -27,7 +28,7 @@ const App = () => {
|
||||
</Switch>
|
||||
</Suspense>
|
||||
</StudioLayout>
|
||||
</BrowserRouter>
|
||||
</Router>
|
||||
);
|
||||
};
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import React, { Suspense, lazy } from "react";
|
||||
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 ConfirmRoute from "../../../helpers/confirmRoute";
|
||||
import i18n from "./i18n";
|
||||
@ -31,6 +31,7 @@ const Confirm = ({ match, language }) => {
|
||||
component={CreateUserForm}
|
||||
/>
|
||||
<ConfirmRoute
|
||||
forUnauthorized
|
||||
path={`${match.path}/Activation`}
|
||||
component={ActivateUserForm}
|
||||
/>
|
||||
|
@ -111,13 +111,14 @@ class Confirm extends React.PureComponent {
|
||||
firstname: this.state.firstName,
|
||||
lastname: this.state.lastName
|
||||
};
|
||||
logout();
|
||||
activateConfirmUser(personalData, loginData, this.state.key, this.state.userId, EmployeeActivationStatus.Activated)
|
||||
.then(() => window.location.href = '/')
|
||||
.catch(e => {
|
||||
console.error("activate error", e);
|
||||
this.setState({ errorText: e.message });
|
||||
this.setState({ isLoading: false });
|
||||
this.setState({
|
||||
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 {
|
||||
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() {
|
||||
const { changeEmail, userId, isLoaded, linkData } = this.props;
|
||||
if (isLoaded) {
|
||||
|
@ -1,11 +1,13 @@
|
||||
import React from 'react';
|
||||
import { Route } from 'react-router-dom';
|
||||
import { Route, Redirect } from 'react-router-dom';
|
||||
import { ValidationResult } from './../helpers/constants';
|
||||
import { decomposeConfirmLink } from './../helpers/converters';
|
||||
import { PageLayout, Loader } from "asc-web-components";
|
||||
import { connect } from 'react-redux';
|
||||
import { checkConfirmLink } from './../store/auth/actions';
|
||||
import { withRouter } from "react-router";
|
||||
import Cookies from "universal-cookie";
|
||||
import { AUTH_KEY } from './constants';
|
||||
|
||||
class ConfirmRoute extends React.Component {
|
||||
constructor(props) {
|
||||
@ -56,24 +58,38 @@ class ConfirmRoute extends React.Component {
|
||||
break;
|
||||
}
|
||||
})
|
||||
.catch((e) => history.push(`${path}/error=${e}`));
|
||||
.catch((e) => {
|
||||
history.push(`${path}/error=${e.message}`);
|
||||
})
|
||||
}
|
||||
|
||||
render() {
|
||||
const { component: Component, ...rest } = this.props;
|
||||
const { component: Component, isAuthenticated, ...rest } = this.props;
|
||||
let path = '';
|
||||
if (!isAuthenticated) {
|
||||
path = '/login';
|
||||
}
|
||||
const { forUnauthorized } = rest;
|
||||
return (
|
||||
<Route
|
||||
{...rest}
|
||||
render={props =>
|
||||
!this.state.isLoaded ? (
|
||||
<PageLayout
|
||||
sectionBodyContent={
|
||||
<Loader className="pageLoader" type="rombs" size={40} />
|
||||
}
|
||||
forUnauthorized && (new Cookies()).get(AUTH_KEY)
|
||||
? <Redirect
|
||||
to={{
|
||||
pathname: `${path}/error=Access error`,
|
||||
state: { from: props.location }
|
||||
}}
|
||||
/>
|
||||
) : (
|
||||
<Component {...props = { ...props, linkData: this.state.componentProps }} />
|
||||
)
|
||||
: !this.state.isLoaded ? (
|
||||
<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 setAuthorizationToken from '../services/setAuthorizationToken';
|
||||
import { checkResponseError } from '../../helpers/utils';
|
||||
|
||||
export const LOGIN_POST = 'LOGIN_POST';
|
||||
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) {
|
||||
return api.getSettings()
|
||||
.then(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) {
|
||||
return api.getUser()
|
||||
.then((res) => dispatch(setCurrentUser(res.data.response)))
|
||||
.then(() => getPortalSettings(dispatch))
|
||||
.then(api.getModulesList)
|
||||
.then((res) => dispatch(setModules(res.data.response)))
|
||||
return getUser(dispatch)
|
||||
.then(getPortalSettings.bind(this, dispatch))
|
||||
.then(getModules.bind(this, dispatch))
|
||||
.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) {
|
||||
return dispatch => {
|
||||
return api.changePassword(userId, password, key)
|
||||
|
Loading…
Reference in New Issue
Block a user