@gridsuite/commons-ui 0.26.1 → 0.27.1
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/lib/components/AuthenticationRouter/AuthenticationRouter.js +40 -3
- package/lib/components/TreeViewFinder/TreeViewFinder.js +14 -8
- package/lib/components/translations/login-en.js +4 -1
- package/lib/components/translations/login-fr.js +4 -1
- package/lib/hooks/useImportExportParams.js +33 -2
- package/lib/index.js +4 -1
- package/lib/utils/AuthService.js +31 -18
- package/lib/utils/UserManagerMock.js +10 -11
- package/lib/utils/actions.js +23 -1
- package/package.json +1 -1
|
@@ -15,6 +15,16 @@ var _SilentRenewCallbackHandler = _interopRequireDefault(require("../SilentRenew
|
|
|
15
15
|
|
|
16
16
|
var _Login = _interopRequireDefault(require("../Login"));
|
|
17
17
|
|
|
18
|
+
var _material = require("@mui/material");
|
|
19
|
+
|
|
20
|
+
var _Alert = _interopRequireDefault(require("@mui/material/Alert"));
|
|
21
|
+
|
|
22
|
+
var _AlertTitle = _interopRequireDefault(require("@mui/material/AlertTitle"));
|
|
23
|
+
|
|
24
|
+
var _reactIntl = require("react-intl");
|
|
25
|
+
|
|
26
|
+
var _Button = _interopRequireDefault(require("@mui/material/Button"));
|
|
27
|
+
|
|
18
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
29
|
|
|
20
30
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -30,6 +40,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
30
40
|
var AuthenticationRouter = function AuthenticationRouter(_ref) {
|
|
31
41
|
var userManager = _ref.userManager,
|
|
32
42
|
signInCallbackError = _ref.signInCallbackError,
|
|
43
|
+
unauthorizedUserInfo = _ref.unauthorizedUserInfo,
|
|
44
|
+
showAuthenticationRouterLogin = _ref.showAuthenticationRouterLogin,
|
|
33
45
|
dispatch = _ref.dispatch,
|
|
34
46
|
navigate = _ref.navigate,
|
|
35
47
|
location = _ref.location;
|
|
@@ -39,7 +51,12 @@ var AuthenticationRouter = function AuthenticationRouter(_ref) {
|
|
|
39
51
|
var handleSilentRenewCallbackClosure = (0, _react.useCallback)(function () {
|
|
40
52
|
return (0, _AuthService.handleSilentRenewCallback)(userManager.instance);
|
|
41
53
|
}, [userManager.instance]);
|
|
42
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null,
|
|
54
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_material.Grid, {
|
|
55
|
+
container: true,
|
|
56
|
+
alignContent: 'center',
|
|
57
|
+
alignItems: 'center',
|
|
58
|
+
direction: 'column'
|
|
59
|
+
}, userManager.error !== null && /*#__PURE__*/_react["default"].createElement("h1", null, "Error : Getting userManager; ", userManager.error), signInCallbackError !== null && /*#__PURE__*/_react["default"].createElement("h1", null, "Error : SignIn Callback Error;", signInCallbackError.message), /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Routes, null, /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Route, {
|
|
43
60
|
path: "sign-in-callback",
|
|
44
61
|
element: /*#__PURE__*/_react["default"].createElement(_SignInCallbackHandler["default"], {
|
|
45
62
|
userManager: userManager.instance,
|
|
@@ -58,13 +75,33 @@ var AuthenticationRouter = function AuthenticationRouter(_ref) {
|
|
|
58
75
|
})
|
|
59
76
|
}), /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Route, {
|
|
60
77
|
path: "*",
|
|
61
|
-
element:
|
|
78
|
+
element: showAuthenticationRouterLogin && /*#__PURE__*/_react["default"].createElement(_Login["default"], {
|
|
62
79
|
disabled: userManager.instance === null,
|
|
63
80
|
onLoginClick: function onLoginClick() {
|
|
64
81
|
return (0, _AuthService.login)(location, userManager.instance);
|
|
65
82
|
}
|
|
66
83
|
})
|
|
67
|
-
}))
|
|
84
|
+
})), unauthorizedUserInfo !== null && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_material.Grid, {
|
|
85
|
+
item: true
|
|
86
|
+
}, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
87
|
+
variant: "contained",
|
|
88
|
+
onClick: function onClick() {
|
|
89
|
+
(0, _AuthService.logout)(dispatch, userManager.instance);
|
|
90
|
+
}
|
|
91
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
|
|
92
|
+
id: "login/logout"
|
|
93
|
+
}))), /*#__PURE__*/_react["default"].createElement(_material.Grid, {
|
|
94
|
+
item: true
|
|
95
|
+
}, /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
|
|
96
|
+
severity: "info"
|
|
97
|
+
}, /*#__PURE__*/_react["default"].createElement(_AlertTitle["default"], null, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
|
|
98
|
+
id: "login/unauthorizedAccess"
|
|
99
|
+
})), /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
|
|
100
|
+
id: "login/unauthorizedAccessMessage",
|
|
101
|
+
values: {
|
|
102
|
+
userName: unauthorizedUserInfo === null || unauthorizedUserInfo === void 0 ? void 0 : unauthorizedUserInfo.userName
|
|
103
|
+
}
|
|
104
|
+
}))))));
|
|
68
105
|
};
|
|
69
106
|
|
|
70
107
|
var _default = AuthenticationRouter;
|
|
@@ -90,8 +90,9 @@ var defaultStyles = {
|
|
|
90
90
|
* @param {String} data[].id - Uuid of the object in Tree
|
|
91
91
|
* @param {String} data[].parentId - Uuid of the parent node in Tree
|
|
92
92
|
* @param {String} data[].name - name of the node to print in Tree
|
|
93
|
+
* @param {String} data[].icon - JSX of an icon to display next a node
|
|
94
|
+
* @param {String} data[].childrenCount - number of children
|
|
93
95
|
* @param {Object[]} [data[].children] - array of children nodes, if undefined, the node is a leaf.
|
|
94
|
-
* @param {String} [data[].icon] - JSX of an icon to display next a node
|
|
95
96
|
* @callback onTreeBrowse - callback to update data prop when walk into Tree
|
|
96
97
|
* @param {Array} [defaultSelected=[]] - selected items at mount (Uncontrolled)
|
|
97
98
|
* @param {Array} [defaultExpanded=[]] - ids of the expanded items at mount (Uncontrolled)
|
|
@@ -220,12 +221,23 @@ var TreeViewFinder = function TreeViewFinder(props) {
|
|
|
220
221
|
}, node.name));
|
|
221
222
|
};
|
|
222
223
|
|
|
224
|
+
var showChevron = function showChevron(node) {
|
|
225
|
+
// by defaut show Chevron if childrenCount is null or undefined otherwise only if > 0
|
|
226
|
+
return !!(node.childrenCount == null || node.childrenCount && node.childrenCount > 0);
|
|
227
|
+
};
|
|
228
|
+
|
|
223
229
|
var renderTree = function renderTree(node) {
|
|
224
230
|
if (!node) return;
|
|
225
231
|
return /*#__PURE__*/_react["default"].createElement(_TreeItem["default"], {
|
|
226
232
|
key: node.id,
|
|
227
233
|
nodeId: node.id,
|
|
228
|
-
label: renderTreeItemLabel(node)
|
|
234
|
+
label: renderTreeItemLabel(node),
|
|
235
|
+
expandIcon: showChevron(node) ? /*#__PURE__*/_react["default"].createElement(_ChevronRight["default"], {
|
|
236
|
+
className: classes.icon
|
|
237
|
+
}) : null,
|
|
238
|
+
collapseIcon: showChevron(node) ? /*#__PURE__*/_react["default"].createElement(_ExpandMore["default"], {
|
|
239
|
+
className: classes.icon
|
|
240
|
+
}) : null
|
|
229
241
|
}, Array.isArray(node.children) ? node.children.length ? node.children.sort(sortMethod).map(function (child) {
|
|
230
242
|
return renderTree(child);
|
|
231
243
|
}) : [false] // Pass non empty Array here to simulate a child then this node isn't considered as a leaf.
|
|
@@ -263,12 +275,6 @@ var TreeViewFinder = function TreeViewFinder(props) {
|
|
|
263
275
|
onNodeToggle: handleNodeToggle,
|
|
264
276
|
onNodeSelect: handleNodeSelect // Uncontrolled props
|
|
265
277
|
,
|
|
266
|
-
defaultCollapseIcon: /*#__PURE__*/_react["default"].createElement(_ExpandMore["default"], {
|
|
267
|
-
className: classes.icon
|
|
268
|
-
}),
|
|
269
|
-
defaultExpandIcon: /*#__PURE__*/_react["default"].createElement(_ChevronRight["default"], {
|
|
270
|
-
className: classes.icon
|
|
271
|
-
}),
|
|
272
278
|
multiSelect: multiselect
|
|
273
279
|
}, data && Array.isArray(data) ? data.sort(sortMethod).map(function (child) {
|
|
274
280
|
return renderTree(child);
|
|
@@ -11,7 +11,10 @@ exports["default"] = void 0;
|
|
|
11
11
|
*/
|
|
12
12
|
var login_en = {
|
|
13
13
|
'login/login': 'Login',
|
|
14
|
-
'login/connection': 'Connection'
|
|
14
|
+
'login/connection': 'Connection',
|
|
15
|
+
'login/unauthorizedAccess': 'Unauthorized access',
|
|
16
|
+
'login/unauthorizedAccessMessage': "The user {userName} isn't granted yet",
|
|
17
|
+
'login/logout': 'Logout'
|
|
15
18
|
};
|
|
16
19
|
var _default = login_en;
|
|
17
20
|
exports["default"] = _default;
|
|
@@ -11,7 +11,10 @@ exports["default"] = void 0;
|
|
|
11
11
|
*/
|
|
12
12
|
var login_fr = {
|
|
13
13
|
'login/login': 'Se connecter',
|
|
14
|
-
'login/connection': 'Connexion'
|
|
14
|
+
'login/connection': 'Connexion',
|
|
15
|
+
'login/unauthorizedAccess': 'Accès non autorisé',
|
|
16
|
+
'login/unauthorizedAccessMessage': "L'utilisateur {userName} n'a pas encore accès à GridSuite",
|
|
17
|
+
'login/logout': 'Se déconnecter'
|
|
15
18
|
};
|
|
16
19
|
var _default = login_fr;
|
|
17
20
|
exports["default"] = _default;
|
|
@@ -80,7 +80,7 @@ var useImportExportParams = function useImportExportParams(paramsAsArray) {
|
|
|
80
80
|
};
|
|
81
81
|
|
|
82
82
|
var renderField = function renderField(param) {
|
|
83
|
-
var _currentValues$param$, _param$possibleValues, _currentValues$param$2, _currentValues$param$
|
|
83
|
+
var _currentValues$param$, _param$possibleValues, _currentValues$param$2, _currentValues$param$5;
|
|
84
84
|
|
|
85
85
|
switch (param.type) {
|
|
86
86
|
case 'BOOLEAN':
|
|
@@ -118,10 +118,41 @@ var useImportExportParams = function useImportExportParams(paramsAsArray) {
|
|
|
118
118
|
}
|
|
119
119
|
});
|
|
120
120
|
|
|
121
|
+
case 'STRING':
|
|
122
|
+
if (param.possibleValues) {
|
|
123
|
+
var _currentValues$param$3;
|
|
124
|
+
|
|
125
|
+
return /*#__PURE__*/_react["default"].createElement(_material.Autocomplete, {
|
|
126
|
+
fullWidth: true,
|
|
127
|
+
disableClearable: true,
|
|
128
|
+
options: param.possibleValues,
|
|
129
|
+
onChange: function onChange(e, value) {
|
|
130
|
+
return onFieldChange(value, param.name);
|
|
131
|
+
},
|
|
132
|
+
value: (_currentValues$param$3 = currentValues === null || currentValues === void 0 ? void 0 : currentValues[param.name]) !== null && _currentValues$param$3 !== void 0 ? _currentValues$param$3 : defaultValues[param.name],
|
|
133
|
+
renderInput: function renderInput(options) {
|
|
134
|
+
return /*#__PURE__*/_react["default"].createElement(_material.TextField, _extends({}, options, {
|
|
135
|
+
variant: "standard"
|
|
136
|
+
}));
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
} else {
|
|
140
|
+
var _currentValues$param$4;
|
|
141
|
+
|
|
142
|
+
return /*#__PURE__*/_react["default"].createElement(_material.TextField, {
|
|
143
|
+
fullWidth: true,
|
|
144
|
+
defaultValue: (_currentValues$param$4 = currentValues === null || currentValues === void 0 ? void 0 : currentValues[param.name]) !== null && _currentValues$param$4 !== void 0 ? _currentValues$param$4 : defaultValues[param.name],
|
|
145
|
+
onChange: function onChange(e) {
|
|
146
|
+
return onFieldChange(e.target.value, param.name);
|
|
147
|
+
},
|
|
148
|
+
variant: 'standard'
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
121
152
|
default:
|
|
122
153
|
return /*#__PURE__*/_react["default"].createElement(_material.TextField, {
|
|
123
154
|
fullWidth: true,
|
|
124
|
-
defaultValue: (_currentValues$param$
|
|
155
|
+
defaultValue: (_currentValues$param$5 = currentValues === null || currentValues === void 0 ? void 0 : currentValues[param.name]) !== null && _currentValues$param$5 !== void 0 ? _currentValues$param$5 : defaultValues[param.name],
|
|
125
156
|
onChange: function onChange(e) {
|
|
126
157
|
return onFieldChange(e.target.value, param.name);
|
|
127
158
|
},
|
package/lib/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.useImportExportParams = exports.treeview_finder_fr = exports.treeview_finder_en = exports.top_bar_fr = exports.top_bar_en = exports.table_fr = exports.table_en = exports.setSignInCallbackError = exports.setLoggedUser = exports.report_viewer_fr = exports.report_viewer_en = exports.logout = exports.login_fr = exports.login_en = exports.initializeAuthenticationProd = exports.initializeAuthenticationDev = exports.getPreLoginPath = exports.getFileIcon = exports.getEquipmentsInfosForSearchBar = exports.equipment_search_fr = exports.equipment_search_en = exports.equipmentStyles = exports.element_search_fr = exports.element_search_en = exports.elementType = exports.dispatchUser = exports.card_error_boundary_fr = exports.card_error_boundary_en = exports.USER = exports.TreeViewFinder = exports.TopBar = exports.TagRenderer = exports.SnackbarProvider = exports.SIGNIN_CALLBACK_ERROR = exports.ReportViewerDialog = exports.ReportViewer = exports.OverflowableText = exports.MuiVirtualizedTable = exports.LIGHT_THEME = exports.LANG_SYSTEM = exports.LANG_FRENCH = exports.LANG_ENGLISH = exports.EquipmentItem = exports.ElementSearchDialog = exports.EQUIPMENT_TYPE = exports.DEFAULT_ROW_HEIGHT = exports.DEFAULT_HEADER_HEIGHT = exports.DEFAULT_CELL_PADDING = exports.DARK_THEME = exports.CardErrorBoundary = exports.AuthenticationRouter = void 0;
|
|
4
|
+
exports.useImportExportParams = exports.treeview_finder_fr = exports.treeview_finder_en = exports.top_bar_fr = exports.top_bar_en = exports.table_fr = exports.table_en = exports.setSignInCallbackError = exports.setShowAuthenticationRouterLogin = exports.setLoggedUser = exports.report_viewer_fr = exports.report_viewer_en = exports.logout = exports.login_fr = exports.login_en = exports.initializeAuthenticationProd = exports.initializeAuthenticationDev = exports.getPreLoginPath = exports.getFileIcon = exports.getEquipmentsInfosForSearchBar = exports.equipment_search_fr = exports.equipment_search_en = exports.equipmentStyles = exports.element_search_fr = exports.element_search_en = exports.elementType = exports.dispatchUser = exports.card_error_boundary_fr = exports.card_error_boundary_en = exports.USER = exports.UNAUTHORIZED_USER_INFO = exports.TreeViewFinder = exports.TopBar = exports.TagRenderer = exports.SnackbarProvider = exports.SIGNIN_CALLBACK_ERROR = exports.SHOW_AUTH_INFO_LOGIN = exports.ReportViewerDialog = exports.ReportViewer = exports.OverflowableText = exports.MuiVirtualizedTable = exports.LIGHT_THEME = exports.LANG_SYSTEM = exports.LANG_FRENCH = exports.LANG_ENGLISH = exports.EquipmentItem = exports.ElementSearchDialog = exports.EQUIPMENT_TYPE = exports.DEFAULT_ROW_HEIGHT = exports.DEFAULT_HEADER_HEIGHT = exports.DEFAULT_CELL_PADDING = exports.DARK_THEME = exports.CardErrorBoundary = exports.AuthenticationRouter = void 0;
|
|
5
5
|
|
|
6
6
|
var _TreeViewFinder = _interopRequireDefault(require("./components/TreeViewFinder"));
|
|
7
7
|
|
|
@@ -79,6 +79,9 @@ exports.USER = _actions.USER;
|
|
|
79
79
|
exports.setLoggedUser = _actions.setLoggedUser;
|
|
80
80
|
exports.SIGNIN_CALLBACK_ERROR = _actions.SIGNIN_CALLBACK_ERROR;
|
|
81
81
|
exports.setSignInCallbackError = _actions.setSignInCallbackError;
|
|
82
|
+
exports.UNAUTHORIZED_USER_INFO = _actions.UNAUTHORIZED_USER_INFO;
|
|
83
|
+
exports.setShowAuthenticationRouterLogin = _actions.setShowAuthenticationRouterLogin;
|
|
84
|
+
exports.SHOW_AUTH_INFO_LOGIN = _actions.SHOW_AUTH_INFO_LOGIN;
|
|
82
85
|
|
|
83
86
|
var _reportViewerEn = _interopRequireDefault(require("./components/translations/report-viewer-en"));
|
|
84
87
|
|
package/lib/utils/AuthService.js
CHANGED
|
@@ -31,11 +31,11 @@ window.OIDCLog = _oidcClient.Log;
|
|
|
31
31
|
var hackauthoritykey = 'oidc.hack.authority';
|
|
32
32
|
var pathKey = 'powsybl-gridsuite-current-path';
|
|
33
33
|
|
|
34
|
-
function initializeAuthenticationDev(dispatch, isSilentRenew) {
|
|
34
|
+
function initializeAuthenticationDev(dispatch, isSilentRenew, validateUser) {
|
|
35
35
|
var userManager = new _UserManagerMock.UserManagerMock({});
|
|
36
36
|
|
|
37
37
|
if (!isSilentRenew) {
|
|
38
|
-
handleUser(dispatch, userManager);
|
|
38
|
+
handleUser(dispatch, userManager, validateUser);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
return Promise.resolve(userManager);
|
|
@@ -43,7 +43,7 @@ function initializeAuthenticationDev(dispatch, isSilentRenew) {
|
|
|
43
43
|
|
|
44
44
|
var accessTokenExpiringNotificationTime = 60; // seconds
|
|
45
45
|
|
|
46
|
-
function initializeAuthenticationProd(dispatch, isSilentRenew, idpSettings) {
|
|
46
|
+
function initializeAuthenticationProd(dispatch, isSilentRenew, idpSettings, validateUser) {
|
|
47
47
|
return idpSettings.then(function (r) {
|
|
48
48
|
return r.json();
|
|
49
49
|
}).then(function (idpSettings) {
|
|
@@ -117,7 +117,7 @@ function initializeAuthenticationProd(dispatch, isSilentRenew, idpSettings) {
|
|
|
117
117
|
userManager.idpSettings = idpSettings; //store our settings in there as well to use it later
|
|
118
118
|
|
|
119
119
|
if (!isSilentRenew) {
|
|
120
|
-
handleUser(dispatch, userManager);
|
|
120
|
+
handleUser(dispatch, userManager, validateUser);
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
return userManager;
|
|
@@ -144,20 +144,33 @@ function logout(dispatch, userManagerInstance) {
|
|
|
144
144
|
});
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
function dispatchUser(dispatch, userManagerInstance) {
|
|
147
|
+
function dispatchUser(dispatch, userManagerInstance, validateUser) {
|
|
148
148
|
return userManagerInstance.getUser().then(function (user) {
|
|
149
149
|
if (user) {
|
|
150
|
-
|
|
151
|
-
var
|
|
152
|
-
|
|
150
|
+
// without validateUser defined, valid user by default
|
|
151
|
+
var validateUserPromise = validateUser && validateUser(user) || Promise.resolve(true);
|
|
152
|
+
return validateUserPromise.then(function (valid) {
|
|
153
|
+
if (!valid) {
|
|
154
|
+
var _user$profile;
|
|
155
|
+
|
|
156
|
+
console.debug("User isn't authorized to log in and will not be dispatched");
|
|
157
|
+
return dispatch((0, _actions.setUnauthorizedUserInfo)({
|
|
158
|
+
userName: user === null || user === void 0 ? void 0 : (_user$profile = user.profile) === null || _user$profile === void 0 ? void 0 : _user$profile.name
|
|
159
|
+
}));
|
|
160
|
+
}
|
|
153
161
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
162
|
+
var now = parseInt(Date.now() / 1000);
|
|
163
|
+
var exp = (0, _jwtDecode["default"])(user.id_token).exp;
|
|
164
|
+
var idTokenExpiresIn = exp - now;
|
|
158
165
|
|
|
159
|
-
|
|
160
|
-
|
|
166
|
+
if (idTokenExpiresIn < 0) {
|
|
167
|
+
console.debug('User token is expired and will not be dispatched');
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
console.debug('User has been successfully loaded from store.');
|
|
172
|
+
return dispatch((0, _actions.setLoggedUser)(user));
|
|
173
|
+
});
|
|
161
174
|
} else {
|
|
162
175
|
console.debug('You are not logged in.');
|
|
163
176
|
}
|
|
@@ -183,10 +196,10 @@ function handleSilentRenewCallback(userManagerInstance) {
|
|
|
183
196
|
userManagerInstance.signinSilentCallback();
|
|
184
197
|
}
|
|
185
198
|
|
|
186
|
-
function handleUser(dispatch, userManager) {
|
|
199
|
+
function handleUser(dispatch, userManager, validateUser) {
|
|
187
200
|
userManager.events.addUserLoaded(function (user) {
|
|
188
|
-
console.debug('user loaded');
|
|
189
|
-
dispatchUser(dispatch, userManager);
|
|
201
|
+
console.debug('user loaded', user);
|
|
202
|
+
dispatchUser(dispatch, userManager, validateUser);
|
|
190
203
|
});
|
|
191
204
|
userManager.events.addSilentRenewError(function (error) {
|
|
192
205
|
console.debug(error); // wait for accessTokenExpiringNotificationTime so that the user is expired
|
|
@@ -226,5 +239,5 @@ function handleUser(dispatch, userManager) {
|
|
|
226
239
|
}, accessTokenExpiringNotificationTime * 1000);
|
|
227
240
|
});
|
|
228
241
|
console.debug('dispatch user');
|
|
229
|
-
dispatchUser(dispatch, userManager);
|
|
242
|
+
dispatchUser(dispatch, userManager, validateUser);
|
|
230
243
|
}
|
|
@@ -57,15 +57,14 @@ var UserManagerMock = /*#__PURE__*/function () {
|
|
|
57
57
|
};
|
|
58
58
|
|
|
59
59
|
_proto2.signinSilent = function signinSilent() {
|
|
60
|
-
var _this = this;
|
|
61
|
-
|
|
62
60
|
console.info('signinSilent..............');
|
|
63
|
-
var localStorageUser = localStorage.getItem('powsybl-gridsuite-mock-user');
|
|
64
|
-
|
|
61
|
+
var localStorageUser = JSON.parse(localStorage.getItem('powsybl-gridsuite-mock-user'));
|
|
62
|
+
if (localStorageUser === null) return Promise.reject(new Error('End-User authentication required'));
|
|
63
|
+
sessionStorage.setItem('powsybl-gridsuite-mock-user', JSON.stringify(localStorageUser));
|
|
65
64
|
this.events.userLoadedCallbacks.forEach(function (c) {
|
|
66
|
-
return c(
|
|
65
|
+
return c(localStorageUser);
|
|
67
66
|
});
|
|
68
|
-
return Promise.resolve(
|
|
67
|
+
return Promise.resolve(localStorageUser);
|
|
69
68
|
};
|
|
70
69
|
|
|
71
70
|
_proto2.signinSilentCallback = function signinSilentCallback() {
|
|
@@ -74,24 +73,24 @@ var UserManagerMock = /*#__PURE__*/function () {
|
|
|
74
73
|
};
|
|
75
74
|
|
|
76
75
|
_proto2.signinRedirect = function signinRedirect() {
|
|
76
|
+
localStorage.setItem('powsybl-gridsuite-mock-user', JSON.stringify(this.user));
|
|
77
77
|
window.location = './sign-in-callback';
|
|
78
78
|
return Promise.resolve(null);
|
|
79
79
|
};
|
|
80
80
|
|
|
81
81
|
_proto2.signoutRedirect = function signoutRedirect() {
|
|
82
|
-
sessionStorage.
|
|
83
|
-
localStorage.
|
|
82
|
+
sessionStorage.removeItem('powsybl-gridsuite-mock-user');
|
|
83
|
+
localStorage.removeItem('powsybl-gridsuite-mock-user');
|
|
84
84
|
window.location = '.';
|
|
85
85
|
return Promise.resolve(null);
|
|
86
86
|
};
|
|
87
87
|
|
|
88
88
|
_proto2.signinRedirectCallback = function signinRedirectCallback() {
|
|
89
|
-
var
|
|
89
|
+
var _this = this;
|
|
90
90
|
|
|
91
91
|
sessionStorage.setItem('powsybl-gridsuite-mock-user', JSON.stringify(this.user));
|
|
92
|
-
localStorage.setItem('powsybl-gridsuite-mock-user', JSON.stringify(this.user));
|
|
93
92
|
this.events.userLoadedCallbacks.forEach(function (c) {
|
|
94
|
-
return c(
|
|
93
|
+
return c(_this.user);
|
|
95
94
|
});
|
|
96
95
|
return Promise.resolve('');
|
|
97
96
|
};
|
package/lib/utils/actions.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.USER = exports.SIGNIN_CALLBACK_ERROR = void 0;
|
|
4
|
+
exports.USER = exports.UNAUTHORIZED_USER_INFO = exports.SIGNIN_CALLBACK_ERROR = exports.SHOW_AUTH_INFO_LOGIN = void 0;
|
|
5
5
|
exports.setLoggedUser = setLoggedUser;
|
|
6
|
+
exports.setShowAuthenticationRouterLogin = setShowAuthenticationRouterLogin;
|
|
6
7
|
exports.setSignInCallbackError = setSignInCallbackError;
|
|
8
|
+
exports.setUnauthorizedUserInfo = setUnauthorizedUserInfo;
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* Copyright (c) 2020, RTE (http://www.rte-france.com)
|
|
@@ -29,4 +31,24 @@ function setSignInCallbackError(signInCallbackError) {
|
|
|
29
31
|
type: SIGNIN_CALLBACK_ERROR,
|
|
30
32
|
signInCallbackError: signInCallbackError
|
|
31
33
|
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
var UNAUTHORIZED_USER_INFO = 'UNAUTHORIZED_USER_INFO';
|
|
37
|
+
exports.UNAUTHORIZED_USER_INFO = UNAUTHORIZED_USER_INFO;
|
|
38
|
+
|
|
39
|
+
function setUnauthorizedUserInfo(unauthorizedUserInfo) {
|
|
40
|
+
return {
|
|
41
|
+
type: UNAUTHORIZED_USER_INFO,
|
|
42
|
+
unauthorizedUserInfo: unauthorizedUserInfo
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
var SHOW_AUTH_INFO_LOGIN = 'SHOW_AUTH_INFO_LOGIN';
|
|
47
|
+
exports.SHOW_AUTH_INFO_LOGIN = SHOW_AUTH_INFO_LOGIN;
|
|
48
|
+
|
|
49
|
+
function setShowAuthenticationRouterLogin(showAuthenticationRouterLogin) {
|
|
50
|
+
return {
|
|
51
|
+
type: SHOW_AUTH_INFO_LOGIN,
|
|
52
|
+
showAuthenticationRouterLogin: showAuthenticationRouterLogin
|
|
53
|
+
};
|
|
32
54
|
}
|