feat(ui) - sso login

This commit is contained in:
Shekar Siri 2021-12-02 19:54:34 +05:30
parent f15d19e2ae
commit b236cd50c8
3 changed files with 20 additions and 6 deletions

View file

@ -69,7 +69,7 @@ const ONBOARDING_REDIRECT_PATH = routes.onboarding(OB_DEFAULT_TAB);
organisation: state.getIn([ 'user', 'client', 'name' ]),
tenantId: state.getIn([ 'user', 'client', 'tenantId' ]),
tenants: state.getIn(['user', 'tenants']),
existingTenant: state.getIn(['user', 'existingTenant']),
existingTenant: state.getIn(['user', 'authDetails', 'tenants']),
onboarding: state.getIn([ 'user', 'onboarding' ])
};
}, {

View file

@ -15,7 +15,8 @@ const recaptchaRef = React.createRef();
state => ({
errors: state.getIn([ 'user', 'loginRequest', 'errors' ]),
loading: state.getIn([ 'user', 'loginRequest', 'loading' ]),
existingTenant: state.getIn(['user', 'existingTenant'])
// existingTenant: state.getIn(['user', 'authDetails', 'tenants']),
authDetails: state.getIn(['user', 'authDetails']),
}),
{ login, },
)
@ -45,7 +46,7 @@ export default class Login extends React.Component {
write = ({ target: { value, name } }) => this.setState({ [ name ]: value })
render() {
const { errors, loading, existingTenant } = this.props;
const { errors, loading, authDetails } = this.props;
return (
<div className="flex" style={{ height: '100vh'}}>
<div className={cn("w-6/12", stl.left)}>
@ -63,7 +64,7 @@ export default class Login extends React.Component {
<form onSubmit={ this.onSubmit }>
<div className="mb-8">
<h2 className="text-center text-3xl mb-6">Login to OpenReplay</h2>
{ !existingTenant && <div className="text-center text-xl">Don't have an account? <span className="link"><Link to={ SIGNUP_ROUTE }>Sign up</Link></span></div> }
{ !authDetails.tenants && <div className="text-center text-xl">Don't have an account? <span className="link"><Link to={ SIGNUP_ROUTE }>Sign up</Link></span></div> }
</div>
<Loader loading={ loading }>
{ window.ENV.CAPTCHA_ENABLED && (
@ -126,6 +127,14 @@ export default class Login extends React.Component {
</div>
</div>
</form>
{ authDetails.sso && (
<div className="py-2 flex flex-col items-center">
<div className="mb-4">or</div>
<a href="/api/sso/saml2" rel="noopener noreferrer">
<Button type="button" outline type="submit" primary >{ 'Login with SSO (Okta)' }</Button>
</a>
</div>
)}
</div>
</div>
</div>

View file

@ -31,7 +31,12 @@ const initialState = Map({
passwordRequestError: false,
passwordErrors: List(),
tenants: [],
existingTenant: true,
authDetails: Map({
tenants: false,
sso: false,
ssoProvider: '',
edition: ''
}),
onboarding: false
});
@ -70,7 +75,7 @@ const reducer = (state = initialState, action = {}) => {
case FETCH_ACCOUNT.SUCCESS:
return state.set('account', Account(action.data)).set('passwordErrors', List());
case FETCH_TENANTS.SUCCESS:
return state.set('existingTenant', action.data);
return state.set('authDetails', Map(action.data));
// return state.set('tenants', action.data.map(i => ({ text: i.name, value: i.tenantId})));
case UPDATE_PASSWORD.FAILURE:
return state.set('passwordErrors', List(action.errors))