@zengenti/contensis-react-base 3.0.2-beta.22 → 3.0.2-beta.24
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/cjs/{App-21a7d836.js → App-a9f4effe.js} +48 -21
- package/cjs/App-a9f4effe.js.map +1 -0
- package/cjs/{ContensisDeliveryApi-c079b03a.js → ContensisDeliveryApi-76de5ca9.js} +55 -34
- package/cjs/ContensisDeliveryApi-76de5ca9.js.map +1 -0
- package/cjs/CookieConstants-000427db.js +10 -0
- package/cjs/CookieConstants-000427db.js.map +1 -0
- package/cjs/CookieHelper.class-daeb09dd.js +52 -0
- package/cjs/CookieHelper.class-daeb09dd.js.map +1 -0
- package/cjs/{RouteLoader-7f0d107a.js → RouteLoader-005d7f4e.js} +9 -5
- package/cjs/RouteLoader-005d7f4e.js.map +1 -0
- package/cjs/{ToJs-6e9cfa69.js → ToJs-5169fe56.js} +2 -2
- package/cjs/ToJs-5169fe56.js.map +1 -0
- package/cjs/client.js +15 -11
- package/cjs/client.js.map +1 -1
- package/cjs/contensis-react-base.js +18 -343
- package/cjs/contensis-react-base.js.map +1 -1
- package/cjs/{login-2a6b5be0.js → login-c94a3369.js} +86 -80
- package/cjs/login-c94a3369.js.map +1 -0
- package/cjs/redux.js +3 -3
- package/cjs/routing.js +5 -3
- package/cjs/routing.js.map +1 -1
- package/cjs/{selectors-bcca60f4.js → selectors-bb991331.js} +4 -9
- package/cjs/selectors-bb991331.js.map +1 -0
- package/cjs/user.js +30 -15
- package/cjs/user.js.map +1 -1
- package/cjs/util.js +5 -3
- package/cjs/util.js.map +1 -1
- package/cjs/{version-4077e706.js → version-153ec9ef.js} +2 -2
- package/cjs/{version-4077e706.js.map → version-153ec9ef.js.map} +1 -1
- package/cjs/{version-fe28099e.js → version-963a7634.js} +3 -3
- package/cjs/{version-fe28099e.js.map → version-963a7634.js.map} +1 -1
- package/esm/{App-2af18a99.js → App-cdcedf62.js} +47 -21
- package/esm/App-cdcedf62.js.map +1 -0
- package/esm/{ContensisDeliveryApi-5660ee0e.js → ContensisDeliveryApi-91398551.js} +55 -35
- package/esm/ContensisDeliveryApi-91398551.js.map +1 -0
- package/esm/CookieConstants-3d3b6531.js +6 -0
- package/esm/CookieConstants-3d3b6531.js.map +1 -0
- package/esm/CookieHelper.class-4d6ee27b.js +49 -0
- package/esm/CookieHelper.class-4d6ee27b.js.map +1 -0
- package/esm/{RouteLoader-6eac364e.js → RouteLoader-d36840dd.js} +9 -5
- package/esm/RouteLoader-d36840dd.js.map +1 -0
- package/esm/{ToJs-9b30636a.js → ToJs-e1af7030.js} +2 -2
- package/esm/ToJs-e1af7030.js.map +1 -0
- package/esm/client.js +16 -12
- package/esm/client.js.map +1 -1
- package/esm/contensis-react-base.js +18 -344
- package/esm/contensis-react-base.js.map +1 -1
- package/esm/{login-71ff3fcb.js → login-950e0b92.js} +79 -72
- package/esm/login-950e0b92.js.map +1 -0
- package/esm/redux.js +6 -6
- package/esm/routing.js +5 -3
- package/esm/routing.js.map +1 -1
- package/esm/{selectors-74de49a3.js → selectors-1a3c1725.js} +4 -9
- package/esm/selectors-1a3c1725.js.map +1 -0
- package/esm/user.js +27 -16
- package/esm/user.js.map +1 -1
- package/esm/util.js +5 -3
- package/esm/util.js.map +1 -1
- package/esm/{version-ef107106.js → version-6cc0418c.js} +2 -2
- package/esm/{version-ef107106.js.map → version-6cc0418c.js.map} +1 -1
- package/esm/{version-b15807c5.js → version-ec722079.js} +3 -3
- package/esm/{version-b15807c5.js.map → version-ec722079.js.map} +1 -1
- package/models/client/client.d.ts +2 -2
- package/models/client/index.d.ts +1 -1
- package/models/config.d.ts +3 -3
- package/models/index.d.ts +5 -5
- package/models/redux/actions/index.d.ts +1 -1
- package/models/redux/appstate.d.ts +2 -2
- package/models/redux/selectors/index.d.ts +1 -1
- package/models/redux/store/store.d.ts +1 -1
- package/models/redux/types/index.d.ts +1 -1
- package/models/routing/redux/actions.d.ts +10 -6
- package/models/routing/redux/selectors.d.ts +5 -5
- package/models/routing/redux/types.d.ts +0 -1
- package/models/routing/routes.d.ts +21 -18
- package/models/routing/util/queries.d.ts +1 -1
- package/models/search/models/Queries.d.ts +8 -10
- package/models/search/models/Search.d.ts +24 -24
- package/models/search/models/SearchActions.d.ts +33 -33
- package/models/search/models/SearchState.d.ts +11 -11
- package/models/search/models/SearchUtil.d.ts +1 -1
- package/models/search/models/WithSearch.d.ts +1 -1
- package/models/search/redux/actions.d.ts +4 -4
- package/models/search/redux/selectors.d.ts +27 -27
- package/models/search/redux/util.d.ts +1 -1
- package/models/search/search/expressions.d.ts +4 -4
- package/models/search/search/util.d.ts +2 -2
- package/models/search/transformations/state-to-queryparams.mapper.d.ts +1 -1
- package/models/server/features/linkdepth-api/LinkDepthSearchService.d.ts +1 -1
- package/models/server/features/linkdepth-api/search.d.ts +3 -3
- package/models/server/internalServer.d.ts +8 -6
- package/models/server/util/bundles.d.ts +3 -3
- package/models/server/util/headers.d.ts +1 -1
- package/models/server/webApp.d.ts +1 -1
- package/models/testImmer/redux/reducer.d.ts +1 -1
- package/models/user/components/Login.d.ts +2 -3
- package/models/user/containers/ChangePassword.container.d.ts +2 -2
- package/models/user/containers/ForgotPassword.container.d.ts +2 -2
- package/models/user/containers/Login.container.d.ts +2 -2
- package/models/user/containers/Registration.container.d.ts +2 -2
- package/models/user/hocs/withLogin.d.ts +5 -11
- package/models/user/hocs/withRegistration.d.ts +2 -8
- package/models/user/redux/actions.d.ts +2 -2
- package/models/user/redux/sagas/login.d.ts +9 -8
- package/models/user/redux/selectors.d.ts +6 -6
- package/models/user/util/CookieConstants.d.ts +7 -0
- package/models/user/util/CookieHelper.class.d.ts +15 -3
- package/models/user/util/LoginHelper.class.d.ts +26 -23
- package/models/user/util/matchGroups.d.ts +1 -1
- package/models/util/ContensisDeliveryApi.d.ts +21 -14
- package/models/util/ToJs.d.ts +1 -1
- package/models/util/index.d.ts +2 -2
- package/models/util/json-mapper.d.ts +3 -3
- package/package.json +8 -8
- package/cjs/App-21a7d836.js.map +0 -1
- package/cjs/ContensisDeliveryApi-c079b03a.js.map +0 -1
- package/cjs/RouteLoader-7f0d107a.js.map +0 -1
- package/cjs/ToJs-6e9cfa69.js.map +0 -1
- package/cjs/login-2a6b5be0.js.map +0 -1
- package/cjs/selectors-bcca60f4.js.map +0 -1
- package/esm/App-2af18a99.js.map +0 -1
- package/esm/ContensisDeliveryApi-5660ee0e.js.map +0 -1
- package/esm/RouteLoader-6eac364e.js.map +0 -1
- package/esm/ToJs-9b30636a.js.map +0 -1
- package/esm/login-71ff3fcb.js.map +0 -1
- package/esm/selectors-74de49a3.js.map +0 -1
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
var effects = require('@redux-saga/core/effects');
|
|
4
4
|
var reducers = require('./reducers-9afb5f89.js');
|
|
5
|
-
var ToJs = require('./ToJs-
|
|
6
|
-
var selectors = require('./selectors-
|
|
5
|
+
var ToJs = require('./ToJs-5169fe56.js');
|
|
6
|
+
var selectors = require('./selectors-bb991331.js');
|
|
7
7
|
var mapJson = require('jsonpath-mapper');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
8
|
+
var to = require('await-to-js');
|
|
9
|
+
var CookieConstants = require('./CookieConstants-000427db.js');
|
|
10
10
|
|
|
11
11
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
12
12
|
|
|
@@ -29,7 +29,6 @@ function _interopNamespace(e) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
var mapJson__default = /*#__PURE__*/_interopDefaultLegacy(mapJson);
|
|
32
|
-
var JSCookie__default = /*#__PURE__*/_interopDefaultLegacy(JSCookie);
|
|
33
32
|
|
|
34
33
|
const findContentTypeMapping = (ContentTypeMappings, contentTypeId) => ContentTypeMappings.find(ct => ct.contentTypeID === contentTypeId);
|
|
35
34
|
|
|
@@ -77,9 +76,15 @@ const getManagementApiClient = async ({
|
|
|
77
76
|
}
|
|
78
77
|
};
|
|
79
78
|
}
|
|
80
|
-
|
|
79
|
+
let {
|
|
81
80
|
Client
|
|
82
81
|
} = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('contensis-management-api')); });
|
|
82
|
+
if (typeof window === 'undefined') {
|
|
83
|
+
const {
|
|
84
|
+
UniversalClient
|
|
85
|
+
} = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('contensis-management-api')); });
|
|
86
|
+
Client = UniversalClient;
|
|
87
|
+
}
|
|
83
88
|
const client = Client.create({
|
|
84
89
|
...config,
|
|
85
90
|
projectId,
|
|
@@ -93,32 +98,6 @@ const getManagementApiClient = async ({
|
|
|
93
98
|
return client;
|
|
94
99
|
};
|
|
95
100
|
|
|
96
|
-
const COOKIE_VALID_DAYS = 1; // 0 = Session cookie
|
|
97
|
-
|
|
98
|
-
// Override the default js-cookie conversion / encoding
|
|
99
|
-
// methods so the written values work with Contensis sites
|
|
100
|
-
const Cookies = JSCookie__default["default"].withConverter({
|
|
101
|
-
read: value => decodeURIComponent(value),
|
|
102
|
-
write: value => encodeURIComponent(value)
|
|
103
|
-
});
|
|
104
|
-
class CookieHelper {
|
|
105
|
-
static GetCookie(name) {
|
|
106
|
-
const cookie = Cookies.get(name);
|
|
107
|
-
if (typeof cookie === 'undefined') {
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
return cookie;
|
|
111
|
-
}
|
|
112
|
-
static SetCookie(name, value, maxAgeDays = COOKIE_VALID_DAYS) {
|
|
113
|
-
if (maxAgeDays === 0) Cookies.set(name, value);else Cookies.set(name, value, {
|
|
114
|
-
expires: maxAgeDays
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
static DeleteCookie(name) {
|
|
118
|
-
Cookies.remove(name);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
101
|
const context$1 = typeof window != 'undefined' ? window : global;
|
|
123
102
|
const requireOidc = process.env.NODE_ENV === 'development' ? WSFED_LOGIN === 'true' /* global WSFED_LOGIN */ : context$1.WSFED_LOGIN === 'true';
|
|
124
103
|
const servers = SERVERS; /* global SERVERS */
|
|
@@ -146,30 +125,32 @@ const createUserManager = async config => {
|
|
|
146
125
|
};
|
|
147
126
|
|
|
148
127
|
/* eslint-disable require-atomic-updates */
|
|
149
|
-
const LOGIN_COOKIE = 'ContensisCMSUserName';
|
|
150
|
-
const REFRESH_TOKEN_COOKIE = 'RefreshToken';
|
|
151
128
|
const context = typeof window != 'undefined' ? window : global;
|
|
152
129
|
class LoginHelper {
|
|
153
|
-
|
|
130
|
+
constructor(cookies) {
|
|
131
|
+
this.cookies = void 0;
|
|
132
|
+
this.cookies = cookies;
|
|
133
|
+
}
|
|
134
|
+
SetLoginCookies({
|
|
154
135
|
contensisClassicToken,
|
|
155
136
|
refreshToken
|
|
156
137
|
}) {
|
|
157
|
-
console.info('SetLoginCookies:', LOGIN_COOKIE, contensisClassicToken, REFRESH_TOKEN_COOKIE, refreshToken);
|
|
158
|
-
if (contensisClassicToken)
|
|
159
|
-
if (refreshToken)
|
|
138
|
+
console.info('SetLoginCookies:', CookieConstants.LOGIN_COOKIE, contensisClassicToken, CookieConstants.REFRESH_TOKEN_COOKIE, refreshToken);
|
|
139
|
+
if (contensisClassicToken) this.cookies.SetCookie(CookieConstants.LOGIN_COOKIE, contensisClassicToken);
|
|
140
|
+
if (refreshToken) this.cookies.SetCookie(CookieConstants.REFRESH_TOKEN_COOKIE, refreshToken);
|
|
160
141
|
}
|
|
161
|
-
|
|
142
|
+
GetCachedCredentials() {
|
|
162
143
|
return {
|
|
163
144
|
bearerToken: null,
|
|
164
145
|
bearerTokenExpiryDate: null,
|
|
165
|
-
refreshToken:
|
|
146
|
+
refreshToken: this.cookies.GetCookie(CookieConstants.REFRESH_TOKEN_COOKIE),
|
|
166
147
|
refreshTokenExpiryDate: null,
|
|
167
|
-
contensisClassicToken:
|
|
148
|
+
contensisClassicToken: this.cookies.GetCookie(CookieConstants.LOGIN_COOKIE)
|
|
168
149
|
};
|
|
169
150
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
151
|
+
ClearCachedCredentials() {
|
|
152
|
+
this.cookies.DeleteCookie(CookieConstants.LOGIN_COOKIE);
|
|
153
|
+
this.cookies.DeleteCookie(CookieConstants.REFRESH_TOKEN_COOKIE);
|
|
173
154
|
if (LoginHelper.WSFED_LOGIN && typeof window !== 'undefined') {
|
|
174
155
|
// remove any oidc keys left over in localStorage
|
|
175
156
|
const {
|
|
@@ -183,7 +164,7 @@ class LoginHelper {
|
|
|
183
164
|
keys.forEach(key => localStorage.removeItem(key));
|
|
184
165
|
}
|
|
185
166
|
}
|
|
186
|
-
|
|
167
|
+
async LoginUser({
|
|
187
168
|
username,
|
|
188
169
|
password,
|
|
189
170
|
clientCredentials
|
|
@@ -205,7 +186,7 @@ class LoginHelper {
|
|
|
205
186
|
});
|
|
206
187
|
|
|
207
188
|
// Ensure the client has requested a bearer token
|
|
208
|
-
const [loginError, clientBearerToken] = await
|
|
189
|
+
const [loginError, clientBearerToken] = await to.to(transientClient.ensureBearerToken());
|
|
209
190
|
|
|
210
191
|
// Problem getting token with username and password
|
|
211
192
|
if (loginError) {
|
|
@@ -216,14 +197,14 @@ class LoginHelper {
|
|
|
216
197
|
isAuthenticationError: loginError.name.includes('ContensisAuthenticationError'),
|
|
217
198
|
isError: true
|
|
218
199
|
};
|
|
219
|
-
|
|
200
|
+
this.ClearCachedCredentials();
|
|
220
201
|
}
|
|
221
202
|
|
|
222
203
|
// Got a token using username and password
|
|
223
204
|
if (clientBearerToken) {
|
|
224
205
|
// Set credentials so we can continue to GetUserDetails
|
|
225
206
|
credentials = mapClientCredentials(transientClient);
|
|
226
|
-
|
|
207
|
+
this.SetLoginCookies(credentials);
|
|
227
208
|
authenticationState = {
|
|
228
209
|
clientCredentials: credentials,
|
|
229
210
|
isAuthenticated: true,
|
|
@@ -247,11 +228,11 @@ class LoginHelper {
|
|
|
247
228
|
isAuthenticationError: false,
|
|
248
229
|
isError: true
|
|
249
230
|
};
|
|
250
|
-
|
|
231
|
+
this.ClearCachedCredentials();
|
|
251
232
|
} else {
|
|
252
233
|
// Ensure we get latest refreshToken and contensisClassicToken from the latest client
|
|
253
234
|
const latestCredentials = mapClientCredentials(client);
|
|
254
|
-
|
|
235
|
+
this.SetLoginCookies(latestCredentials);
|
|
255
236
|
user = userDetails;
|
|
256
237
|
authenticationState = {
|
|
257
238
|
clientCredentials: latestCredentials,
|
|
@@ -266,8 +247,8 @@ class LoginHelper {
|
|
|
266
247
|
user
|
|
267
248
|
};
|
|
268
249
|
}
|
|
269
|
-
|
|
270
|
-
|
|
250
|
+
LogoutUser(redirectPath) {
|
|
251
|
+
this.ClearCachedCredentials();
|
|
271
252
|
if (LoginHelper.WSFED_LOGIN) {
|
|
272
253
|
LoginHelper.WsFedLogout(redirectPath);
|
|
273
254
|
} else {
|
|
@@ -289,6 +270,7 @@ class LoginHelper {
|
|
|
289
270
|
}
|
|
290
271
|
}
|
|
291
272
|
static async ClientRedirectToSignInPage(redirectPath) {
|
|
273
|
+
if (typeof location === 'undefined') return;
|
|
292
274
|
if (LoginHelper.WSFED_LOGIN) {
|
|
293
275
|
await LoginHelper.WsFedLogout();
|
|
294
276
|
await LoginHelper.WsFedLogin();
|
|
@@ -339,7 +321,7 @@ class LoginHelper {
|
|
|
339
321
|
}
|
|
340
322
|
}
|
|
341
323
|
static async GetCredentialsForSecurityToken(securityToken) {
|
|
342
|
-
const [error, response] = await
|
|
324
|
+
const [error, response] = await to.to(fetch(`${LoginHelper.CMS_URL}/REST/Contensis/Security/IsAuthenticated`, {
|
|
343
325
|
method: 'POST',
|
|
344
326
|
headers: {
|
|
345
327
|
Accept: 'application/json',
|
|
@@ -353,13 +335,14 @@ class LoginHelper {
|
|
|
353
335
|
message: 'Failed to fetch credentials'
|
|
354
336
|
}];
|
|
355
337
|
if (response.ok) {
|
|
356
|
-
const [parseError, body] = await
|
|
338
|
+
const [parseError, body] = await to.to(response.json());
|
|
357
339
|
if (parseError) return [parseError];
|
|
358
340
|
const {
|
|
359
341
|
LogonResult,
|
|
360
342
|
ApplicationData = []
|
|
361
343
|
} = body;
|
|
362
344
|
if (LogonResult !== 0) {
|
|
345
|
+
console.info(`Security token is invalid - LogonResult: ${LogonResult}`);
|
|
363
346
|
return [{
|
|
364
347
|
message: 'Security token is invalid',
|
|
365
348
|
data: ApplicationData
|
|
@@ -402,14 +385,15 @@ LoginHelper.CMS_URL = SERVERS.cms /* global SERVERS */;
|
|
|
402
385
|
LoginHelper.WSFED_LOGIN = process.env.NODE_ENV === 'development' ? WSFED_LOGIN === 'true' /* global WSFED_LOGIN */ : context.WSFED_LOGIN === 'true';
|
|
403
386
|
LoginHelper.LOGIN_ROUTE = '/account/login';
|
|
404
387
|
LoginHelper.ACCESS_DENIED_ROUTE = '/account/access-denied';
|
|
388
|
+
LoginHelper.withCookies = cookieHelper => new LoginHelper(cookieHelper);
|
|
405
389
|
LoginHelper.GetUserDetails = async client => {
|
|
406
390
|
let userError,
|
|
407
391
|
groupsError,
|
|
408
392
|
user = {},
|
|
409
393
|
groupsResult;
|
|
410
|
-
[userError, user] = await
|
|
394
|
+
[userError, user] = await to.to(client.security.users.getCurrent());
|
|
411
395
|
if (user && user.id) {
|
|
412
|
-
[groupsError, groupsResult] = await
|
|
396
|
+
[groupsError, groupsResult] = await to.to(client.security.users.getUserGroups({
|
|
413
397
|
userId: user.id,
|
|
414
398
|
includeInherited: true,
|
|
415
399
|
pageOptions: {
|
|
@@ -431,7 +415,9 @@ const loginSagas = [effects.takeEvery(reducers.LOGIN_USER, loginUserSaga), effec
|
|
|
431
415
|
function* handleRequiresLoginSaga(action) {
|
|
432
416
|
var _entry$sys;
|
|
433
417
|
const {
|
|
418
|
+
cookies,
|
|
434
419
|
entry,
|
|
420
|
+
path,
|
|
435
421
|
requireLogin,
|
|
436
422
|
routes: {
|
|
437
423
|
ContentTypeMappings
|
|
@@ -460,14 +446,18 @@ function* handleRequiresLoginSaga(action) {
|
|
|
460
446
|
// If cookies or securityToken are found on any route change
|
|
461
447
|
// always validate and login the user
|
|
462
448
|
if (routeRequiresLogin) {
|
|
449
|
+
console.info(`Route requires login: ${path}`);
|
|
463
450
|
// If routeRequiresLogin do a blocking call that returns userLoggedIn
|
|
464
451
|
userLoggedIn = yield effects.call(validateUserSaga, {
|
|
452
|
+
cookies,
|
|
465
453
|
securityToken
|
|
466
454
|
});
|
|
455
|
+
console.info(`User logged in: ${userLoggedIn}`);
|
|
467
456
|
}
|
|
468
457
|
// otherwise do a non blocking put to handle validation in the background
|
|
469
458
|
else yield effects.put({
|
|
470
459
|
type: reducers.VALIDATE_USER,
|
|
460
|
+
cookies,
|
|
471
461
|
securityToken
|
|
472
462
|
});
|
|
473
463
|
}
|
|
@@ -482,13 +472,16 @@ function* handleRequiresLoginSaga(action) {
|
|
|
482
472
|
if (!groupMatch) LoginHelper.ClientRedirectToAccessDeniedPage(action.location.pathname);
|
|
483
473
|
}
|
|
484
474
|
}
|
|
475
|
+
return userLoggedIn;
|
|
485
476
|
}
|
|
486
477
|
function* validateUserSaga({
|
|
478
|
+
cookies,
|
|
487
479
|
securityToken
|
|
488
480
|
}) {
|
|
481
|
+
const login = LoginHelper.withCookies(cookies);
|
|
489
482
|
// Check for refreshToken in cookies
|
|
490
|
-
let clientCredentials =
|
|
491
|
-
if (securityToken || clientCredentials.refreshToken) {
|
|
483
|
+
let clientCredentials = login.GetCachedCredentials();
|
|
484
|
+
if (securityToken || clientCredentials.securityToken || clientCredentials.refreshToken) {
|
|
492
485
|
// We only attempt to validate the user if one of the stored
|
|
493
486
|
// tokens are found, in this case we set loading state manually
|
|
494
487
|
// so we don't need to set and unset loading if there are no stored
|
|
@@ -500,26 +493,36 @@ function* validateUserSaga({
|
|
|
500
493
|
});
|
|
501
494
|
// If we have just a security token we will call a CMS endpoint
|
|
502
495
|
// and provide us with a RefreshToken cookie we can use during login
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
496
|
+
if (securityToken || clientCredentials.securityToken && !clientCredentials.refreshToken) {
|
|
497
|
+
const [error, refreshToken] = yield LoginHelper.GetCredentialsForSecurityToken(securityToken || clientCredentials.securityToken);
|
|
498
|
+
if (refreshToken) {
|
|
499
|
+
// Set cookies and reload values
|
|
500
|
+
login.SetLoginCookies({
|
|
501
|
+
contensisClassicToken: securityToken,
|
|
502
|
+
refreshToken
|
|
503
|
+
});
|
|
504
|
+
clientCredentials = login.GetCachedCredentials();
|
|
505
|
+
}
|
|
506
|
+
if (error) {
|
|
507
|
+
login.ClearCachedCredentials();
|
|
508
|
+
yield effects.put({
|
|
509
|
+
type: reducers.SET_AUTHENTICATION_STATE,
|
|
510
|
+
authenticationState: {
|
|
511
|
+
isError: true,
|
|
512
|
+
errorMessage: (error === null || error === void 0 ? void 0 : error.message) || error && 'toString' in error && error.toString()
|
|
513
|
+
}
|
|
514
|
+
});
|
|
515
|
+
}
|
|
511
516
|
}
|
|
512
517
|
|
|
513
518
|
// Log the user in if a refreshToken is found
|
|
514
|
-
if (clientCredentials.refreshToken)
|
|
515
|
-
clientCredentials
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
}
|
|
522
|
-
});
|
|
519
|
+
if (clientCredentials.refreshToken) {
|
|
520
|
+
console.info(`Login user with refreshToken ${clientCredentials.refreshToken}`);
|
|
521
|
+
yield effects.call(loginUserSaga, {
|
|
522
|
+
clientCredentials,
|
|
523
|
+
cookies: login.cookies
|
|
524
|
+
});
|
|
525
|
+
}
|
|
523
526
|
}
|
|
524
527
|
|
|
525
528
|
// Tell any callers have we successfully logged in?
|
|
@@ -529,8 +532,10 @@ function* loginUserSaga(action = {}) {
|
|
|
529
532
|
const {
|
|
530
533
|
username,
|
|
531
534
|
password,
|
|
532
|
-
clientCredentials
|
|
535
|
+
clientCredentials,
|
|
536
|
+
cookies
|
|
533
537
|
} = action;
|
|
538
|
+
const login = LoginHelper.withCookies(cookies);
|
|
534
539
|
|
|
535
540
|
// If a WSFED_LOGIN site has dispatched the loginUser action
|
|
536
541
|
// just redirect them to the Identity Provider sign in
|
|
@@ -538,7 +543,7 @@ function* loginUserSaga(action = {}) {
|
|
|
538
543
|
const {
|
|
539
544
|
authenticationState,
|
|
540
545
|
user
|
|
541
|
-
} = yield
|
|
546
|
+
} = yield login.LoginUser({
|
|
542
547
|
username,
|
|
543
548
|
password,
|
|
544
549
|
clientCredentials
|
|
@@ -574,13 +579,14 @@ function* redirectAfterSuccessfulLoginSaga() {
|
|
|
574
579
|
}
|
|
575
580
|
}
|
|
576
581
|
function* logoutUserSaga({
|
|
577
|
-
redirectPath
|
|
582
|
+
redirectPath,
|
|
583
|
+
cookies
|
|
578
584
|
}) {
|
|
579
585
|
yield effects.put({
|
|
580
586
|
type: reducers.SET_AUTHENTICATION_STATE,
|
|
581
587
|
user: null
|
|
582
588
|
});
|
|
583
|
-
yield LoginHelper.LogoutUser(redirectPath);
|
|
589
|
+
yield LoginHelper.withCookies(cookies).LogoutUser(redirectPath);
|
|
584
590
|
}
|
|
585
591
|
function* refreshSecurityToken() {
|
|
586
592
|
const clientCredentials = yield effects.select(ToJs.selectClientCredentials, 'js');
|
|
@@ -602,4 +608,4 @@ exports.getManagementApiClient = getManagementApiClient;
|
|
|
602
608
|
exports.handleRequiresLoginSaga = handleRequiresLoginSaga;
|
|
603
609
|
exports.loginSagas = loginSagas;
|
|
604
610
|
exports.refreshSecurityToken = refreshSecurityToken;
|
|
605
|
-
//# sourceMappingURL=login-
|
|
611
|
+
//# sourceMappingURL=login-c94a3369.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-c94a3369.js","sources":["../src/routing/util/find-contenttype-mapping.ts","../src/user/transformations/mapClientCredentials.js","../src/user/util/ContensisManagementApi.js","../src/user/util/OidcUserManager.ts","../src/user/util/LoginHelper.class.js","../src/user/redux/sagas/login.js"],"sourcesContent":["import { ContentTypeMapping } from '../routes';\n\nexport const findContentTypeMapping = (\n ContentTypeMappings: ContentTypeMapping[],\n contentTypeId: string\n) => ContentTypeMappings.find(ct => ct.contentTypeID === contentTypeId);\n","import { mapJson } from '~/util/json-mapper';\n\nconst clientCredentials = {\n bearerToken: 'bearerToken',\n bearerTokenExpiryDate: ({ bearerTokenExpiryDate }) =>\n bearerTokenExpiryDate.toISOString(),\n refreshToken: 'refreshToken',\n refreshTokenExpiryDate: ({ refreshTokenExpiryDate }) =>\n refreshTokenExpiryDate.toISOString(),\n contensisClassicToken: 'contensisClassicToken',\n};\nexport default obj => mapJson(obj, clientCredentials);\n","// import { Client } from 'contensis-management-api';\n\nexport const getManagementApiClient = async ({\n bearerToken,\n bearerTokenExpiryDate,\n refreshToken,\n refreshTokenExpiryDate,\n contensisClassicToken,\n username,\n password,\n}) => {\n const rootUrl = SERVERS.api || SERVERS.cms; /* global SERVERS */\n const projectId = PROJECTS[0].id; /* global PROJECTS */\n\n let config = {};\n if (refreshToken) {\n config = {\n clientType: 'contensis_classic_refresh_token',\n clientDetails: {\n refreshToken,\n },\n };\n } else {\n config = {\n clientType: 'contensis_classic',\n clientDetails: {\n username,\n password,\n },\n };\n }\n\n let { Client } = await import('contensis-management-api');\n\n if (typeof window === 'undefined') {\n const { UniversalClient } = await import('contensis-management-api');\n Client = UniversalClient;\n }\n\n const client = Client.create({\n ...config,\n projectId,\n rootUrl,\n });\n\n if (bearerToken) client.bearerToken = bearerToken;\n if (bearerTokenExpiryDate)\n client.bearerTokenExpiryDate = bearerTokenExpiryDate;\n if (refreshToken) client.refreshToken = refreshToken;\n if (refreshTokenExpiryDate)\n client.refreshTokenExpiryDate = refreshTokenExpiryDate;\n if (contensisClassicToken)\n client.contensisClassicToken = contensisClassicToken;\n\n return client;\n};\n","import { UserManagerSettings } from 'oidc-client';\n\nconst context = (\n typeof window != 'undefined' ? window : global\n) as typeof globalThis & {\n WSFED_LOGIN: string;\n};\n\nconst requireOidc =\n process.env.NODE_ENV === 'development'\n ? WSFED_LOGIN === 'true' /* global WSFED_LOGIN */\n : context.WSFED_LOGIN === 'true';\n\nconst servers = SERVERS; /* global SERVERS */\n\nexport const userManagerConfig =\n typeof window !== 'undefined'\n ? {\n authority: `${servers.cms}/authenticate/`,\n client_id: 'WebsiteAdfsClient',\n redirect_uri: window.location.toString(),\n post_logout_redirect_uri: window.location.toString(),\n response_type: 'id_token',\n scope: 'openid',\n filterProtocolClaims: false,\n }\n : {};\n\nexport const createUserManager = async (config: UserManagerSettings) => {\n if (typeof window !== 'undefined' && requireOidc) {\n try {\n const { UserManager } = await import(\n /* webpackChunkName: \"oidcclient\" */ 'oidc-client'\n );\n return new UserManager(config);\n } catch (e) {\n console.error('Exception in createUserManager: ', e);\n }\n } else return {};\n};\n","/* eslint-disable require-atomic-updates */\nimport { to } from 'await-to-js';\n\nimport { getManagementApiClient } from './ContensisManagementApi';\n\nimport mapClientCredentials from '../transformations/mapClientCredentials';\nimport { createUserManager, userManagerConfig } from './OidcUserManager';\nimport { LOGIN_COOKIE, REFRESH_TOKEN_COOKIE } from './CookieConstants';\n\nconst context = typeof window != 'undefined' ? window : global;\n\nexport class LoginHelper {\n static CMS_URL = SERVERS.cms /* global SERVERS */;\n static WSFED_LOGIN =\n process.env.NODE_ENV === 'development'\n ? WSFED_LOGIN === 'true' /* global WSFED_LOGIN */\n : context.WSFED_LOGIN === 'true';\n static LOGIN_ROUTE = '/account/login';\n static ACCESS_DENIED_ROUTE = '/account/access-denied';\n\n cookies;\n constructor(cookies) {\n this.cookies = cookies;\n }\n\n SetLoginCookies({ contensisClassicToken, refreshToken }) {\n console.info(\n 'SetLoginCookies:',\n LOGIN_COOKIE,\n contensisClassicToken,\n REFRESH_TOKEN_COOKIE,\n refreshToken\n );\n\n if (contensisClassicToken)\n this.cookies.SetCookie(LOGIN_COOKIE, contensisClassicToken);\n\n if (refreshToken)\n this.cookies.SetCookie(REFRESH_TOKEN_COOKIE, refreshToken);\n }\n\n GetCachedCredentials() {\n return {\n bearerToken: null,\n bearerTokenExpiryDate: null,\n refreshToken: this.cookies.GetCookie(REFRESH_TOKEN_COOKIE),\n refreshTokenExpiryDate: null,\n contensisClassicToken: this.cookies.GetCookie(LOGIN_COOKIE),\n };\n }\n\n ClearCachedCredentials() {\n this.cookies.DeleteCookie(LOGIN_COOKIE);\n this.cookies.DeleteCookie(REFRESH_TOKEN_COOKIE);\n\n if (LoginHelper.WSFED_LOGIN && typeof window !== 'undefined') {\n // remove any oidc keys left over in localStorage\n const { localStorage } = window;\n const keys = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (typeof key === 'string' && key.startsWith('oidc.'))\n keys.push(localStorage.key(i));\n }\n keys.forEach(key => localStorage.removeItem(key));\n }\n }\n\n async LoginUser({ username, password, clientCredentials }) {\n let credentials = clientCredentials;\n let authenticationState = {\n clientCredentials: null,\n isAuthenticated: false,\n isAuthenticationError: false,\n isError: false,\n };\n let transientClient;\n let user;\n\n if (username && password) {\n // Get a management client with username and password\n transientClient = await getManagementApiClient({\n username,\n password,\n });\n\n // Ensure the client has requested a bearer token\n const [loginError, clientBearerToken] = await to(\n transientClient.ensureBearerToken()\n );\n\n // Problem getting token with username and password\n if (loginError) {\n authenticationState = {\n clientCredentials: null,\n errorMessage: loginError.message || null,\n isAuthenticated: false,\n isAuthenticationError: loginError.name.includes(\n 'ContensisAuthenticationError'\n ),\n isError: true,\n };\n this.ClearCachedCredentials();\n }\n\n // Got a token using username and password\n if (clientBearerToken) {\n // Set credentials so we can continue to GetUserDetails\n credentials = mapClientCredentials(transientClient);\n this.SetLoginCookies(credentials);\n authenticationState = {\n clientCredentials: credentials,\n isAuthenticated: true,\n isAuthenticationError: false,\n isError: false,\n };\n }\n }\n\n // If we have credentials supplied by a successful username and password login\n // or clientCredentials supplied in the options argument we can continue to\n // fetch the user's details\n if (credentials) {\n const client =\n transientClient || (await getManagementApiClient(credentials));\n const [error, userDetails] = await LoginHelper.GetUserDetails(client);\n\n if (error) {\n authenticationState = {\n clientCredentials: null,\n errorMessage: error.message,\n isAuthenticated: false,\n isAuthenticationError: false,\n isError: true,\n };\n this.ClearCachedCredentials();\n } else {\n // Ensure we get latest refreshToken and contensisClassicToken from the latest client\n const latestCredentials = mapClientCredentials(client);\n this.SetLoginCookies(latestCredentials);\n\n user = userDetails;\n authenticationState = {\n clientCredentials: latestCredentials,\n isAuthenticated: true,\n isAuthenticationError: false,\n isError: false,\n };\n }\n }\n\n return { authenticationState, user };\n }\n\n LogoutUser(redirectPath) {\n this.ClearCachedCredentials();\n if (LoginHelper.WSFED_LOGIN) {\n LoginHelper.WsFedLogout(redirectPath);\n } else {\n if (redirectPath) LoginHelper.ClientRedirectToPath(redirectPath);\n else LoginHelper.ClientRedirectToSignInPage();\n }\n }\n\n static withCookies = cookieHelper => new LoginHelper(cookieHelper);\n\n static GetUserDetails = async client => {\n let userError,\n groupsError,\n user = {},\n groupsResult;\n\n [userError, user] = await to(client.security.users.getCurrent());\n if (user && user.id) {\n [groupsError, groupsResult] = await to(\n client.security.users.getUserGroups({\n userId: user.id,\n includeInherited: true,\n pageOptions: { pageSize: 100 },\n })\n );\n // Set groups attribute in user object to be the items\n // array from the getUserGroups result\n if (groupsResult && groupsResult.items) user.groups = groupsResult.items;\n\n //If groups call fails then log the error but allow the user to login still\n // eslint-disable-next-line no-console\n if (groupsError) console.log(groupsError);\n }\n return [userError, user];\n };\n\n static ClientRedirectToHome(location) {\n if (typeof window != 'undefined') {\n let url = '/';\n if (location) {\n const { search, hash } = location;\n url = search ? `${url}${search}` : url;\n url = hash ? `${url}${hash}` : url;\n }\n window.location.href = url;\n }\n }\n\n static async ClientRedirectToSignInPage(redirectPath) {\n if (typeof location === 'undefined') return;\n if (LoginHelper.WSFED_LOGIN) {\n await LoginHelper.WsFedLogout();\n await LoginHelper.WsFedLogin();\n } else {\n // Standard Contensis Login\n let url = LoginHelper.LOGIN_ROUTE;\n if (typeof redirectPath === 'string')\n url = `${url}?redirect_uri=${redirectPath}`;\n if (\n typeof location !== 'undefined' &&\n redirectPath !== LoginHelper.LOGIN_ROUTE\n )\n location.replace(url);\n }\n }\n\n static ClientRedirectToAccessDeniedPage(originalPath) {\n let url = LoginHelper.ACCESS_DENIED_ROUTE;\n if (originalPath === url) return;\n\n if (typeof originalPath === 'string')\n url = `${url}?original_uri=${originalPath}`;\n if (typeof location !== 'undefined') location.href = url;\n }\n\n static ClientRedirectToPath(redirectPath) {\n if (typeof redirectPath === 'string') {\n if (typeof location !== 'undefined') window.location.href = redirectPath;\n } else LoginHelper.ClientRedirectToHome();\n }\n\n static async WsFedLogin(redirectUri) {\n const userManager = await createUserManager(userManagerConfig);\n userManager.signinRedirect({\n scope: 'openid',\n response_type: 'id_token',\n redirect_uri: redirectUri || window.location.toString(),\n });\n }\n\n static RemoveSecurityTokenQuery() {\n const params = new URLSearchParams(window.location.search);\n if (params.has('securitytoken') || params.has('securityToken')) {\n params.delete('securitytoken');\n params.delete('securityToken');\n window.location = `${window.location.pathname}${\n params.toString() ? `?${params}` : ''\n }`;\n }\n }\n\n static async WsFedLogout(redirectPath) {\n await fetch(\n `${LoginHelper.CMS_URL}/authenticate/logout?jsonResponseRequired=true`,\n {\n credentials: 'include',\n }\n );\n if (redirectPath) {\n window.location = redirectPath;\n } else {\n // Explicitly check and remove any stale\n // security token that may be in the query string\n LoginHelper.RemoveSecurityTokenQuery();\n }\n }\n\n static async GetCredentialsForSecurityToken(securityToken) {\n const [error, response] = await to(\n fetch(`${LoginHelper.CMS_URL}/REST/Contensis/Security/IsAuthenticated`, {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n securityToken: encodeURIComponent(securityToken),\n }),\n })\n );\n if (error) return [{ message: 'Failed to fetch credentials' }];\n if (response.ok) {\n const [parseError, body] = await to(response.json());\n if (parseError) return [parseError];\n\n const { LogonResult, ApplicationData = [] } = body;\n if (LogonResult !== 0) {\n console.info(`Security token is invalid - LogonResult: ${LogonResult}`);\n return [\n { message: 'Security token is invalid', data: ApplicationData },\n ];\n }\n if (ApplicationData.length > 0) {\n let refreshToken;\n ApplicationData.forEach(item => {\n if (item.Key === 'ContensisSecurityRefreshToken')\n refreshToken = item.Value;\n });\n if (!refreshToken) {\n return [\n {\n message:\n 'Fetch credentials: Unable to find ContensisSecurityRefreshToken',\n },\n ];\n }\n return [undefined, refreshToken];\n } else {\n return [\n {\n message:\n 'Fetch credentials: Unable to find ContensisSecurityRefreshToken',\n },\n ];\n }\n } else {\n return [\n {\n message: `Fetch credentials error: ${response.status} ${response.statusText}`,\n },\n ];\n }\n }\n\n // static isZengentiStaff(email) {\n // const emailRefs = ['@zengenti', '@contensis'];\n\n // return emailRefs.some(emailRef => {\n // if (email.includes(emailRef)) {\n // return true;\n // }\n // });\n // }\n}\n","import { takeEvery, select, put, call } from 'redux-saga/effects';\nimport {\n SET_AUTHENTICATION_STATE,\n LOGIN_USER,\n LOGOUT_USER,\n VALIDATE_USER,\n} from '../types';\nimport {\n selectUserIsAuthenticated,\n selectClientCredentials,\n selectUserGroups,\n} from '../selectors';\n\nimport { setRoute } from '~/routing/redux/actions';\nimport { selectCurrentSearch } from '~/routing/redux/selectors';\nimport { findContentTypeMapping } from '~/routing/util/find-contenttype-mapping';\n\nimport mapClientCredentials from '~/user/transformations/mapClientCredentials';\n\nimport { getManagementApiClient } from '~/user/util/ContensisManagementApi';\nimport { LoginHelper } from '~/user/util/LoginHelper.class';\nimport { matchUserGroup } from '~/user/util/matchGroups';\nimport { queryParams } from '~/util/navigation';\n\nexport const loginSagas = [\n takeEvery(LOGIN_USER, loginUserSaga),\n takeEvery(LOGOUT_USER, logoutUserSaga),\n takeEvery(VALIDATE_USER, validateUserSaga),\n takeEvery(SET_AUTHENTICATION_STATE, redirectAfterSuccessfulLoginSaga),\n];\n\nexport function* handleRequiresLoginSaga(action) {\n const {\n cookies,\n entry,\n path,\n requireLogin,\n routes: { ContentTypeMappings },\n staticRoute,\n } = action;\n let userLoggedIn = yield select(selectUserIsAuthenticated);\n\n // Check for a securityToken in querystring\n const currentQs = queryParams(yield select(selectCurrentSearch));\n const securityToken = currentQs.securityToken || currentQs.securitytoken;\n\n // Check if any of the defined routes have \"requireLogin\" attribute\n const { requireLogin: authRoute } = (staticRoute && staticRoute.route) || {};\n const { requireLogin: authContentType } =\n (entry &&\n findContentTypeMapping(ContentTypeMappings, entry?.sys?.contentTypeId)) ||\n {};\n\n // If requireLogin, authRoute or authContentType has been specified as an\n // array of groups we can merge all the arrays and match on any group supplied\n const routeRequiresGroups = [\n ...((Array.isArray(authContentType) && authContentType) || []),\n ...((Array.isArray(authRoute) && authRoute) || []),\n ...((Array.isArray(requireLogin) && requireLogin) || []),\n ];\n const routeRequiresLogin = !!authContentType || !!authRoute || !!requireLogin;\n\n if (!userLoggedIn) {\n // If cookies or securityToken are found on any route change\n // always validate and login the user\n if (routeRequiresLogin) {\n console.info(`Route requires login: ${path}`);\n // If routeRequiresLogin do a blocking call that returns userLoggedIn\n userLoggedIn = yield call(validateUserSaga, {\n cookies,\n securityToken,\n });\n console.info(`User logged in: ${userLoggedIn}`);\n }\n // otherwise do a non blocking put to handle validation in the background\n else yield put({ type: VALIDATE_USER, cookies, securityToken });\n }\n\n if (routeRequiresLogin) {\n // If a security token is in the querystring and we are not already\n // logged in something is wrong and we won't bother going on another redirect loop\n if (!userLoggedIn && !securityToken) {\n LoginHelper.ClientRedirectToSignInPage(action.location.pathname);\n } else if (routeRequiresGroups.length > 0) {\n const userGroups = yield select(selectUserGroups, 'js');\n const groupMatch = matchUserGroup(userGroups, routeRequiresGroups);\n\n if (!groupMatch)\n LoginHelper.ClientRedirectToAccessDeniedPage(action.location.pathname);\n }\n }\n\n return userLoggedIn;\n}\n\nfunction* validateUserSaga({ cookies, securityToken }) {\n const login = LoginHelper.withCookies(cookies);\n // Check for refreshToken in cookies\n let clientCredentials = login.GetCachedCredentials();\n\n if (\n securityToken ||\n clientCredentials.securityToken ||\n clientCredentials.refreshToken\n ) {\n // We only attempt to validate the user if one of the stored\n // tokens are found, in this case we set loading state manually\n // so we don't need to set and unset loading if there are no stored\n yield put({\n type: SET_AUTHENTICATION_STATE,\n authenticationState: {\n isLoading: true,\n },\n });\n // If we have just a security token we will call a CMS endpoint\n // and provide us with a RefreshToken cookie we can use during login\n if (\n securityToken ||\n (clientCredentials.securityToken && !clientCredentials.refreshToken)\n ) {\n const [error, refreshToken] =\n yield LoginHelper.GetCredentialsForSecurityToken(\n securityToken || clientCredentials.securityToken\n );\n if (refreshToken) {\n // Set cookies and reload values\n login.SetLoginCookies({\n contensisClassicToken: securityToken,\n refreshToken,\n });\n clientCredentials = login.GetCachedCredentials();\n }\n if (error) {\n login.ClearCachedCredentials();\n yield put({\n type: SET_AUTHENTICATION_STATE,\n authenticationState: {\n isError: true,\n errorMessage:\n error?.message ||\n (error && 'toString' in error && error.toString()),\n },\n });\n }\n }\n\n // Log the user in if a refreshToken is found\n if (clientCredentials.refreshToken) {\n console.info(\n `Login user with refreshToken ${clientCredentials.refreshToken}`\n );\n yield call(loginUserSaga, {\n clientCredentials,\n cookies: login.cookies,\n });\n }\n }\n\n // Tell any callers have we successfully logged in?\n return yield select(selectUserIsAuthenticated);\n}\n\nfunction* loginUserSaga(action = {}) {\n const { username, password, clientCredentials, cookies } = action;\n const login = LoginHelper.withCookies(cookies);\n\n // If a WSFED_LOGIN site has dispatched the loginUser action\n // just redirect them to the Identity Provider sign in\n if (action.type === LOGIN_USER && LoginHelper.WSFED_LOGIN)\n LoginHelper.ClientRedirectToSignInPage();\n\n const { authenticationState, user } = yield login.LoginUser({\n username,\n password,\n clientCredentials,\n });\n\n yield put({\n type: SET_AUTHENTICATION_STATE,\n authenticationState,\n user,\n });\n}\n\nconst removeHostnamePart = path => {\n // eslint-disable-next-line no-console\n console.log(path);\n const relativePath = '/' + path.split('/').splice(3).join('/');\n // eslint-disable-next-line no-console\n console.log(relativePath);\n return relativePath;\n};\n\nfunction* redirectAfterSuccessfulLoginSaga() {\n const isLoggedIn = yield select(selectUserIsAuthenticated);\n const { redirect_uri: redirectPath, ReturnURL: assetRedirectPath } =\n queryParams(yield select(selectCurrentSearch));\n\n if (isLoggedIn && assetRedirectPath && typeof window != 'undefined') {\n const path = removeHostnamePart(assetRedirectPath);\n // This has to be a hard href to get the app to\n // leave React and hit the server for the IIS hosted assets\n window.location.href = path;\n // yield put(setRoute(path)); // does not work in this scenario\n } else if (isLoggedIn && redirectPath) {\n yield put(setRoute(redirectPath));\n }\n}\n\nfunction* logoutUserSaga({ redirectPath, cookies }) {\n yield put({\n type: SET_AUTHENTICATION_STATE,\n user: null,\n });\n yield LoginHelper.withCookies(cookies).LogoutUser(redirectPath);\n}\n\nexport function* refreshSecurityToken() {\n const clientCredentials = yield select(selectClientCredentials, 'js');\n if (Object.keys(clientCredentials).length > 0) {\n const client = yield getManagementApiClient(clientCredentials);\n yield client.authenticate();\n\n yield put({\n type: SET_AUTHENTICATION_STATE,\n authenticationState: {\n clientCredentials: mapClientCredentials(client),\n },\n });\n }\n}\n"],"names":["findContentTypeMapping","ContentTypeMappings","contentTypeId","find","ct","contentTypeID","clientCredentials","bearerToken","bearerTokenExpiryDate","toISOString","refreshToken","refreshTokenExpiryDate","contensisClassicToken","obj","mapJson","getManagementApiClient","username","password","rootUrl","SERVERS","api","cms","projectId","PROJECTS","id","config","clientType","clientDetails","Client","window","UniversalClient","client","create","context","global","requireOidc","process","env","NODE_ENV","WSFED_LOGIN","servers","userManagerConfig","authority","client_id","redirect_uri","location","toString","post_logout_redirect_uri","response_type","scope","filterProtocolClaims","createUserManager","UserManager","e","console","error","LoginHelper","constructor","cookies","SetLoginCookies","info","LOGIN_COOKIE","REFRESH_TOKEN_COOKIE","SetCookie","GetCachedCredentials","GetCookie","ClearCachedCredentials","DeleteCookie","localStorage","keys","i","length","key","startsWith","push","forEach","removeItem","LoginUser","credentials","authenticationState","isAuthenticated","isAuthenticationError","isError","transientClient","user","loginError","clientBearerToken","to","ensureBearerToken","errorMessage","message","name","includes","mapClientCredentials","userDetails","GetUserDetails","latestCredentials","LogoutUser","redirectPath","WsFedLogout","ClientRedirectToPath","ClientRedirectToSignInPage","ClientRedirectToHome","url","search","hash","href","WsFedLogin","LOGIN_ROUTE","replace","ClientRedirectToAccessDeniedPage","originalPath","ACCESS_DENIED_ROUTE","redirectUri","userManager","signinRedirect","RemoveSecurityTokenQuery","params","URLSearchParams","has","delete","pathname","fetch","CMS_URL","GetCredentialsForSecurityToken","securityToken","response","method","headers","Accept","body","JSON","stringify","encodeURIComponent","ok","parseError","json","LogonResult","ApplicationData","data","item","Key","Value","undefined","status","statusText","withCookies","cookieHelper","userError","groupsError","groupsResult","security","users","getCurrent","getUserGroups","userId","includeInherited","pageOptions","pageSize","items","groups","log","loginSagas","takeEvery","LOGIN_USER","loginUserSaga","LOGOUT_USER","logoutUserSaga","VALIDATE_USER","validateUserSaga","SET_AUTHENTICATION_STATE","redirectAfterSuccessfulLoginSaga","handleRequiresLoginSaga","action","_entry$sys","entry","path","requireLogin","routes","staticRoute","userLoggedIn","select","selectUserIsAuthenticated","currentQs","queryParams","selectCurrentSearch","securitytoken","authRoute","route","authContentType","sys","routeRequiresGroups","Array","isArray","routeRequiresLogin","call","put","type","userGroups","selectUserGroups","groupMatch","matchUserGroup","login","isLoading","removeHostnamePart","relativePath","split","splice","join","isLoggedIn","ReturnURL","assetRedirectPath","setRoute","refreshSecurityToken","selectClientCredentials","Object","authenticate"],"mappings":"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"}
|
package/cjs/redux.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var version$1 = require('./version-
|
|
6
|
-
var selectors$1 = require('./selectors-
|
|
7
|
-
var version$2 = require('./version-
|
|
5
|
+
var version$1 = require('./version-153ec9ef.js');
|
|
6
|
+
var selectors$1 = require('./selectors-bb991331.js');
|
|
7
|
+
var version$2 = require('./version-963a7634.js');
|
|
8
8
|
require('redux');
|
|
9
9
|
require('redux-thunk');
|
|
10
10
|
require('redux-saga');
|
package/cjs/routing.js
CHANGED
|
@@ -2,17 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var selectors = require('./selectors-
|
|
6
|
-
var RouteLoader = require('./RouteLoader-
|
|
5
|
+
var selectors = require('./selectors-bb991331.js');
|
|
6
|
+
var RouteLoader = require('./RouteLoader-005d7f4e.js');
|
|
7
7
|
require('jsonpath-mapper');
|
|
8
8
|
require('query-string');
|
|
9
9
|
require('react');
|
|
10
|
+
require('react-cookie');
|
|
10
11
|
require('react-redux');
|
|
11
12
|
require('react-hot-loader');
|
|
12
13
|
require('react-router-dom');
|
|
13
14
|
require('react-router-config');
|
|
14
15
|
require('reselect');
|
|
15
|
-
require('./ToJs-
|
|
16
|
+
require('./ToJs-5169fe56.js');
|
|
17
|
+
require('./CookieHelper.class-daeb09dd.js');
|
|
16
18
|
|
|
17
19
|
|
|
18
20
|
|
package/cjs/routing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"routing.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -44,7 +44,6 @@ const SET_ANCESTORS = `${ROUTING_PREFIX}_SET_ANCESTORS`;
|
|
|
44
44
|
const SET_SIBLINGS = `${ROUTING_PREFIX}_SET_SIBLINGS`;
|
|
45
45
|
const SET_ENTRY_ID = `${ROUTING_PREFIX}_SET_ENTRY_ID`;
|
|
46
46
|
const SET_SURROGATE_KEYS = `${ROUTING_PREFIX}_SET_SURROGATE_KEYS`;
|
|
47
|
-
const SET_NAVIGATION_NOT_FOUND = `${ROUTING_PREFIX}_SET_NOT_FOUND`;
|
|
48
47
|
const SET_NAVIGATION_PATH = `${ROUTING_PREFIX}_SET_NAVIGATION_PATH`;
|
|
49
48
|
const SET_TARGET_PROJECT = `${ROUTING_PREFIX}_SET_TARGET_PROJECT`;
|
|
50
49
|
const SET_ROUTE = `${ROUTING_PREFIX}_SET_ROUTE`;
|
|
@@ -59,23 +58,20 @@ var routing$2 = /*#__PURE__*/Object.freeze({
|
|
|
59
58
|
SET_SIBLINGS: SET_SIBLINGS,
|
|
60
59
|
SET_ENTRY_ID: SET_ENTRY_ID,
|
|
61
60
|
SET_SURROGATE_KEYS: SET_SURROGATE_KEYS,
|
|
62
|
-
SET_NAVIGATION_NOT_FOUND: SET_NAVIGATION_NOT_FOUND,
|
|
63
61
|
SET_NAVIGATION_PATH: SET_NAVIGATION_PATH,
|
|
64
62
|
SET_TARGET_PROJECT: SET_TARGET_PROJECT,
|
|
65
63
|
SET_ROUTE: SET_ROUTE,
|
|
66
64
|
UPDATE_LOADING_STATE: UPDATE_LOADING_STATE
|
|
67
65
|
});
|
|
68
66
|
|
|
69
|
-
const
|
|
70
|
-
notFound
|
|
71
|
-
});
|
|
72
|
-
const setNavigationPath = (path, location, staticRoute, withEvents, statePath, routes) => action(SET_NAVIGATION_PATH, {
|
|
67
|
+
const setNavigationPath = (path, location, staticRoute, withEvents, statePath, routes, cookies) => action(SET_NAVIGATION_PATH, {
|
|
73
68
|
path,
|
|
74
69
|
location,
|
|
75
70
|
staticRoute,
|
|
76
71
|
withEvents,
|
|
77
72
|
statePath,
|
|
78
|
-
routes
|
|
73
|
+
routes,
|
|
74
|
+
cookies
|
|
79
75
|
});
|
|
80
76
|
const setCurrentProject = (project, allowedGroups, hostname) => action(SET_TARGET_PROJECT, {
|
|
81
77
|
project,
|
|
@@ -96,7 +92,6 @@ const setSurrogateKeys = (keys, url) => action(SET_SURROGATE_KEYS, {
|
|
|
96
92
|
|
|
97
93
|
var routing$1 = /*#__PURE__*/Object.freeze({
|
|
98
94
|
__proto__: null,
|
|
99
|
-
setNotFound: setNotFound,
|
|
100
95
|
setNavigationPath: setNavigationPath,
|
|
101
96
|
setCurrentProject: setCurrentProject,
|
|
102
97
|
setRoute: setRoute,
|
|
@@ -224,4 +219,4 @@ exports.setCurrentProject = setCurrentProject;
|
|
|
224
219
|
exports.setNavigationPath = setNavigationPath;
|
|
225
220
|
exports.setRoute = setRoute;
|
|
226
221
|
exports.setSurrogateKeys = setSurrogateKeys;
|
|
227
|
-
//# sourceMappingURL=selectors-
|
|
222
|
+
//# sourceMappingURL=selectors-bb991331.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors-bb991331.js","sources":["../src/redux/util.ts","../src/routing/redux/types.ts","../src/routing/redux/actions.ts","../src/util/navigation.js","../src/routing/redux/selectors.ts"],"sourcesContent":["import { jpath } from '~/util/json-mapper';\n\nexport const action = (type: string, payload: any = {}) => ({\n type,\n ...payload,\n});\n\nexport const getJS = <S extends Record<string, unknown>, T extends keyof S>(\n state: S,\n stateKey: T\n) => {\n if (\n 'get' in state &&\n typeof state.get === 'function' &&\n 'toJS' in state &&\n typeof state.toJS === 'function'\n ) {\n return state.get(stateKey) as S[T];\n }\n return state[stateKey];\n};\n\nexport const getImmutableOrJS = <\n S extends Record<string, unknown>,\n T extends keyof S | any\n>(\n state: S,\n stateKey: T | T[],\n fallbackValue?: any,\n returnType: 'immutable' | 'js' = globalThis.STATE_TYPE\n) => {\n // Find a fromJS function from global that is dynamically loaded in createStore\n // or replace with a stub function for non-immutable gets\n const fromJS =\n returnType === 'immutable'\n ? globalThis.immutable?.fromJSOrdered || globalThis.immutable?.fromJS\n : v => v;\n\n if (\n state &&\n 'get' in state &&\n typeof state.get === 'function' &&\n 'getIn' in state &&\n typeof state.getIn === 'function' &&\n 'toJS' in state &&\n typeof state.toJS === 'function'\n ) {\n if (Array.isArray(stateKey))\n return fromJS(state.getIn(stateKey, fallbackValue));\n return fromJS(state.get(stateKey, fallbackValue)) as S[T | any];\n }\n\n if (Array.isArray(stateKey) && state && typeof state === 'object') {\n const result = jpath(stateKey.join('.'), state);\n if (typeof result === 'undefined') return fallbackValue;\n return result;\n }\n\n const result =\n state && typeof state === 'object' ? state[stateKey as string] : undefined;\n if (typeof result === 'undefined') return fallbackValue;\n return result;\n};\n","const ROUTING_PREFIX = '@ROUTING/';\nexport const GET_ENTRY = `${ROUTING_PREFIX}_GET_ENTRY`;\nexport const SET_ENTRY = `${ROUTING_PREFIX}_SET_ENTRY`;\nexport const SET_NODE = `${ROUTING_PREFIX}_SET_NODE`;\nexport const SET_ANCESTORS = `${ROUTING_PREFIX}_SET_ANCESTORS`;\nexport const SET_SIBLINGS = `${ROUTING_PREFIX}_SET_SIBLINGS`;\nexport const SET_ENTRY_ID = `${ROUTING_PREFIX}_SET_ENTRY_ID`;\nexport const SET_SURROGATE_KEYS = `${ROUTING_PREFIX}_SET_SURROGATE_KEYS`;\n\nexport const SET_NAVIGATION_PATH = `${ROUTING_PREFIX}_SET_NAVIGATION_PATH`;\n\nexport const SET_TARGET_PROJECT = `${ROUTING_PREFIX}_SET_TARGET_PROJECT`;\n\nexport const SET_ROUTE = `${ROUTING_PREFIX}_SET_ROUTE`;\n\nexport const UPDATE_LOADING_STATE = `${ROUTING_PREFIX}_UPDATE_LOADING_STATE`;\n","import { useLocation } from 'react-router-dom';\nimport { action } from '~/redux/util';\nimport {\n SET_ENTRY,\n SET_NAVIGATION_PATH,\n SET_TARGET_PROJECT,\n SET_ROUTE,\n SET_SURROGATE_KEYS,\n} from './types';\n\nimport { Entry } from 'contensis-delivery-api/lib/models';\nimport { MatchedRoute, RouteConfig } from 'react-router-config';\nimport { AppRoutes, WithEvents } from '../routes';\nimport { CookieHelper } from '~/user/util/CookieHelper.class';\n\nexport const setNavigationPath = (\n path: string,\n location: ReturnType<typeof useLocation>,\n staticRoute: MatchedRoute<any, RouteConfig> | undefined,\n withEvents: WithEvents,\n statePath: string,\n routes: AppRoutes,\n cookies: CookieHelper\n) =>\n action(SET_NAVIGATION_PATH, {\n path,\n location,\n staticRoute,\n withEvents,\n statePath,\n routes,\n cookies,\n });\n\nexport const setCurrentProject = (\n project: string,\n allowedGroups: any,\n hostname: string\n) => action(SET_TARGET_PROJECT, { project, allowedGroups, hostname });\n\nexport const setRoute = (path: string, state?: any) =>\n action(SET_ROUTE, { path, state });\n\nexport const setRouteEntry = (entry: Entry) => action(SET_ENTRY, { entry });\n\nexport const setSurrogateKeys = (keys: string, url: string) =>\n action(SET_SURROGATE_KEYS, { keys, url });\n","import queryString from 'query-string';\n\nexport function queryParams(search) {\n return queryString.parse(\n typeof window != 'undefined' ? window.location.search : search\n );\n}\nexport const routeParams = staticRoute =>\n staticRoute && staticRoute.match ? staticRoute.match.params : {};\n\nexport const buildUrl = (route, params) => {\n const qs = queryString.stringify(params);\n const path = qs ? `${route}?${qs}` : route;\n return path;\n};\n\nexport const clientHostname = () =>\n `${window.location.protocol}//${window.location.hostname}:${window.location.port}`;\n","import { Entry } from 'contensis-delivery-api/lib/models';\nimport { StateType } from '~/config';\nimport { AppState } from '~/redux/appstate';\nimport { getImmutableOrJS as getIn } from '~/redux/util';\nimport { queryParams } from '~/util/navigation';\n\nexport const selectRouteEntry = (state: AppState, returnType?: StateType) =>\n getIn(state, ['routing', 'entry'], {} as Entry, returnType);\n\nexport const selectMappedEntry = (state: AppState, returnType?: StateType) =>\n getIn(state, ['routing', 'mappedEntry'], null, returnType);\n\nexport const selectSurrogateKeys = (state: AppState) => {\n const keys = getIn(state, ['routing', 'surrogateKeys'], [], 'js');\n return keys.join(' ');\n};\nexport const selectCurrentHostname = (state: AppState) =>\n getIn(state, ['routing', 'currentHostname']);\n\nexport const selectCurrentTreeID = (state: AppState) =>\n getIn(state, ['routing', 'currentHostname']);\n\nexport const selectRouteEntryEntryId = (state: AppState) =>\n getIn(state, ['routing', 'entry', 'sys', 'id'], null);\n\nexport const selectRouteEntryContentTypeId = (state: AppState) => {\n const entry = selectRouteEntry(state);\n return getIn(entry, ['sys', 'contentTypeId'], null);\n};\n\nexport const selectRouteEntryLanguage = (state: AppState) => {\n const entry = selectRouteEntry(state);\n return getIn(entry, ['sys', 'language'], null);\n};\n\nexport const selectRouteEntrySlug = (state: AppState) => {\n const entry = selectRouteEntry(state);\n return getIn(entry, ['sys', 'slug'], null);\n};\n\nexport const selectRouteEntryID = (state: AppState) =>\n getIn(state, ['routing', 'entryID']);\n\nexport const selectCanonicalPath = (state: AppState) => {\n return getIn(state, ['routing', 'canonicalPath']);\n};\n\nexport const selectCurrentPath = (state: AppState) =>\n getIn(state, ['routing', 'currentPath']);\n\nexport const selectCurrentLocation = (state: AppState) =>\n getIn(state, ['routing', 'location']);\nexport const selectCurrentSearch = (state: AppState) =>\n getIn(state, ['routing', 'location', 'search']);\nexport const selectCurrentHash = (state: AppState) =>\n getIn(state, ['routing', 'location', 'hash']);\nexport const selectQueryStringAsObject = (state: AppState) =>\n queryParams(selectCurrentSearch(state));\nexport const selectCurrentProject = (state: AppState) =>\n getIn(state, ['routing', 'currentProject']);\nexport const selectIsNotFound = (state: AppState) =>\n getIn(state, ['routing', 'notFound']);\nexport const selectCurrentAncestors = (state: AppState) =>\n getIn(state, ['routing', 'currentNodeAncestors'], []);\nexport const selectCurrentSiblings = (state: AppState) =>\n getIn(state, ['routing', 'currentNodeSiblings'], []);\nexport const selectCurrentNode = (state: AppState, returnType?: StateType) =>\n getIn(state, ['routing', 'currentNode'], null, returnType);\nexport const selectCurrentChildren = state =>\n getIn(state, ['routing', 'currentNode', 'children'], []);\n\nexport const selectBreadcrumb = (state: AppState) => {\n return [...selectCurrentAncestors(state), selectCurrentNode(state)];\n};\nexport const selectRouteErrorMessage = (state: AppState) => {\n const error = getIn(state, ['routing', 'error']);\n return getIn(error, ['data', 'message'], getIn(error, 'statusText'));\n};\nexport const selectRouteIsError = (state: AppState) =>\n getIn(state, ['routing', 'isError']);\nexport const selectRouteLoading = (state: AppState) =>\n getIn(state, ['routing', 'isLoading']);\nexport const selectRouteStatusCode = (state: AppState) =>\n getIn(state, ['routing', 'statusCode']);\nexport const selectStaticRoute = (state: AppState) =>\n getIn(state, ['routing', 'staticRoute']);\n"],"names":["action","type","payload","getJS","state","stateKey","get","toJS","getImmutableOrJS","fallbackValue","returnType","globalThis","STATE_TYPE","_globalThis$immutable","_globalThis$immutable2","fromJS","immutable","fromJSOrdered","v","getIn","Array","isArray","result","jpath","join","undefined","ROUTING_PREFIX","GET_ENTRY","SET_ENTRY","SET_NODE","SET_ANCESTORS","SET_SIBLINGS","SET_ENTRY_ID","SET_SURROGATE_KEYS","SET_NAVIGATION_PATH","SET_TARGET_PROJECT","SET_ROUTE","UPDATE_LOADING_STATE","setNavigationPath","path","location","staticRoute","withEvents","statePath","routes","cookies","setCurrentProject","project","allowedGroups","hostname","setRoute","setRouteEntry","entry","setSurrogateKeys","keys","url","queryParams","search","queryString","parse","window","selectRouteEntry","selectMappedEntry","selectSurrogateKeys","selectCurrentHostname","selectCurrentTreeID","selectRouteEntryEntryId","selectRouteEntryContentTypeId","selectRouteEntryLanguage","selectRouteEntrySlug","selectRouteEntryID","selectCanonicalPath","selectCurrentPath","selectCurrentLocation","selectCurrentSearch","selectCurrentHash","selectQueryStringAsObject","selectCurrentProject","selectIsNotFound","selectCurrentAncestors","selectCurrentSiblings","selectCurrentNode","selectCurrentChildren","selectBreadcrumb","selectRouteErrorMessage","error","selectRouteIsError","selectRouteLoading","selectRouteStatusCode","selectStaticRoute"],"mappings":"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"}
|