synapse-react-client 3.1.25 → 3.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/styled/LeftRightPanel.d.ts +10 -0
- package/dist/components/styled/LeftRightPanel.js +45 -0
- package/dist/components/styled/LeftRightPanel.js.map +1 -0
- package/dist/containers/CardContainerLogic.js +4 -3
- package/dist/containers/CardContainerLogic.js.map +1 -1
- package/dist/containers/TextField.d.ts +8 -0
- package/dist/containers/TextField.js +22 -0
- package/dist/containers/TextField.js.map +1 -0
- package/dist/containers/access_requirement_list/AccessRequirementList.js +15 -12
- package/dist/containers/access_requirement_list/AccessRequirementList.js.map +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/CancelRequestDataAccess.d.ts +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/CancelRequestDataAccess.js +21 -16
- package/dist/containers/access_requirement_list/managedACTAccess/CancelRequestDataAccess.js.map +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccess.js +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccess.js.map +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep1.js +14 -9
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep1.js.map +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.js +22 -18
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.js.map +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessSuccess.js +11 -7
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessSuccess.js.map +1 -1
- package/dist/containers/auth/AuthenticationMethodSelection.d.ts +17 -0
- package/dist/containers/auth/AuthenticationMethodSelection.js +49 -0
- package/dist/containers/auth/AuthenticationMethodSelection.js.map +1 -0
- package/dist/containers/auth/LoginFlowBackButton.d.ts +10 -0
- package/dist/containers/auth/LoginFlowBackButton.js +38 -0
- package/dist/containers/auth/LoginFlowBackButton.js.map +1 -0
- package/dist/containers/auth/LoginForm.d.ts +18 -0
- package/dist/containers/auth/LoginForm.js +32 -0
- package/dist/containers/auth/LoginForm.js.map +1 -0
- package/dist/containers/auth/LoginPage.d.ts +1 -2
- package/dist/containers/auth/LoginPage.js +82 -23
- package/dist/containers/auth/LoginPage.js.map +1 -1
- package/dist/containers/auth/RecoveryCodeForm.d.ts +8 -0
- package/dist/containers/auth/RecoveryCodeForm.js +30 -0
- package/dist/containers/auth/RecoveryCodeForm.js.map +1 -0
- package/dist/containers/auth/StandaloneLoginForm.d.ts +12 -0
- package/dist/containers/auth/StandaloneLoginForm.js +24 -0
- package/dist/containers/auth/StandaloneLoginForm.js.map +1 -0
- package/dist/containers/auth/TOTPForm.d.ts +2 -0
- package/dist/containers/auth/TOTPForm.js +4 -4
- package/dist/containers/auth/TOTPForm.js.map +1 -1
- package/dist/containers/auth/UsernamePasswordForm.d.ts +9 -0
- package/dist/containers/auth/UsernamePasswordForm.js +29 -0
- package/dist/containers/auth/UsernamePasswordForm.js.map +1 -0
- package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js +2 -1
- package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/containers/table/StandaloneQueryWrapper.js +2 -1
- package/dist/containers/table/StandaloneQueryWrapper.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/style/base/_core.scss +0 -13
- package/dist/style/components/_access-requirement-list.scss +0 -7
- package/dist/umd/synapse-react-client.development.css +0 -17
- package/dist/umd/synapse-react-client.development.css.map +2 -2
- package/dist/umd/synapse-react-client.development.js +5926 -6223
- package/dist/umd/synapse-react-client.development.js.map +4 -4
- package/dist/umd/synapse-react-client.production.min.css +1 -1
- package/dist/umd/synapse-react-client.production.min.js +80 -80
- package/dist/umd.index.d.ts +2 -2
- package/dist/umd.index.js +2 -2
- package/dist/umd.index.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js +3 -3
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useLogin.d.ts +5 -5
- package/dist/utils/hooks/useLogin.js +65 -76
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/synapseTypes/LoginResponse.d.ts +0 -1
- package/package.json +1 -1
- package/dist/assets/ButtonWithIcon.d.ts +0 -12
- package/dist/assets/ButtonWithIcon.js +0 -17
- package/dist/assets/ButtonWithIcon.js.map +0 -1
- package/dist/containers/auth/Login.d.ts +0 -27
- package/dist/containers/auth/Login.js +0 -96
- package/dist/containers/auth/Login.js.map +0 -1
package/dist/umd.index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import FavoritesPage from './containers/favorites/FavoritesPage';
|
|
|
8
8
|
import FullWidthAlert from './containers/FullWidthAlert';
|
|
9
9
|
import { HasAccessV2 as HasAccess } from './containers/access_requirements/HasAccessV2';
|
|
10
10
|
import IconSvg from './containers/IconSvg';
|
|
11
|
-
import
|
|
11
|
+
import StandaloneLoginForm from './containers/auth/StandaloneLoginForm';
|
|
12
12
|
import LoginPage from './containers/auth/LoginPage';
|
|
13
13
|
import StatisticsPlot from './containers/StatisticsPlot';
|
|
14
14
|
import { DatasetItemsEditor } from './containers/table/datasets/DatasetItemsEditor';
|
|
@@ -31,7 +31,7 @@ declare const SynapseContext: {
|
|
|
31
31
|
useSynapseContext: typeof useSynapseContext;
|
|
32
32
|
};
|
|
33
33
|
declare const SynapseComponents: {
|
|
34
|
-
Login: typeof
|
|
34
|
+
Login: typeof StandaloneLoginForm;
|
|
35
35
|
LoginPage: typeof LoginPage;
|
|
36
36
|
EntityForm: typeof EntityForm;
|
|
37
37
|
UserCard: import("react").FunctionComponent<import("./containers/UserCard").UserCardProps>;
|
package/dist/umd.index.js
CHANGED
|
@@ -27,7 +27,7 @@ var HasAccessV2_1 = require("./containers/access_requirements/HasAccessV2");
|
|
|
27
27
|
var HelpPopover_1 = require("./containers/HelpPopover");
|
|
28
28
|
var ProjectViewCarousel_1 = tslib_1.__importDefault(require("./containers/home_page/project_view_carousel/ProjectViewCarousel"));
|
|
29
29
|
var IconSvg_1 = tslib_1.__importDefault(require("./containers/IconSvg"));
|
|
30
|
-
var
|
|
30
|
+
var StandaloneLoginForm_1 = tslib_1.__importDefault(require("./containers/auth/StandaloneLoginForm"));
|
|
31
31
|
var LoginPage_1 = tslib_1.__importDefault(require("./containers/auth/LoginPage"));
|
|
32
32
|
var PageProgress_1 = tslib_1.__importDefault(require("./containers/PageProgress"));
|
|
33
33
|
var AccessTokenPage_1 = require("./containers/personal_access_token/AccessTokenPage");
|
|
@@ -71,7 +71,7 @@ var SynapseContext = {
|
|
|
71
71
|
};
|
|
72
72
|
exports.SynapseContext = SynapseContext;
|
|
73
73
|
var SynapseComponents = {
|
|
74
|
-
Login:
|
|
74
|
+
Login: StandaloneLoginForm_1.default,
|
|
75
75
|
LoginPage: LoginPage_1.default,
|
|
76
76
|
EntityForm: EntityForm_1.default,
|
|
77
77
|
UserCard: UserCard_1.default,
|
package/dist/umd.index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"umd.index.js","sourceRoot":"","sources":["../src/lib/umd.index.ts"],"names":[],"mappings":";;;;AAAA,uCAAoC;AACpC,oEAAkE;AAClE,oEAAkE;AAClE,uFAAwD;AACxD,+EAA6E;AAC7E,wFAAsF;AACtF,gIAAiG;AACjG,mFAAiF;AACjF,wGAAyE;AACzE,6GAA2G;AAC3G,wEAAsE;AACtE,kEAAgE;AAChE,+EAAgD;AAChD,sDAAwD;AACxD,wEAAsE;AACtE,mFAAoD;AACpD,gFAA8E;AAC9E,4FAA0F;AAC1F,+FAAgE;AAChE,iFAAkD;AAClD,uFAAwD;AACxD,4EAAuF;AACvF,wDAAsD;AACtD,iIAAkG;AAClG,yEAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"umd.index.js","sourceRoot":"","sources":["../src/lib/umd.index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
var getEndpoint_1 = require("../functions/getEndpoint");
|
|
4
|
-
var Login_1 = require("../../containers/auth/Login");
|
|
5
4
|
var SynapseClient_1 = require("../SynapseClient");
|
|
6
5
|
var react_1 = require("react");
|
|
6
|
+
var AuthenticationMethodSelection_1 = require("../../containers/auth/AuthenticationMethodSelection");
|
|
7
7
|
/*
|
|
8
8
|
* During SSO login, the authorization provider (Google) will send the user back to the portal with an authorization code,
|
|
9
9
|
* which can be exchanged for a Synapse user session. This function should be called whenever the root App is initialized
|
|
@@ -36,7 +36,7 @@ function useDetectSSOCode(opts) {
|
|
|
36
36
|
window.location.replace(originalUrl);
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
|
-
if (
|
|
39
|
+
if (AuthenticationMethodSelection_1.PROVIDERS.GOOGLE == provider) {
|
|
40
40
|
var onSuccess = function (response) {
|
|
41
41
|
if ('accessToken' in response) {
|
|
42
42
|
(0, SynapseClient_1.setAccessTokenCookie)(response.accessToken).then(redirectAfterSuccess_1);
|
|
@@ -69,7 +69,7 @@ function useDetectSSOCode(opts) {
|
|
|
69
69
|
.catch(onFailure);
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
else if (
|
|
72
|
+
else if (AuthenticationMethodSelection_1.PROVIDERS.ORCID == provider) {
|
|
73
73
|
// now bind this to the user account
|
|
74
74
|
var onFailure = function (err) {
|
|
75
75
|
console.error('Error binding ORCiD to account: ', err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDetectSSOCode.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useDetectSSOCode.ts"],"names":[],"mappings":";;AAAA,wDAGiC;
|
|
1
|
+
{"version":3,"file":"useDetectSSOCode.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useDetectSSOCode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Dispatch, SetStateAction } from 'react';
|
|
2
2
|
import { TwoFactorAuthOtpType } from '../synapseTypes/TwoFactorAuthLoginRequest';
|
|
3
3
|
import { TwoFactorAuthErrorResponse } from '../synapseTypes/ErrorResponse';
|
|
4
|
-
type UseLoginReturn = {
|
|
4
|
+
export type UseLoginReturn = {
|
|
5
5
|
step: 'CHOOSE_AUTH_METHOD' | 'USERNAME_PASSWORD' | 'VERIFICATION_CODE' | 'RECOVERY_CODE' | 'LOGGED_IN';
|
|
6
|
-
|
|
7
|
-
submitUsernameAndPassword: (username: string, password: string) =>
|
|
8
|
-
submitOneTimePassword: (code: string, otpType?: TwoFactorAuthOtpType) =>
|
|
6
|
+
onStepChange: Dispatch<SetStateAction<UseLoginReturn['step']>>;
|
|
7
|
+
submitUsernameAndPassword: (username: string, password: string) => void;
|
|
8
|
+
submitOneTimePassword: (code: string, otpType?: TwoFactorAuthOtpType) => void;
|
|
9
9
|
errorMessage: string | undefined;
|
|
10
|
+
isLoading: boolean;
|
|
10
11
|
};
|
|
11
12
|
/**
|
|
12
13
|
* Stateful hook that manages logging into Synapse
|
|
13
14
|
*/
|
|
14
15
|
export default function useLogin(sessionCallback?: () => void, twoFaErrorResponse?: TwoFactorAuthErrorResponse): UseLoginReturn;
|
|
15
|
-
export {};
|
|
@@ -4,6 +4,7 @@ var tslib_1 = require("tslib");
|
|
|
4
4
|
var react_1 = require("react");
|
|
5
5
|
var index_1 = require("../index");
|
|
6
6
|
var SynapseConstants_1 = require("../SynapseConstants");
|
|
7
|
+
var react_query_1 = require("react-query");
|
|
7
8
|
/**
|
|
8
9
|
* Stateful hook that manages logging into Synapse
|
|
9
10
|
*/
|
|
@@ -70,96 +71,84 @@ function useLogin(sessionCallback, twoFaErrorResponse) {
|
|
|
70
71
|
});
|
|
71
72
|
});
|
|
72
73
|
}
|
|
73
|
-
var
|
|
74
|
-
var
|
|
75
|
-
return
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
_a.trys.push([1, 6, , 7]);
|
|
82
|
-
authenticationReceipt = localStorage.getItem(SynapseConstants_1.AUTHENTICATION_RECEIPT_LOCALSTORAGE_KEY);
|
|
83
|
-
return [4 /*yield*/, index_1.SynapseClient.login(username, password, authenticationReceipt)];
|
|
84
|
-
case 2:
|
|
85
|
-
data = _a.sent();
|
|
86
|
-
if (!('errorCode' in data)) return [3 /*break*/, 3];
|
|
87
|
-
setStep('VERIFICATION_CODE');
|
|
88
|
-
setTwoFaToken(data.twoFaToken);
|
|
89
|
-
setUserId(data.userId);
|
|
90
|
-
return [3 /*break*/, 5];
|
|
91
|
-
case 3: return [4 /*yield*/, finishLogin(data)];
|
|
92
|
-
case 4:
|
|
93
|
-
_a.sent();
|
|
94
|
-
_a.label = 5;
|
|
95
|
-
case 5: return [3 /*break*/, 7];
|
|
96
|
-
case 6:
|
|
97
|
-
err_1 = _a.sent();
|
|
98
|
-
setErrorMessage(err_1.reason);
|
|
99
|
-
return [3 /*break*/, 7];
|
|
100
|
-
case 7: return [2 /*return*/];
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}); };
|
|
104
|
-
var submitOneTimePassword = function (code, otpType) {
|
|
105
|
-
if (otpType === void 0) { otpType = step === 'RECOVERY_CODE' ? 'RECOVERY_CODE' : 'TOTP'; }
|
|
106
|
-
return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
107
|
-
var request, loginResponse, e_1;
|
|
74
|
+
var _e = (0, react_query_1.useMutation)(function (_a) {
|
|
75
|
+
var username = _a.username, password = _a.password, authenticationReceipt = _a.authenticationReceipt;
|
|
76
|
+
return index_1.SynapseClient.login(username, password, authenticationReceipt);
|
|
77
|
+
}, {
|
|
78
|
+
onError: function (error) {
|
|
79
|
+
setErrorMessage(error.reason);
|
|
80
|
+
},
|
|
81
|
+
onSuccess: function (loginResponse) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
108
82
|
return tslib_1.__generator(this, function (_a) {
|
|
109
83
|
switch (_a.label) {
|
|
110
84
|
case 0:
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
request = {
|
|
118
|
-
userId: userId,
|
|
119
|
-
twoFaToken: twoFaToken,
|
|
120
|
-
otpCode: code,
|
|
121
|
-
otpType: otpType,
|
|
122
|
-
};
|
|
123
|
-
_a.label = 1;
|
|
124
|
-
case 1:
|
|
125
|
-
_a.trys.push([1, 4, , 5]);
|
|
126
|
-
return [4 /*yield*/, index_1.SynapseClient.loginWith2fa(request)];
|
|
85
|
+
if (!('errorCode' in loginResponse)) return [3 /*break*/, 1];
|
|
86
|
+
setStep('VERIFICATION_CODE');
|
|
87
|
+
setTwoFaToken(loginResponse.twoFaToken);
|
|
88
|
+
setUserId(loginResponse.userId);
|
|
89
|
+
return [3 /*break*/, 3];
|
|
90
|
+
case 1: return [4 /*yield*/, finishLogin(loginResponse)];
|
|
127
91
|
case 2:
|
|
128
|
-
loginResponse = _a.sent();
|
|
129
|
-
return [4 /*yield*/, finishLogin(loginResponse)];
|
|
130
|
-
case 3:
|
|
131
92
|
_a.sent();
|
|
132
|
-
|
|
133
|
-
case
|
|
134
|
-
e_1 = _a.sent();
|
|
135
|
-
setErrorMessage(e_1.reason);
|
|
136
|
-
if (
|
|
137
|
-
// The twoFaToken wasn't transmitted correctly
|
|
138
|
-
e_1.reason.includes('The provided twoFaToken is invalid') ||
|
|
139
|
-
// The user waited too long to enter the code.
|
|
140
|
-
e_1.reason.includes('Token has expired')) {
|
|
141
|
-
console.warn(e_1);
|
|
142
|
-
// Instruct the user refresh to start over.
|
|
143
|
-
setErrorMessage('Something went wrong. Refresh the page and try again.');
|
|
144
|
-
// If the 2FA token is in the search parameters, remove it so the user doesn't just get the same error again.
|
|
145
|
-
if (window.location.href.includes('twoFaToken')) {
|
|
146
|
-
window.history.replaceState({}, document.title,
|
|
147
|
-
// using regex because SWC hashbang doesn't work with URLSearchParams
|
|
148
|
-
window.location.href.replaceAll(/(twoFaToken|userId)=[^&]*&?/g, ''));
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return [3 /*break*/, 5];
|
|
152
|
-
case 5: return [2 /*return*/];
|
|
93
|
+
_a.label = 3;
|
|
94
|
+
case 3: return [2 /*return*/];
|
|
153
95
|
}
|
|
154
96
|
});
|
|
97
|
+
}); },
|
|
98
|
+
}), mutateLoginWithUsernameAndPassword = _e.mutate, isLoadingLoginWithUsernameAndPassword = _e.isLoading;
|
|
99
|
+
var _f = (0, react_query_1.useMutation)(index_1.SynapseClient.loginWith2fa, {
|
|
100
|
+
onError: function (e) {
|
|
101
|
+
setErrorMessage(e.reason);
|
|
102
|
+
if (
|
|
103
|
+
// The twoFaToken wasn't transmitted correctly
|
|
104
|
+
e.reason.includes('The provided twoFaToken is invalid') ||
|
|
105
|
+
// The user waited too long to enter the code.
|
|
106
|
+
e.reason.includes('Token has expired')) {
|
|
107
|
+
console.warn(e);
|
|
108
|
+
// Instruct the user refresh to start over.
|
|
109
|
+
setErrorMessage('Something went wrong. Refresh the page and try again.');
|
|
110
|
+
// If the 2FA token is in the search parameters, remove it so the user doesn't just get the same error again.
|
|
111
|
+
if (window.location.href.includes('twoFaToken')) {
|
|
112
|
+
window.history.replaceState({}, document.title,
|
|
113
|
+
// using regex because SWC hashbang doesn't work with URLSearchParams
|
|
114
|
+
window.location.href.replaceAll(/(twoFaToken|userId)=[^&]*&?/g, ''));
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
onSuccess: finishLogin,
|
|
119
|
+
}), mutateLoginWith2FACode = _f.mutate, isLoadingLoginWith2FACode = _f.isLoading;
|
|
120
|
+
var submitUsernameAndPassword = function (username, password) {
|
|
121
|
+
setErrorMessage(undefined);
|
|
122
|
+
var authenticationReceipt = localStorage.getItem(SynapseConstants_1.AUTHENTICATION_RECEIPT_LOCALSTORAGE_KEY);
|
|
123
|
+
mutateLoginWithUsernameAndPassword({
|
|
124
|
+
username: username,
|
|
125
|
+
password: password,
|
|
126
|
+
authenticationReceipt: authenticationReceipt,
|
|
155
127
|
});
|
|
156
128
|
};
|
|
129
|
+
var submitOneTimePassword = function (code, otpType) {
|
|
130
|
+
if (otpType === void 0) { otpType = step === 'RECOVERY_CODE' ? 'RECOVERY_CODE' : 'TOTP'; }
|
|
131
|
+
setErrorMessage(undefined);
|
|
132
|
+
if (twoFaToken == null || userId == null) {
|
|
133
|
+
// This could happen if the 2FA component exists on its own route, and the user directly navigates to it without first logging in with credentials/OAuth
|
|
134
|
+
setErrorMessage('You did not first log in with your password or a third-party identity provider.');
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
var request = {
|
|
138
|
+
userId: userId,
|
|
139
|
+
twoFaToken: twoFaToken,
|
|
140
|
+
otpCode: code,
|
|
141
|
+
otpType: otpType,
|
|
142
|
+
};
|
|
143
|
+
mutateLoginWith2FACode(request);
|
|
144
|
+
};
|
|
157
145
|
return {
|
|
158
146
|
step: step,
|
|
159
|
-
|
|
147
|
+
onStepChange: setStep,
|
|
160
148
|
submitUsernameAndPassword: submitUsernameAndPassword,
|
|
161
149
|
submitOneTimePassword: submitOneTimePassword,
|
|
162
150
|
errorMessage: errorMessage,
|
|
151
|
+
isLoading: isLoadingLoginWithUsernameAndPassword || isLoadingLoginWith2FACode,
|
|
163
152
|
};
|
|
164
153
|
}
|
|
165
154
|
exports.default = useLogin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLogin.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useLogin.ts"],"names":[],"mappings":";;;AAAA,+BAAqE;AACrE,kCAAwC;AAOxC,wDAA6E;
|
|
1
|
+
{"version":3,"file":"useLogin.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useLogin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { ButtonProps } from 'react-bootstrap';
|
|
3
|
-
type ButtonWithIconProps = {
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
icon: React.ReactNode;
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* A button with center-aligned content (typically text) that displays a left-aligned icon.
|
|
9
|
-
* @param param0
|
|
10
|
-
*/
|
|
11
|
-
declare const ButtonWithIcon: React.FunctionComponent<ButtonWithIconProps & ButtonProps>;
|
|
12
|
-
export default ButtonWithIcon;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var tslib_1 = require("tslib");
|
|
4
|
-
var React = tslib_1.__importStar(require("react"));
|
|
5
|
-
var react_bootstrap_1 = require("react-bootstrap");
|
|
6
|
-
/**
|
|
7
|
-
* A button with center-aligned content (typically text) that displays a left-aligned icon.
|
|
8
|
-
* @param param0
|
|
9
|
-
*/
|
|
10
|
-
var ButtonWithIcon = function (_a) {
|
|
11
|
-
var children = _a.children, icon = _a.icon, rest = tslib_1.__rest(_a, ["children", "icon"]);
|
|
12
|
-
return (React.createElement(react_bootstrap_1.Button, tslib_1.__assign({ className: "ButtonWithIcon" }, rest), React.createElement(React.Fragment, null,
|
|
13
|
-
React.createElement("div", { className: "ButtonWithIcon__Icon" }, icon),
|
|
14
|
-
children)));
|
|
15
|
-
};
|
|
16
|
-
exports.default = ButtonWithIcon;
|
|
17
|
-
//# sourceMappingURL=ButtonWithIcon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonWithIcon.js","sourceRoot":"","sources":["../../src/lib/assets/ButtonWithIcon.tsx"],"names":[],"mappings":";;;AAAA,mDAA8B;AAC9B,mDAAqD;AAOrD;;;GAGG;AACH,IAAM,cAAc,GAEhB,UAAC,EAA0D;IAAxD,IAAA,QAAQ,cAAA,EAAE,IAAI,UAAA,EAAK,IAAI,sBAAzB,oBAA2B,CAAF;IAC5B,OAAO,CACL,oBAAC,wBAAM,qBAAC,SAAS,EAAC,gBAAgB,IAAK,IAAI,GAEvC;QACE,6BAAK,SAAS,EAAC,sBAAsB,IAAE,IAAI,CAAO;QACjD,QAAQ,CACR,CAEE,CACV,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,cAAc,CAAA"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { TwoFactorAuthErrorResponse } from '../../utils/synapseTypes/ErrorResponse';
|
|
3
|
-
export declare const PROVIDERS: {
|
|
4
|
-
GOOGLE: string;
|
|
5
|
-
ORCID: string;
|
|
6
|
-
};
|
|
7
|
-
type Props = {
|
|
8
|
-
ssoRedirectUrl?: string;
|
|
9
|
-
sessionCallback: () => void;
|
|
10
|
-
registerAccountUrl?: string;
|
|
11
|
-
resetPasswordUrl?: string;
|
|
12
|
-
onBeginOAuthSignIn?: () => void;
|
|
13
|
-
handleIsOnUsernameOrPasswordScreen?: React.Dispatch<React.SetStateAction<boolean>>;
|
|
14
|
-
showUsernameOrPassword?: boolean | undefined;
|
|
15
|
-
renderBackButton?: boolean;
|
|
16
|
-
twoFactorAuthenticationRequired?: TwoFactorAuthErrorResponse;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Demo of user session, show login screen and handling user login submission.
|
|
20
|
-
*
|
|
21
|
-
* To support Google SSO in your portal, you must add your domain to the Authorized Redirect URIs
|
|
22
|
-
* for Synapse authentication.
|
|
23
|
-
* This can be done by visiting https://sagebionetworks.jira.com/servicedesk/customer/portal/9 to set up a collaboration.
|
|
24
|
-
* Synapse engineers must add your redirect URL in the Google API console found at https://console.cloud.google.com/ for this functionality to work.
|
|
25
|
-
*/
|
|
26
|
-
declare function Login(props: Props): JSX.Element;
|
|
27
|
-
export default Login;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PROVIDERS = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var React = tslib_1.__importStar(require("react"));
|
|
6
|
-
var react_bootstrap_1 = require("react-bootstrap");
|
|
7
|
-
var ButtonWithIcon_1 = tslib_1.__importDefault(require("../../assets/ButtonWithIcon"));
|
|
8
|
-
var utils_1 = require("../../utils");
|
|
9
|
-
var getEndpoint_1 = require("../../utils/functions/getEndpoint");
|
|
10
|
-
var GoogleIcon24_1 = require("../../assets/GoogleIcon24");
|
|
11
|
-
var material_1 = require("@mui/material");
|
|
12
|
-
var IconSvg_1 = tslib_1.__importDefault(require("../IconSvg"));
|
|
13
|
-
var FullWidthAlert_1 = tslib_1.__importDefault(require("../FullWidthAlert"));
|
|
14
|
-
var react_1 = require("react");
|
|
15
|
-
var useLogin_1 = tslib_1.__importDefault(require("../../utils/hooks/useLogin"));
|
|
16
|
-
var TOTPForm_1 = tslib_1.__importDefault(require("./TOTPForm"));
|
|
17
|
-
exports.PROVIDERS = {
|
|
18
|
-
GOOGLE: 'GOOGLE_OAUTH_2_0',
|
|
19
|
-
ORCID: 'ORCID',
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Demo of user session, show login screen and handling user login submission.
|
|
23
|
-
*
|
|
24
|
-
* To support Google SSO in your portal, you must add your domain to the Authorized Redirect URIs
|
|
25
|
-
* for Synapse authentication.
|
|
26
|
-
* This can be done by visiting https://sagebionetworks.jira.com/servicedesk/customer/portal/9 to set up a collaboration.
|
|
27
|
-
* Synapse engineers must add your redirect URL in the Google API console found at https://console.cloud.google.com/ for this functionality to work.
|
|
28
|
-
*/
|
|
29
|
-
function Login(props) {
|
|
30
|
-
var _a = (0, react_1.useState)(''), username = _a[0], setUsername = _a[1];
|
|
31
|
-
var _b = (0, react_1.useState)(''), password = _b[0], setPassword = _b[1];
|
|
32
|
-
var ssoRedirectUrl = props.ssoRedirectUrl, sessionCallback = props.sessionCallback, _c = props.registerAccountUrl, registerAccountUrl = _c === void 0 ? "".concat((0, getEndpoint_1.getEndpoint)(getEndpoint_1.BackendDestinationEnum.PORTAL_ENDPOINT), "#!RegisterAccount:0") : _c, _d = props.resetPasswordUrl, resetPasswordUrl = _d === void 0 ? "".concat((0, getEndpoint_1.getEndpoint)(getEndpoint_1.BackendDestinationEnum.PORTAL_ENDPOINT), "#!PasswordReset:0") : _d;
|
|
33
|
-
var _e = (0, useLogin_1.default)(sessionCallback, props.twoFactorAuthenticationRequired), step = _e.step, setStep = _e.setStep, submitUsernameAndPassword = _e.submitUsernameAndPassword, submitOneTimePassword = _e.submitOneTimePassword, errorMessage = _e.errorMessage;
|
|
34
|
-
var renderBackButton = props.renderBackButton &&
|
|
35
|
-
(step === 'USERNAME_PASSWORD' || step === 'VERIFICATION_CODE');
|
|
36
|
-
/**
|
|
37
|
-
* Handle user login on click
|
|
38
|
-
*/
|
|
39
|
-
function handleLogin(clickEvent) {
|
|
40
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
41
|
-
return tslib_1.__generator(this, function (_a) {
|
|
42
|
-
switch (_a.label) {
|
|
43
|
-
case 0:
|
|
44
|
-
clickEvent.preventDefault(); // avoid page refresh
|
|
45
|
-
return [4 /*yield*/, submitUsernameAndPassword(username, password)];
|
|
46
|
-
case 1:
|
|
47
|
-
_a.sent();
|
|
48
|
-
return [2 /*return*/];
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
function onGoogleSignIn(event) {
|
|
54
|
-
if (props.onBeginOAuthSignIn) {
|
|
55
|
-
props.onBeginOAuthSignIn();
|
|
56
|
-
}
|
|
57
|
-
event.preventDefault();
|
|
58
|
-
var redirectUrl = ssoRedirectUrl
|
|
59
|
-
? "".concat(ssoRedirectUrl).concat(exports.PROVIDERS.GOOGLE)
|
|
60
|
-
: "".concat(utils_1.SynapseClient.getRootURL(), "?provider=").concat(exports.PROVIDERS.GOOGLE);
|
|
61
|
-
utils_1.SynapseClient.oAuthUrlRequest(exports.PROVIDERS.GOOGLE, redirectUrl)
|
|
62
|
-
.then(function (data) {
|
|
63
|
-
// Send the user to the authorization URL
|
|
64
|
-
window.location = data.authorizationUrl;
|
|
65
|
-
})
|
|
66
|
-
.catch(function (err) {
|
|
67
|
-
console.log('Error on oAuth url ', err);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
return (React.createElement("div", { id: "loginPage", className: "container LoginComponent SRC-syn-border-spacing bootstrap-4-backport" },
|
|
71
|
-
renderBackButton && (React.createElement(material_1.IconButton, { type: "button", onClick: function () { return setStep('CHOOSE_AUTH_METHOD'); } },
|
|
72
|
-
React.createElement(IconSvg_1.default, { icon: "arrowBack" }))),
|
|
73
|
-
React.createElement("div", { className: step === 'CHOOSE_AUTH_METHOD' ? '' : 'hide-component' },
|
|
74
|
-
React.createElement("form", null,
|
|
75
|
-
React.createElement(ButtonWithIcon_1.default, { variant: "white", onClick: onGoogleSignIn, className: "SRC-signin-button", icon: React.createElement(GoogleIcon24_1.GoogleIcon24, null) }, "Sign in with Google")),
|
|
76
|
-
React.createElement(ButtonWithIcon_1.default, { variant: "white", className: "SRC-signin-button", icon: React.createElement(IconSvg_1.default, { icon: "email" }), onClick: function () { return setStep('USERNAME_PASSWORD'); } }, "Sign in with your email")),
|
|
77
|
-
React.createElement(react_bootstrap_1.Form, { className: step === 'USERNAME_PASSWORD' ? '' : 'hide-component', onSubmit: function (e) {
|
|
78
|
-
handleLogin(e);
|
|
79
|
-
} },
|
|
80
|
-
React.createElement("label", { htmlFor: 'username' }, "Username or Email Address"),
|
|
81
|
-
React.createElement(react_bootstrap_1.Form.Control, { required: true, autoComplete: "username", placeholder: "Username or Email Address", className: "LoginComponent__Input", id: "username", name: "username", type: "text", value: username, onChange: function (e) { return setUsername(e.target.value); } }),
|
|
82
|
-
React.createElement("label", { htmlFor: 'current-password' }, "Password"),
|
|
83
|
-
React.createElement(react_bootstrap_1.Form.Control, { required: true, autoComplete: "current-password", placeholder: "Password", className: "LoginComponent__Input", id: "current-password", name: "password", type: "password", value: password, onChange: function (e) { return setPassword(e.target.value); } }),
|
|
84
|
-
React.createElement(material_1.Link, { href: resetPasswordUrl }, "Forgot password?"),
|
|
85
|
-
React.createElement(material_1.Button, { onClick: function (e) {
|
|
86
|
-
handleLogin(e);
|
|
87
|
-
}, type: "submit", color: "primary", variant: "contained", className: "SRC-login-button SRC-marginBottomTen" }, "Sign in")),
|
|
88
|
-
step === 'VERIFICATION_CODE' && (React.createElement(TOTPForm_1.default, { onSubmit: function (totp) {
|
|
89
|
-
submitOneTimePassword(totp);
|
|
90
|
-
} })),
|
|
91
|
-
(step === 'CHOOSE_AUTH_METHOD' || step === 'USERNAME_PASSWORD') && (React.createElement("div", { className: 'SRC-center-text' },
|
|
92
|
-
React.createElement(material_1.Link, { href: registerAccountUrl }, "Don't have an account? Create one now"))),
|
|
93
|
-
errorMessage && (React.createElement(FullWidthAlert_1.default, { variant: 'warning', isGlobal: false, description: errorMessage }))));
|
|
94
|
-
}
|
|
95
|
-
exports.default = Login;
|
|
96
|
-
//# sourceMappingURL=Login.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Login.js","sourceRoot":"","sources":["../../../src/lib/containers/auth/Login.tsx"],"names":[],"mappings":"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"}
|