+
+
+
{children}
);
+
+Layout.propTypes = {
+ handleLogout: PropTypes.func,
+ restricted: PropTypes.bool // hide elements from a user that's logged out
+};
+
+export default Layout;
diff --git a/client/coral-admin/src/constants/auth.js b/client/coral-admin/src/constants/auth.js
index f77deb670..88a9c4a3f 100644
--- a/client/coral-admin/src/constants/auth.js
+++ b/client/coral-admin/src/constants/auth.js
@@ -7,3 +7,7 @@ export const CHECK_CSRF_TOKEN = 'CHECK_CSRF_TOKEN';
export const LOGOUT_REQUEST = 'LOGOUT_REQUEST';
export const LOGOUT_SUCCESS = 'LOGOUT_SUCCESS';
export const LOGOUT_FAILURE = 'LOGOUT_FAILURE';
+
+export const LOGIN_REQUEST = 'LOGIN_REQUEST';
+export const LOGIN_SUCCESS = 'LOGIN_SUCCESS';
+export const LOGIN_FAILURE = 'LOGIN_FAILURE';
diff --git a/client/coral-admin/src/containers/Install/InstallContainer.js b/client/coral-admin/src/containers/Install/InstallContainer.js
index 7a8634180..123a1493b 100644
--- a/client/coral-admin/src/containers/Install/InstallContainer.js
+++ b/client/coral-admin/src/containers/Install/InstallContainer.js
@@ -2,7 +2,7 @@ import React, {Component} from 'react';
import {connect} from 'react-redux';
import styles from './style.css';
import {Wizard, WizardNav} from 'coral-ui';
-import {Layout} from '../../components/ui/Layout';
+import Layout from 'coral-admin/src/components/ui/Layout';
import {
nextStep,
diff --git a/client/coral-admin/src/containers/LayoutContainer.js b/client/coral-admin/src/containers/LayoutContainer.js
index 5ce208503..ce3c7d1bf 100644
--- a/client/coral-admin/src/containers/LayoutContainer.js
+++ b/client/coral-admin/src/containers/LayoutContainer.js
@@ -1,24 +1,23 @@
import React, {Component} from 'react';
import {connect} from 'react-redux';
-import {Layout} from '../components/ui/Layout';
-import {checkLogin, logout} from '../actions/auth';
+import Layout from '../components/ui/Layout';
+import {checkLogin, handleLogin, logout} from '../actions/auth';
import {FullLoading} from '../components/FullLoading';
-import {PermissionRequired} from '../components/PermissionRequired';
+import LoginView from '../components/LoginView';
class LayoutContainer extends Component {
componentWillMount () {
const {checkLogin} = this.props;
- checkLogin().then(() => {
- if (!this.props.auth.isAdmin) {
- location.href = '/admin/login';
- }
- });
+ checkLogin();
}
render () {
const {isAdmin, loggedIn, loadingUser} = this.props.auth;
+ const {handleLogout} = this.props;
if (loadingUser) { return
; }
- if (!isAdmin) { return
; }
- if (isAdmin && loggedIn) { return
; }
+ if (!isAdmin) {
+ return
;
+ }
+ if (isAdmin && loggedIn) { return
; }
return
;
}
}
@@ -29,6 +28,7 @@ const mapStateToProps = state => ({
const mapDispatchToProps = dispatch => ({
checkLogin: () => dispatch(checkLogin()),
+ handleLogin: (username, password) => dispatch(handleLogin(username, password)),
handleLogout: () => dispatch(logout())
});
diff --git a/routes/admin/index.js b/routes/admin/index.js
index a3699143e..e2473bca9 100644
--- a/routes/admin/index.js
+++ b/routes/admin/index.js
@@ -15,10 +15,6 @@ router.get('/password-reset', (req, res) => {
res.render('password-reset', {redirectUri: process.env.TALK_ROOT_URL});
});
-router.get('/login', (req, res, next) => {
- res.render('admin/login');
-});
-
router.get('*', (req, res) => {
res.render('admin', {basePath: '/client/coral-admin'});
});
diff --git a/views/admin/login.ejs b/views/admin/login.ejs
deleted file mode 100644
index e88dd86fd..000000000
--- a/views/admin/login.ejs
+++ /dev/null
@@ -1,132 +0,0 @@
-
-
-
-
-
-
Admin Login
-
-
-
-
-
-
-
-
-
-
-