mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
MM-51876 - use redirect if user already logged in (#22997)
* use redirect if user already logged in * lint fixes --------- Co-authored-by: Mattermost Build <build@mattermost.com>
This commit is contained in:
parent
d1c9469d06
commit
96ad240a78
@ -288,4 +288,18 @@ describe('components/login/Login', () => {
|
||||
expect(externalLoginButton.props().label).toEqual('OpenID 2');
|
||||
expect(externalLoginButton.props().style).toEqual({color: '#00ff00', borderColor: '#00ff00'});
|
||||
});
|
||||
|
||||
it('should redirect on login', () => {
|
||||
mockState.entities.users.currentUserId = 'user1';
|
||||
LocalStorageStore.setWasLoggedIn(true);
|
||||
mockConfig.EnableSignInWithEmail = 'true';
|
||||
const redirectPath = '/boards/team/teamID/boardID';
|
||||
mockLocation.search = '?redirect_to=' + redirectPath;
|
||||
mount(
|
||||
<MemoryRouter>
|
||||
<Login/>
|
||||
</MemoryRouter>,
|
||||
);
|
||||
expect(mockHistoryPush).toHaveBeenCalledWith(redirectPath);
|
||||
});
|
||||
});
|
||||
|
@ -141,6 +141,9 @@ const Login = ({onCustomizeHeader}: LoginProps) => {
|
||||
const enableExternalSignup = enableSignUpWithGitLab || enableSignUpWithOffice365 || enableSignUpWithGoogle || enableSignUpWithOpenId || enableSignUpWithSaml;
|
||||
const showSignup = enableOpenServer && (enableExternalSignup || enableSignUpWithEmail || enableLdap);
|
||||
|
||||
const query = new URLSearchParams(search);
|
||||
const redirectTo = query.get('redirect_to');
|
||||
|
||||
const getExternalLoginOptions = () => {
|
||||
const externalLoginOptions: ExternalLoginButtonType[] = [];
|
||||
|
||||
@ -372,6 +375,10 @@ const Login = ({onCustomizeHeader}: LoginProps) => {
|
||||
|
||||
useEffect(() => {
|
||||
if (currentUser) {
|
||||
if (redirectTo && redirectTo.match(/^\/([^/]|$)/)) {
|
||||
history.push(redirectTo);
|
||||
return;
|
||||
}
|
||||
redirectUserToDefaultTeam();
|
||||
return;
|
||||
}
|
||||
@ -615,9 +622,6 @@ const Login = ({onCustomizeHeader}: LoginProps) => {
|
||||
dispatch(setNeedsLoggedInLimitReachedCheck(true));
|
||||
}
|
||||
|
||||
const query = new URLSearchParams(search);
|
||||
const redirectTo = query.get('redirect_to');
|
||||
|
||||
setCSRFFromCookie();
|
||||
|
||||
// Record a successful login to local storage. If an unintentional logout occurs, e.g.
|
||||
|
Loading…
Reference in New Issue
Block a user