frontend ui configured.

pull/491/head
Jeffrey 2 years ago
parent 5e84e0a76f
commit 5bff0840ee

@ -0,0 +1,7 @@
import React from 'react';
const OidcLogin = react.memo(() => {
return <div>test</div>;
});
export default OidcLogin;

@ -0,0 +1,3 @@
import OidcLogin from './OidcLogin';
export default OidcLogin;

@ -1,5 +1,6 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { AuthProvider } from 'oidc-react';
import { Provider } from 'react-redux'; import { Provider } from 'react-redux';
import { Route, Routes } from 'react-router-dom'; import { Route, Routes } from 'react-router-dom';
import { ReduxRouter } from '../lib/redux-router'; import { ReduxRouter } from '../lib/redux-router';
@ -8,28 +9,47 @@ import Paths from '../constants/Paths';
import LoginContainer from '../containers/LoginContainer'; import LoginContainer from '../containers/LoginContainer';
import CoreContainer from '../containers/CoreContainer'; import CoreContainer from '../containers/CoreContainer';
import NotFound from './NotFound'; import NotFound from './NotFound';
import entryActions from '../entry-actions';
import 'react-datepicker/dist/react-datepicker.css'; import 'react-datepicker/dist/react-datepicker.css';
import 'photoswipe/dist/photoswipe.css'; import 'photoswipe/dist/photoswipe.css';
import 'easymde/dist/easymde.min.css'; import 'easymde/dist/easymde.min.css';
import '../lib/custom-ui/styles.css'; import '../lib/custom-ui/styles.css';
import '../styles.module.scss'; import '../styles.module.scss';
import OidcLoginContainer from '../containers/OidcLoginContainer';
const oidcConfig = {
onSignIn: (user) => {
// Redirect?
entryActions.authenticate(user);
},
authority: 'https://auth.jjakt.monster/realms/test-realm/',
clientId: 'planka-dev',
redirectUri: 'http://localhost:3000/OidcLogin',
};
function Root({ store, history }) { function Root({ store, history }) {
return ( return (
<Provider store={store}> <AuthProvider
<ReduxRouter history={history}> onSignIn={oidcConfig.onSignIn}
<Routes> authority={oidcConfig.authority}
<Route path={Paths.LOGIN} element={<LoginContainer />} /> clientId={oidcConfig.clientId}
<Route path={Paths.ROOT} element={<CoreContainer />} /> redirectUri={oidcConfig.redirectUri}
<Route path={Paths.PROJECTS} element={<CoreContainer />} /> >
<Route path={Paths.BOARDS} element={<CoreContainer />} /> <Provider store={store}>
<Route path={Paths.CARDS} element={<CoreContainer />} /> <ReduxRouter history={history}>
<Route path="*" element={<NotFound />} /> <Routes>
</Routes> <Route path={Paths.LOGIN} element={<LoginContainer />} />
</ReduxRouter> <Route path={Paths.OIDC_LOGIN} element={<OidcLoginContainer />} />
</Provider> <Route path={Paths.ROOT} element={<CoreContainer />} />
<Route path={Paths.PROJECTS} element={<CoreContainer />} />
<Route path={Paths.BOARDS} element={<CoreContainer />} />
<Route path={Paths.CARDS} element={<CoreContainer />} />
<Route path="*" element={<NotFound />} />
</Routes>
</ReduxRouter>
</Provider>
</AuthProvider>
); );
} }

@ -2,6 +2,7 @@ import Config from './Config';
const ROOT = `${Config.BASE_PATH}/`; const ROOT = `${Config.BASE_PATH}/`;
const LOGIN = `${Config.BASE_PATH}/login`; const LOGIN = `${Config.BASE_PATH}/login`;
const OIDC_LOGIN = `${Config.BASE_PATH}/oidclogin`;
const PROJECTS = `${Config.BASE_PATH}/projects/:id`; const PROJECTS = `${Config.BASE_PATH}/projects/:id`;
const BOARDS = `${Config.BASE_PATH}/boards/:id`; const BOARDS = `${Config.BASE_PATH}/boards/:id`;
const CARDS = `${Config.BASE_PATH}/cards/:id`; const CARDS = `${Config.BASE_PATH}/cards/:id`;
@ -12,4 +13,5 @@ export default {
PROJECTS, PROJECTS,
BOARDS, BOARDS,
CARDS, CARDS,
OIDC_LOGIN,
}; };

@ -0,0 +1,26 @@
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import entryActions from '../entry-actions';
import OidcLogin from '../components/OIDC';
const mapStateToProps = ({
ui: {
authenticateForm: { data: defaultData, isSubmitting, error },
},
}) => ({
defaultData,
isSubmitting,
error,
});
const mapDispatchToProps = (dispatch) =>
bindActionCreators(
{
onAuthenticate: entryActions.authenticate,
onMessageDismiss: entryActions.clearAuthenticateError,
},
dispatch,
);
export default connect(mapStateToProps, mapDispatchToProps)(OidcLogin);

@ -146,8 +146,7 @@ export default {
subscribeToMyOwnCardsByDefault: 'Ve výchozím nastavení odebírat vlastní karty', subscribeToMyOwnCardsByDefault: 'Ve výchozím nastavení odebírat vlastní karty',
taskActions_title: 'Akce na úkolu', taskActions_title: 'Akce na úkolu',
tasks: 'Úkoly', tasks: 'Úkoly',
thereIsNoPreviewAvailableForThisAttachment: thereIsNoPreviewAvailableForThisAttachment: 'Pro tuto přílohu není k dispozici žádný náhled',
'Pro tuto přílohu není k dispozici žádný náhled',
time: 'Čas', time: 'Čas',
title: 'Titulek', title: 'Titulek',
userActions_title: 'Akce na uživateli', userActions_title: 'Akce na uživateli',

@ -7,9 +7,13 @@ import { setAccessToken } from '../../../utils/access-token-storage';
export function* authenticate(data) { export function* authenticate(data) {
yield put(actions.authenticate(data)); yield put(actions.authenticate(data));
let accessToken; let { accessToken } = data;
try { try {
({ item: accessToken } = yield call(api.createAccessToken, data)); if (accessToken) {
// swap
} else {
({ item: accessToken } = yield call(api.createAccessToken, data));
}
} catch (error) { } catch (error) {
yield put(actions.authenticate.failure(error)); yield put(actions.authenticate.failure(error));
return; return;

Loading…
Cancel
Save