@zengenti/contensis-react-base 3.0.2-beta.30 → 3.0.2-beta.32

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.
Files changed (125) hide show
  1. package/cjs/{App-eefb5b8f.js → App-21a7d836.js} +29 -61
  2. package/cjs/App-21a7d836.js.map +1 -0
  3. package/cjs/{ContensisDeliveryApi-e2b3ce60.js → ContensisDeliveryApi-c079b03a.js} +35 -68
  4. package/cjs/ContensisDeliveryApi-c079b03a.js.map +1 -0
  5. package/cjs/{RouteLoader-85bee645.js → RouteLoader-7f0d107a.js} +5 -9
  6. package/cjs/RouteLoader-7f0d107a.js.map +1 -0
  7. package/cjs/{ToJs-29de3c36.js → ToJs-6e9cfa69.js} +2 -2
  8. package/cjs/ToJs-6e9cfa69.js.map +1 -0
  9. package/cjs/_commonjsHelpers-b3309d7b.js +11 -0
  10. package/cjs/_commonjsHelpers-b3309d7b.js.map +1 -0
  11. package/cjs/client.js +11 -15
  12. package/cjs/client.js.map +1 -1
  13. package/cjs/contensis-react-base.js +350 -28
  14. package/cjs/contensis-react-base.js.map +1 -1
  15. package/cjs/forms.js +3057 -1046
  16. package/cjs/forms.js.map +1 -1
  17. package/cjs/{ChangePassword.container-7306be55.js → login-2a6b5be0.js} +84 -247
  18. package/cjs/login-2a6b5be0.js.map +1 -0
  19. package/cjs/redux.js +3 -3
  20. package/cjs/routing.js +3 -5
  21. package/cjs/routing.js.map +1 -1
  22. package/cjs/{selectors-a6eac513.js → selectors-bcca60f4.js} +9 -5
  23. package/cjs/selectors-bcca60f4.js.map +1 -0
  24. package/cjs/user.js +159 -34
  25. package/cjs/user.js.map +1 -1
  26. package/cjs/util.js +3 -7
  27. package/cjs/util.js.map +1 -1
  28. package/cjs/{version-9edb5540.js → version-4077e706.js} +2 -2
  29. package/cjs/{version-9edb5540.js.map → version-4077e706.js.map} +1 -1
  30. package/cjs/{version-d3b5fbde.js → version-fe28099e.js} +3 -3
  31. package/cjs/{version-d3b5fbde.js.map → version-fe28099e.js.map} +1 -1
  32. package/esm/{App-2db3d689.js → App-2af18a99.js} +24 -55
  33. package/esm/App-2af18a99.js.map +1 -0
  34. package/esm/{ContensisDeliveryApi-50b8fd7c.js → ContensisDeliveryApi-5660ee0e.js} +36 -67
  35. package/esm/ContensisDeliveryApi-5660ee0e.js.map +1 -0
  36. package/esm/{RouteLoader-3e77f6a4.js → RouteLoader-6eac364e.js} +5 -9
  37. package/esm/RouteLoader-6eac364e.js.map +1 -0
  38. package/esm/{ToJs-e533a70a.js → ToJs-9b30636a.js} +2 -2
  39. package/esm/ToJs-9b30636a.js.map +1 -0
  40. package/esm/_commonjsHelpers-1789f0cf.js +8 -0
  41. package/esm/_commonjsHelpers-1789f0cf.js.map +1 -0
  42. package/esm/client.js +12 -16
  43. package/esm/client.js.map +1 -1
  44. package/esm/contensis-react-base.js +350 -27
  45. package/esm/contensis-react-base.js.map +1 -1
  46. package/esm/forms.js +3058 -1047
  47. package/esm/forms.js.map +1 -1
  48. package/esm/{ChangePassword.container-54b4011d.js → login-71ff3fcb.js} +78 -230
  49. package/esm/login-71ff3fcb.js.map +1 -0
  50. package/esm/redux.js +6 -6
  51. package/esm/routing.js +3 -5
  52. package/esm/routing.js.map +1 -1
  53. package/esm/{selectors-5061d7c8.js → selectors-74de49a3.js} +10 -5
  54. package/esm/selectors-74de49a3.js.map +1 -0
  55. package/esm/user.js +151 -22
  56. package/esm/user.js.map +1 -1
  57. package/esm/util.js +3 -5
  58. package/esm/util.js.map +1 -1
  59. package/esm/{version-7550d14d.js → version-b15807c5.js} +3 -3
  60. package/esm/{version-7550d14d.js.map → version-b15807c5.js.map} +1 -1
  61. package/esm/{version-1ef42ad1.js → version-ef107106.js} +2 -2
  62. package/esm/{version-1ef42ad1.js.map → version-ef107106.js.map} +1 -1
  63. package/models/client/client.d.ts +1 -1
  64. package/models/config.d.ts +4 -4
  65. package/models/redux/appstate.d.ts +1 -1
  66. package/models/routing/redux/actions.d.ts +6 -10
  67. package/models/routing/redux/selectors.d.ts +3 -3
  68. package/models/routing/redux/types.d.ts +1 -0
  69. package/models/routing/routes.d.ts +17 -20
  70. package/models/search/models/Queries.d.ts +10 -8
  71. package/models/search/models/Search.d.ts +24 -24
  72. package/models/search/models/SearchActions.d.ts +33 -33
  73. package/models/search/models/SearchState.d.ts +11 -11
  74. package/models/search/models/SearchUtil.d.ts +1 -1
  75. package/models/search/models/WithSearch.d.ts +1 -1
  76. package/models/search/redux/actions.d.ts +4 -4
  77. package/models/search/redux/selectors.d.ts +27 -27
  78. package/models/search/redux/util.d.ts +1 -1
  79. package/models/search/search/expressions.d.ts +4 -4
  80. package/models/search/search/util.d.ts +2 -2
  81. package/models/search/transformations/state-to-queryparams.mapper.d.ts +1 -1
  82. package/models/server/features/linkdepth-api/LinkDepthSearchService.d.ts +1 -1
  83. package/models/server/features/linkdepth-api/search.d.ts +2 -2
  84. package/models/server/internalServer.d.ts +5 -7
  85. package/models/server/util/bundles.d.ts +2 -2
  86. package/models/server/util/handleExceptions.d.ts +1 -1
  87. package/models/testImmer/redux/reducer.d.ts +1 -1
  88. package/models/user/components/Login.d.ts +3 -2
  89. package/models/user/containers/ChangePassword.container.d.ts +2 -2
  90. package/models/user/containers/ForgotPassword.container.d.ts +2 -2
  91. package/models/user/containers/Login.container.d.ts +2 -2
  92. package/models/user/containers/Registration.container.d.ts +2 -2
  93. package/models/user/hocs/withLogin.d.ts +11 -5
  94. package/models/user/hocs/withRegistration.d.ts +8 -2
  95. package/models/user/redux/actions.d.ts +2 -2
  96. package/models/user/redux/sagas/login.d.ts +8 -9
  97. package/models/user/redux/selectors.d.ts +4 -4
  98. package/models/user/util/CookieHelper.class.d.ts +3 -15
  99. package/models/user/util/LoginHelper.class.d.ts +23 -27
  100. package/models/util/ContensisDeliveryApi.d.ts +14 -21
  101. package/models/util/ToJs.d.ts +1 -1
  102. package/models/util/index.d.ts +1 -1
  103. package/models/util/json-mapper.d.ts +1 -1
  104. package/package.json +10 -9
  105. package/cjs/App-eefb5b8f.js.map +0 -1
  106. package/cjs/ChangePassword.container-7306be55.js.map +0 -1
  107. package/cjs/ContensisDeliveryApi-e2b3ce60.js.map +0 -1
  108. package/cjs/CookieConstants-000427db.js +0 -10
  109. package/cjs/CookieConstants-000427db.js.map +0 -1
  110. package/cjs/CookieHelper.class-daeb09dd.js +0 -52
  111. package/cjs/CookieHelper.class-daeb09dd.js.map +0 -1
  112. package/cjs/RouteLoader-85bee645.js.map +0 -1
  113. package/cjs/ToJs-29de3c36.js.map +0 -1
  114. package/cjs/selectors-a6eac513.js.map +0 -1
  115. package/esm/App-2db3d689.js.map +0 -1
  116. package/esm/ChangePassword.container-54b4011d.js.map +0 -1
  117. package/esm/ContensisDeliveryApi-50b8fd7c.js.map +0 -1
  118. package/esm/CookieConstants-3d3b6531.js +0 -6
  119. package/esm/CookieConstants-3d3b6531.js.map +0 -1
  120. package/esm/CookieHelper.class-4d6ee27b.js +0 -49
  121. package/esm/CookieHelper.class-4d6ee27b.js.map +0 -1
  122. package/esm/RouteLoader-3e77f6a4.js.map +0 -1
  123. package/esm/ToJs-e533a70a.js.map +0 -1
  124. package/esm/selectors-5061d7c8.js.map +0 -1
  125. package/models/user/util/CookieConstants.d.ts +0 -7
@@ -1,13 +1,10 @@
1
1
  import { takeEvery, put, call, select } from '@redux-saga/core/effects';
2
- import { L as LOGIN_USER, n as LOGOUT_USER, V as VALIDATE_USER, S as SET_AUTHENTICATION_STATE, R as REGISTER_USER, c as REQUEST_USER_PASSWORD_RESET, d as RESET_USER_PASSWORD, C as CHANGE_USER_PASSWORD } from './reducers-3d5c37d1.js';
3
- import { a as selectUserIsAuthenticated, b as selectUserGroups, m as matchUserGroup, s as selectClientCredentials, c as selectUserErrorMessage, d as selectUserIsAuthenticationError, e as selectUserIsError, f as selectUserIsLoading, g as selectUser, t as toJS, h as selectUserRegistrationError, i as selectUserRegistrationIsLoading, j as selectUserRegistrationIsSuccess, k as selectUserRegistration, l as selectPasswordResetRequestSending, n as selectPasswordResetRequestSent, o as selectPasswordResetRequestError, p as selectResetPasswordSending, q as selectResetPasswordSent, r as selectResetPasswordError, u as selectChangePasswordSending, v as selectChangePasswordSent, w as selectUserGuid, x as selectChangePasswordError } from './ToJs-e533a70a.js';
4
- import { q as queryParams, o as selectCurrentSearch, p as setRoute, E as action } from './selectors-5061d7c8.js';
2
+ import { L as LOGIN_USER, n as LOGOUT_USER, V as VALIDATE_USER, S as SET_AUTHENTICATION_STATE } from './reducers-3d5c37d1.js';
3
+ import { a as selectUserIsAuthenticated, b as selectUserGroups, m as matchUserGroup, s as selectClientCredentials } from './ToJs-9b30636a.js';
4
+ import { q as queryParams, o as selectCurrentSearch, p as setRoute } from './selectors-74de49a3.js';
5
5
  import mapJson from 'jsonpath-mapper';
6
6
  import { to } from 'await-to-js';
7
- import { L as LOGIN_COOKIE, R as REFRESH_TOKEN_COOKIE } from './CookieConstants-3d3b6531.js';
8
- import { useCookies } from 'react-cookie';
9
- import { useDispatch, useSelector } from 'react-redux';
10
- import { C as CookieHelper } from './CookieHelper.class-4d6ee27b.js';
7
+ import JSCookie from 'js-cookie';
11
8
 
12
9
  const findContentTypeMapping = (ContentTypeMappings, contentTypeId) => ContentTypeMappings.find(ct => ct.contentTypeID === contentTypeId);
13
10
 
@@ -55,15 +52,9 @@ const getManagementApiClient = async ({
55
52
  }
56
53
  };
57
54
  }
58
- let {
55
+ const {
59
56
  Client
60
57
  } = await import('contensis-management-api');
61
- if (typeof window === 'undefined') {
62
- const {
63
- UniversalClient
64
- } = await import('contensis-management-api');
65
- Client = UniversalClient;
66
- }
67
58
  const client = Client.create({
68
59
  ...config,
69
60
  projectId,
@@ -77,6 +68,32 @@ const getManagementApiClient = async ({
77
68
  return client;
78
69
  };
79
70
 
71
+ const COOKIE_VALID_DAYS = 1; // 0 = Session cookie
72
+
73
+ // Override the default js-cookie conversion / encoding
74
+ // methods so the written values work with Contensis sites
75
+ const Cookies = JSCookie.withConverter({
76
+ read: value => decodeURIComponent(value),
77
+ write: value => encodeURIComponent(value)
78
+ });
79
+ class CookieHelper {
80
+ static GetCookie(name) {
81
+ const cookie = Cookies.get(name);
82
+ if (typeof cookie === 'undefined') {
83
+ return null;
84
+ }
85
+ return cookie;
86
+ }
87
+ static SetCookie(name, value, maxAgeDays = COOKIE_VALID_DAYS) {
88
+ if (maxAgeDays === 0) Cookies.set(name, value);else Cookies.set(name, value, {
89
+ expires: maxAgeDays
90
+ });
91
+ }
92
+ static DeleteCookie(name) {
93
+ Cookies.remove(name);
94
+ }
95
+ }
96
+
80
97
  const context$1 = typeof window != 'undefined' ? window : global;
81
98
  const requireOidc = process.env.NODE_ENV === 'development' ? WSFED_LOGIN === 'true' /* global WSFED_LOGIN */ : context$1.WSFED_LOGIN === 'true';
82
99
  const servers = SERVERS; /* global SERVERS */
@@ -104,32 +121,30 @@ const createUserManager = async config => {
104
121
  };
105
122
 
106
123
  /* eslint-disable require-atomic-updates */
124
+ const LOGIN_COOKIE = 'ContensisCMSUserName';
125
+ const REFRESH_TOKEN_COOKIE = 'RefreshToken';
107
126
  const context = typeof window != 'undefined' ? window : global;
108
127
  class LoginHelper {
109
- constructor(cookies) {
110
- this.cookies = void 0;
111
- this.cookies = cookies;
112
- }
113
- SetLoginCookies({
128
+ static SetLoginCookies({
114
129
  contensisClassicToken,
115
130
  refreshToken
116
131
  }) {
117
132
  console.info('SetLoginCookies:', LOGIN_COOKIE, contensisClassicToken, REFRESH_TOKEN_COOKIE, refreshToken);
118
- if (contensisClassicToken) this.cookies.SetCookie(LOGIN_COOKIE, contensisClassicToken);
119
- if (refreshToken) this.cookies.SetCookie(REFRESH_TOKEN_COOKIE, refreshToken);
133
+ if (contensisClassicToken) CookieHelper.SetCookie(LOGIN_COOKIE, contensisClassicToken);
134
+ if (refreshToken) CookieHelper.SetCookie(REFRESH_TOKEN_COOKIE, refreshToken);
120
135
  }
121
- GetCachedCredentials() {
136
+ static GetCachedCredentials() {
122
137
  return {
123
138
  bearerToken: null,
124
139
  bearerTokenExpiryDate: null,
125
- refreshToken: this.cookies.GetCookie(REFRESH_TOKEN_COOKIE),
140
+ refreshToken: CookieHelper.GetCookie(REFRESH_TOKEN_COOKIE),
126
141
  refreshTokenExpiryDate: null,
127
- contensisClassicToken: this.cookies.GetCookie(LOGIN_COOKIE)
142
+ contensisClassicToken: CookieHelper.GetCookie(LOGIN_COOKIE)
128
143
  };
129
144
  }
130
- ClearCachedCredentials() {
131
- this.cookies.DeleteCookie(LOGIN_COOKIE);
132
- this.cookies.DeleteCookie(REFRESH_TOKEN_COOKIE);
145
+ static ClearCachedCredentials() {
146
+ CookieHelper.DeleteCookie(LOGIN_COOKIE);
147
+ CookieHelper.DeleteCookie(REFRESH_TOKEN_COOKIE);
133
148
  if (LoginHelper.WSFED_LOGIN && typeof window !== 'undefined') {
134
149
  // remove any oidc keys left over in localStorage
135
150
  const {
@@ -143,7 +158,7 @@ class LoginHelper {
143
158
  keys.forEach(key => localStorage.removeItem(key));
144
159
  }
145
160
  }
146
- async LoginUser({
161
+ static async LoginUser({
147
162
  username,
148
163
  password,
149
164
  clientCredentials
@@ -176,14 +191,14 @@ class LoginHelper {
176
191
  isAuthenticationError: loginError.name.includes('ContensisAuthenticationError'),
177
192
  isError: true
178
193
  };
179
- this.ClearCachedCredentials();
194
+ LoginHelper.ClearCachedCredentials();
180
195
  }
181
196
 
182
197
  // Got a token using username and password
183
198
  if (clientBearerToken) {
184
199
  // Set credentials so we can continue to GetUserDetails
185
200
  credentials = mapClientCredentials(transientClient);
186
- this.SetLoginCookies(credentials);
201
+ LoginHelper.SetLoginCookies(credentials);
187
202
  authenticationState = {
188
203
  clientCredentials: credentials,
189
204
  isAuthenticated: true,
@@ -207,11 +222,11 @@ class LoginHelper {
207
222
  isAuthenticationError: false,
208
223
  isError: true
209
224
  };
210
- this.ClearCachedCredentials();
225
+ LoginHelper.ClearCachedCredentials();
211
226
  } else {
212
227
  // Ensure we get latest refreshToken and contensisClassicToken from the latest client
213
228
  const latestCredentials = mapClientCredentials(client);
214
- this.SetLoginCookies(latestCredentials);
229
+ LoginHelper.SetLoginCookies(latestCredentials);
215
230
  user = userDetails;
216
231
  authenticationState = {
217
232
  clientCredentials: latestCredentials,
@@ -226,8 +241,8 @@ class LoginHelper {
226
241
  user
227
242
  };
228
243
  }
229
- LogoutUser(redirectPath) {
230
- this.ClearCachedCredentials();
244
+ static LogoutUser(redirectPath) {
245
+ LoginHelper.ClearCachedCredentials();
231
246
  if (LoginHelper.WSFED_LOGIN) {
232
247
  LoginHelper.WsFedLogout(redirectPath);
233
248
  } else {
@@ -249,7 +264,6 @@ class LoginHelper {
249
264
  }
250
265
  }
251
266
  static async ClientRedirectToSignInPage(redirectPath) {
252
- if (typeof location === 'undefined') return;
253
267
  if (LoginHelper.WSFED_LOGIN) {
254
268
  await LoginHelper.WsFedLogout();
255
269
  await LoginHelper.WsFedLogin();
@@ -260,13 +274,11 @@ class LoginHelper {
260
274
  if (typeof location !== 'undefined' && redirectPath !== LoginHelper.LOGIN_ROUTE) location.replace(url);
261
275
  }
262
276
  }
263
- static GetAccessDeniedRoute(originalPath) {
264
- let url = LoginHelper.ACCESS_DENIED_ROUTE;
265
- if (originalPath !== url && typeof originalPath === 'string') url = `${url}?original_uri=${originalPath}`;
266
- return url;
267
- }
268
277
  static ClientRedirectToAccessDeniedPage(originalPath) {
269
- if (typeof location !== 'undefined') location.href = LoginHelper.GetAccessDeniedRoute(originalPath);
278
+ let url = LoginHelper.ACCESS_DENIED_ROUTE;
279
+ if (originalPath === url) return;
280
+ if (typeof originalPath === 'string') url = `${url}?original_uri=${originalPath}`;
281
+ if (typeof location !== 'undefined') location.href = url;
270
282
  }
271
283
  static ClientRedirectToPath(redirectPath) {
272
284
  if (typeof redirectPath === 'string') {
@@ -323,7 +335,6 @@ class LoginHelper {
323
335
  ApplicationData = []
324
336
  } = body;
325
337
  if (LogonResult !== 0) {
326
- console.info(`Security token is invalid - LogonResult: ${LogonResult}`);
327
338
  return [{
328
339
  message: 'Security token is invalid',
329
340
  data: ApplicationData
@@ -366,7 +377,6 @@ LoginHelper.CMS_URL = SERVERS.cms /* global SERVERS */;
366
377
  LoginHelper.WSFED_LOGIN = process.env.NODE_ENV === 'development' ? WSFED_LOGIN === 'true' /* global WSFED_LOGIN */ : context.WSFED_LOGIN === 'true';
367
378
  LoginHelper.LOGIN_ROUTE = '/account/login';
368
379
  LoginHelper.ACCESS_DENIED_ROUTE = '/account/access-denied';
369
- LoginHelper.withCookies = cookieHelper => new LoginHelper(cookieHelper);
370
380
  LoginHelper.GetUserDetails = async client => {
371
381
  let userError,
372
382
  groupsError,
@@ -396,9 +406,7 @@ const loginSagas = [takeEvery(LOGIN_USER, loginUserSaga), takeEvery(LOGOUT_USER,
396
406
  function* handleRequiresLoginSaga(action) {
397
407
  var _entry$sys;
398
408
  const {
399
- cookies,
400
409
  entry,
401
- path,
402
410
  requireLogin,
403
411
  routes: {
404
412
  ContentTypeMappings
@@ -427,18 +435,14 @@ function* handleRequiresLoginSaga(action) {
427
435
  // If cookies or securityToken are found on any route change
428
436
  // always validate and login the user
429
437
  if (routeRequiresLogin) {
430
- console.info(`Route requires login: ${path}`);
431
438
  // If routeRequiresLogin do a blocking call that returns userLoggedIn
432
439
  userLoggedIn = yield call(validateUserSaga, {
433
- cookies,
434
440
  securityToken
435
441
  });
436
- console.info(`User logged in: ${userLoggedIn}`);
437
442
  }
438
443
  // otherwise do a non blocking put to handle validation in the background
439
444
  else yield put({
440
445
  type: VALIDATE_USER,
441
- cookies,
442
446
  securityToken
443
447
  });
444
448
  }
@@ -453,16 +457,13 @@ function* handleRequiresLoginSaga(action) {
453
457
  if (!groupMatch) LoginHelper.ClientRedirectToAccessDeniedPage(action.location.pathname);
454
458
  }
455
459
  }
456
- return userLoggedIn;
457
460
  }
458
461
  function* validateUserSaga({
459
- cookies,
460
462
  securityToken
461
463
  }) {
462
- const login = LoginHelper.withCookies(cookies);
463
464
  // Check for refreshToken in cookies
464
- let clientCredentials = login.GetCachedCredentials();
465
- if (securityToken || clientCredentials.securityToken || clientCredentials.refreshToken) {
465
+ let clientCredentials = LoginHelper.GetCachedCredentials();
466
+ if (securityToken || clientCredentials.refreshToken) {
466
467
  // We only attempt to validate the user if one of the stored
467
468
  // tokens are found, in this case we set loading state manually
468
469
  // so we don't need to set and unset loading if there are no stored
@@ -474,36 +475,26 @@ function* validateUserSaga({
474
475
  });
475
476
  // If we have just a security token we will call a CMS endpoint
476
477
  // and provide us with a RefreshToken cookie we can use during login
477
- if (securityToken || clientCredentials.securityToken && !clientCredentials.refreshToken) {
478
- const [error, refreshToken] = yield LoginHelper.GetCredentialsForSecurityToken(securityToken || clientCredentials.securityToken);
479
- if (refreshToken) {
480
- // Set cookies and reload values
481
- login.SetLoginCookies({
482
- contensisClassicToken: securityToken,
483
- refreshToken
484
- });
485
- clientCredentials = login.GetCachedCredentials();
486
- }
487
- if (error) {
488
- login.ClearCachedCredentials();
489
- yield put({
490
- type: SET_AUTHENTICATION_STATE,
491
- authenticationState: {
492
- isError: true,
493
- errorMessage: (error === null || error === void 0 ? void 0 : error.message) || error && 'toString' in error && error.toString()
494
- }
495
- });
496
- }
478
+ const [error, refreshToken] = yield LoginHelper.GetCredentialsForSecurityToken(securityToken);
479
+ if (refreshToken) {
480
+ // Set cookies and reload values
481
+ LoginHelper.SetLoginCookies({
482
+ contensisClassicToken: securityToken,
483
+ refreshToken
484
+ });
485
+ clientCredentials = LoginHelper.GetCachedCredentials();
497
486
  }
498
487
 
499
488
  // Log the user in if a refreshToken is found
500
- if (clientCredentials.refreshToken) {
501
- console.info(`Login user with refreshToken ${clientCredentials.refreshToken}`);
502
- yield call(loginUserSaga, {
503
- clientCredentials,
504
- cookies: login.cookies
505
- });
506
- }
489
+ if (clientCredentials.refreshToken) yield call(loginUserSaga, {
490
+ clientCredentials
491
+ });else if (error) yield put({
492
+ type: SET_AUTHENTICATION_STATE,
493
+ authenticationState: {
494
+ isError: true,
495
+ errorMessage: (error === null || error === void 0 ? void 0 : error.message) || error && 'toString' in error && error.toString()
496
+ }
497
+ });
507
498
  }
508
499
 
509
500
  // Tell any callers have we successfully logged in?
@@ -513,10 +504,8 @@ function* loginUserSaga(action = {}) {
513
504
  const {
514
505
  username,
515
506
  password,
516
- clientCredentials,
517
- cookies
507
+ clientCredentials
518
508
  } = action;
519
- const login = LoginHelper.withCookies(cookies);
520
509
 
521
510
  // If a WSFED_LOGIN site has dispatched the loginUser action
522
511
  // just redirect them to the Identity Provider sign in
@@ -524,7 +513,7 @@ function* loginUserSaga(action = {}) {
524
513
  const {
525
514
  authenticationState,
526
515
  user
527
- } = yield login.LoginUser({
516
+ } = yield LoginHelper.LoginUser({
528
517
  username,
529
518
  password,
530
519
  clientCredentials
@@ -560,14 +549,13 @@ function* redirectAfterSuccessfulLoginSaga() {
560
549
  }
561
550
  }
562
551
  function* logoutUserSaga({
563
- redirectPath,
564
- cookies
552
+ redirectPath
565
553
  }) {
566
554
  yield put({
567
555
  type: SET_AUTHENTICATION_STATE,
568
556
  user: null
569
557
  });
570
- yield LoginHelper.withCookies(cookies).LogoutUser(redirectPath);
558
+ yield LoginHelper.LogoutUser(redirectPath);
571
559
  }
572
560
  function* refreshSecurityToken() {
573
561
  const clientCredentials = yield select(selectClientCredentials, 'js');
@@ -583,145 +571,5 @@ function* refreshSecurityToken() {
583
571
  }
584
572
  }
585
573
 
586
- const loginUser = (username, password, cookies) => action(LOGIN_USER, {
587
- username,
588
- password,
589
- cookies
590
- });
591
- const logoutUser = (redirectPath, cookies) => action(LOGOUT_USER, {
592
- redirectPath,
593
- cookies
594
- });
595
- const registerUser = (user, mappers) => action(REGISTER_USER, {
596
- user,
597
- mappers
598
- });
599
- const requestPasswordReset = userEmailObject => action(REQUEST_USER_PASSWORD_RESET, {
600
- userEmailObject
601
- });
602
- const resetPassword = resetPasswordObject => action(RESET_USER_PASSWORD, {
603
- resetPasswordObject
604
- });
605
- const changePassword = (userId, currentPassword, newPassword) => action(CHANGE_USER_PASSWORD, {
606
- userId,
607
- currentPassword,
608
- newPassword
609
- });
610
-
611
- var actions = /*#__PURE__*/Object.freeze({
612
- __proto__: null,
613
- loginUser: loginUser,
614
- logoutUser: logoutUser,
615
- registerUser: registerUser,
616
- requestPasswordReset: requestPasswordReset,
617
- resetPassword: resetPassword,
618
- changePassword: changePassword
619
- });
620
-
621
- const useLogin = () => {
622
- const cookies = new CookieHelper(...useCookies());
623
- const dispatch = useDispatch();
624
- const select = useSelector;
625
- return {
626
- loginUser: (username, password) => dispatch(loginUser(username, password, cookies)),
627
- logoutUser: redirectPath => dispatch(logoutUser(redirectPath, cookies)),
628
- errorMessage: select(selectUserErrorMessage),
629
- isAuthenticated: select(selectUserIsAuthenticated),
630
- isAuthenticationError: select(selectUserIsAuthenticationError),
631
- isError: select(selectUserIsError),
632
- isLoading: select(selectUserIsLoading),
633
- user: select(selectUser),
634
- // DEPRECATED: authenticationError is deprecated use isAuthenticationError instead
635
- authenticationError: select(selectUserIsAuthenticationError),
636
- // DEPRECATED: authenticationErrorMessage is deprecated use errorMessage instead
637
- authenticationErrorMessage: select(selectUserErrorMessage),
638
- // DEPRECATED: error is deprecated use isError instead
639
- error: select(selectUserIsError)
640
- };
641
- };
642
-
643
- const LoginContainer = ({
644
- children,
645
- ...props
646
- }) => {
647
- const userProps = useLogin();
648
- return children(userProps);
649
- };
650
- LoginContainer.propTypes = {};
651
- var Login_container = toJS(LoginContainer);
652
-
653
- const useRegistration = () => {
654
- const dispatch = useDispatch();
655
- const select = useSelector;
656
- return {
657
- registerUser: (user, mappers) => dispatch(registerUser(user, mappers)),
658
- error: select(selectUserRegistrationError),
659
- isLoading: select(selectUserRegistrationIsLoading),
660
- isSuccess: select(selectUserRegistrationIsSuccess),
661
- user: select(selectUserRegistration)
662
- };
663
- };
664
-
665
- const RegistrationContainer = ({
666
- children,
667
- ...props
668
- }) => {
669
- const userProps = useRegistration();
670
- return children(userProps);
671
- };
672
- RegistrationContainer.propTypes = {};
673
- var Registration_container = toJS(RegistrationContainer);
674
-
675
- const useForgotPassword = () => {
676
- const dispatch = useDispatch();
677
- const select = useSelector;
678
- return {
679
- isLoading: select(selectPasswordResetRequestSending),
680
- isSuccess: select(selectPasswordResetRequestSent),
681
- error: select(selectPasswordResetRequestError),
682
- requestPasswordReset: userEmailObject => dispatch(requestPasswordReset(userEmailObject)),
683
- setNewPassword: {
684
- queryString: select(selectCurrentSearch),
685
- isLoading: select(selectResetPasswordSending),
686
- isSuccess: select(selectResetPasswordSent),
687
- error: select(selectResetPasswordError),
688
- submit: resetPasswordObject => dispatch(resetPassword(resetPasswordObject))
689
- }
690
- };
691
- };
692
-
693
- const ForgotPasswordContainer = ({
694
- children,
695
- ...props
696
- }) => {
697
- const userProps = useForgotPassword();
698
- return children(userProps);
699
- };
700
- ForgotPasswordContainer.propTypes = {};
701
- var ForgotPassword_container = toJS(ForgotPasswordContainer);
702
-
703
- const useChangePassword = () => {
704
- const dispatch = useDispatch();
705
- const select = useSelector;
706
- return {
707
- isLoading: select(selectChangePasswordSending),
708
- isSuccess: select(selectChangePasswordSent),
709
- userId: select(selectUserGuid),
710
- isLoggedIn: select(selectUserIsAuthenticated),
711
- error: select(selectChangePasswordError),
712
- changePassword: (userId, currentPassword, newPassword) => dispatch(changePassword(userId, currentPassword, newPassword))
713
- };
714
- };
715
-
716
- const ChangePasswordContainer = ({
717
- children,
718
- ...props
719
- }) => {
720
- const userProps = useChangePassword();
721
- return children(userProps);
722
- };
723
- ChangePasswordContainer.propTypes = {};
724
- var ChangePassword_container = toJS(ChangePasswordContainer);
725
-
726
- export { ChangePassword_container as C, ForgotPassword_container as F, LoginHelper as L, Registration_container as R, loginUser as a, logoutUser as b, actions as c, Login_container as d, useRegistration as e, findContentTypeMapping as f, getManagementApiClient as g, handleRequiresLoginSaga as h, useForgotPassword as i, useChangePassword as j, refreshSecurityToken as k, loginSagas as l, registerUser as r, useLogin as u };
727
- //# sourceMappingURL=ChangePassword.container-54b4011d.js.map
574
+ export { LoginHelper as L, findContentTypeMapping as f, getManagementApiClient as g, handleRequiresLoginSaga as h, loginSagas as l, refreshSecurityToken as r };
575
+ //# sourceMappingURL=login-71ff3fcb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-71ff3fcb.js","sources":["../src/routing/util/find-contenttype-mapping.ts","../src/user/transformations/mapClientCredentials.js","../src/user/util/ContensisManagementApi.js","../src/user/util/CookieHelper.class.ts","../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 const { Client } = await import('contensis-management-api');\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 JSCookie from 'js-cookie';\n\nconst COOKIE_VALID_DAYS = 1; // 0 = Session cookie\n\n// Override the default js-cookie conversion / encoding\n// methods so the written values work with Contensis sites\nconst Cookies = JSCookie.withConverter({\n read: value => decodeURIComponent(value),\n write: value => encodeURIComponent(value),\n});\n\nexport class CookieHelper {\n static GetCookie(name) {\n const cookie = Cookies.get(name);\n if (typeof cookie === 'undefined') {\n return null;\n }\n return cookie;\n }\n\n static SetCookie(name, value, maxAgeDays = COOKIE_VALID_DAYS) {\n if (maxAgeDays === 0) Cookies.set(name, value);\n else Cookies.set(name, value, { expires: maxAgeDays });\n }\n\n static DeleteCookie(name) {\n Cookies.remove(name);\n }\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 { getManagementApiClient } from './ContensisManagementApi';\nimport { to } from 'await-to-js';\n\nimport { CookieHelper } from './CookieHelper.class';\n\nimport mapClientCredentials from '../transformations/mapClientCredentials';\nimport { createUserManager, userManagerConfig } from './OidcUserManager';\n\nconst LOGIN_COOKIE = 'ContensisCMSUserName';\nconst REFRESH_TOKEN_COOKIE = 'RefreshToken';\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 static SetLoginCookies({ contensisClassicToken, refreshToken }) {\n console.info(\n 'SetLoginCookies:',\n LOGIN_COOKIE,\n contensisClassicToken,\n REFRESH_TOKEN_COOKIE,\n refreshToken\n );\n if (contensisClassicToken)\n CookieHelper.SetCookie(LOGIN_COOKIE, contensisClassicToken);\n if (refreshToken)\n CookieHelper.SetCookie(REFRESH_TOKEN_COOKIE, refreshToken);\n }\n\n static GetCachedCredentials() {\n return {\n bearerToken: null,\n bearerTokenExpiryDate: null,\n refreshToken: CookieHelper.GetCookie(REFRESH_TOKEN_COOKIE),\n refreshTokenExpiryDate: null,\n contensisClassicToken: CookieHelper.GetCookie(LOGIN_COOKIE),\n };\n }\n\n static ClearCachedCredentials() {\n CookieHelper.DeleteCookie(LOGIN_COOKIE);\n CookieHelper.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 static 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 LoginHelper.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 LoginHelper.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 LoginHelper.ClearCachedCredentials();\n } else {\n // Ensure we get latest refreshToken and contensisClassicToken from the latest client\n const latestCredentials = mapClientCredentials(client);\n LoginHelper.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 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 LogoutUser(redirectPath) {\n LoginHelper.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 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 (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 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 entry,\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 // If routeRequiresLogin do a blocking call that returns userLoggedIn\n userLoggedIn = yield call(validateUserSaga, { securityToken });\n }\n // otherwise do a non blocking put to handle validation in the background\n else yield put({ type: VALIDATE_USER, 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\nfunction* validateUserSaga({ securityToken }) {\n // Check for refreshToken in cookies\n let clientCredentials = LoginHelper.GetCachedCredentials();\n\n if (securityToken || clientCredentials.refreshToken) {\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 const [error, refreshToken] =\n yield LoginHelper.GetCredentialsForSecurityToken(securityToken);\n if (refreshToken) {\n // Set cookies and reload values\n LoginHelper.SetLoginCookies({\n contensisClassicToken: securityToken,\n refreshToken,\n });\n clientCredentials = LoginHelper.GetCachedCredentials();\n }\n\n // Log the user in if a refreshToken is found\n if (clientCredentials.refreshToken)\n yield call(loginUserSaga, { clientCredentials });\n else if (error)\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 // Tell any callers have we successfully logged in?\n return yield select(selectUserIsAuthenticated);\n}\n\nfunction* loginUserSaga(action = {}) {\n const { username, password, clientCredentials } = action;\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 LoginHelper.LoginUser({\n username,\n password,\n clientCredentials,\n });\n\n yield put({\n type: SET_AUTHENTICATION_STATE,\n authenticationState,\n user,\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 }) {\n yield put({\n type: SET_AUTHENTICATION_STATE,\n user: null,\n });\n yield LoginHelper.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","client","create","COOKIE_VALID_DAYS","Cookies","JSCookie","withConverter","read","value","decodeURIComponent","write","encodeURIComponent","CookieHelper","GetCookie","name","cookie","get","SetCookie","maxAgeDays","set","expires","DeleteCookie","remove","context","window","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","LOGIN_COOKIE","REFRESH_TOKEN_COOKIE","LoginHelper","SetLoginCookies","info","GetCachedCredentials","ClearCachedCredentials","localStorage","keys","i","length","key","startsWith","push","forEach","removeItem","LoginUser","credentials","authenticationState","isAuthenticated","isAuthenticationError","isError","transientClient","user","loginError","clientBearerToken","to","ensureBearerToken","errorMessage","message","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","ok","parseError","json","LogonResult","ApplicationData","data","item","Key","Value","undefined","status","statusText","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","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","isLoading","removeHostnamePart","path","relativePath","split","splice","join","isLoggedIn","ReturnURL","assetRedirectPath","setRoute","refreshSecurityToken","selectClientCredentials","Object","authenticate"],"mappings":"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"}
package/esm/redux.js CHANGED
@@ -1,9 +1,9 @@
1
- import { n as navigation$2, v as version$1, G as GET_NODE_TREE, e as version$3 } from './version-1ef42ad1.js';
2
- export { r as store } from './version-1ef42ad1.js';
3
- import { F as routing$1, E as action, G as routing$2, H as routing$3 } from './selectors-5061d7c8.js';
4
- export { E as action, g as getIn, I as getJS } from './selectors-5061d7c8.js';
5
- import { v as version$2, n as navigation$3 } from './version-7550d14d.js';
6
- export { c as convertSagaArray, b as injectReducer, i as injectRedux, d as injectSaga, u as useInjectRedux } from './version-7550d14d.js';
1
+ import { n as navigation$2, v as version$1, G as GET_NODE_TREE, e as version$3 } from './version-ef107106.js';
2
+ export { r as store } from './version-ef107106.js';
3
+ import { E as routing$1, D as action, F as routing$2, G as routing$3 } from './selectors-74de49a3.js';
4
+ export { D as action, g as getIn, H as getJS } from './selectors-74de49a3.js';
5
+ import { v as version$2, n as navigation$3 } from './version-b15807c5.js';
6
+ export { c as convertSagaArray, b as injectReducer, i as injectRedux, d as injectSaga, u as useInjectRedux } from './version-b15807c5.js';
7
7
  import 'redux';
8
8
  import 'redux-thunk';
9
9
  import 'redux-saga';
package/esm/routing.js CHANGED
@@ -1,14 +1,12 @@
1
- export { G as actions, H as selectors, F as types } from './selectors-5061d7c8.js';
2
- export { R as RouteLoader } from './RouteLoader-3e77f6a4.js';
1
+ export { F as actions, G as selectors, E as types } from './selectors-74de49a3.js';
2
+ export { R as RouteLoader } from './RouteLoader-6eac364e.js';
3
3
  import 'jsonpath-mapper';
4
4
  import 'query-string';
5
5
  import 'react';
6
- import 'react-cookie';
7
6
  import 'react-redux';
8
7
  import 'react-hot-loader';
9
8
  import 'react-router-dom';
10
9
  import 'react-router-config';
11
10
  import 'reselect';
12
- import './ToJs-e533a70a.js';
13
- import './CookieHelper.class-4d6ee27b.js';
11
+ import './ToJs-9b30636a.js';
14
12
  //# sourceMappingURL=routing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"routing.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
1
+ {"version":3,"file":"routing.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}