feat(ui) - sso login
This commit is contained in:
parent
f15d19e2ae
commit
b236cd50c8
3 changed files with 20 additions and 6 deletions
|
|
@ -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' ])
|
||||
};
|
||||
}, {
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue