@osimatic/helpers-js 1.0.98 → 1.0.100

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/CHANGELOG CHANGED
@@ -52,3 +52,8 @@ DataTable.displayErrorFromXhr -> DataTable.displayError
52
52
 
53
53
  1.0.96
54
54
  var intlTelInputUtilsPath = 'xxx'; -> TelephoneNumber.setIntlTelInputUtilsPath('xxx');
55
+
56
+ 1.0.99
57
+ JwtSession.isSimulationConnexion() -> JwtSession.simulateLogin() (fonctionnement différent)
58
+ JwtSession.cancelSimulationConnexion() -> JwtSession.cancelSimulatedLogin() (fonctionnement différent)
59
+ HTTPRequest -> HTTPClient
package/http_client.js CHANGED
@@ -332,13 +332,9 @@ class HTTPClient {
332
332
 
333
333
  HTTPClient.request('POST', HTTPClient.refreshTokenUrl, payload,
334
334
  (data) => {
335
- JwtSession.setToken(data['token']);
336
- JwtSession.setRefreshToken(data['refresh_token']);
337
-
335
+ JwtSession.updateToken(data['token'], data['refresh_token']);
338
336
  HTTPClient.setAuthorizationToken(JwtSession.getToken());
339
-
340
337
  onRefreshTokenComplete();
341
-
342
338
  },
343
339
  () => {
344
340
  JwtSession.logout();
package/jwt.js CHANGED
@@ -9,15 +9,6 @@ class JwtToken {
9
9
  return JSON.parse(jsonPayload);
10
10
  }
11
11
 
12
- static hasRole(token, role) {
13
- if (token == null) {
14
- return false;
15
- }
16
-
17
- let payload = JwtToken.parseJwt(token);
18
- return typeof payload['roles'] != 'undefined' && payload['roles'].indexOf(role) !== -1;
19
- }
20
-
21
12
  static getData(token, key) {
22
13
  if (token == null) {
23
14
  return null;
@@ -29,52 +20,81 @@ class JwtToken {
29
20
  }
30
21
  return null;
31
22
  }
32
- }
33
23
 
34
- class JwtSession {
35
- static denyAccessUnlessGranted(roles) {
36
- let hasRole = false;
37
-
38
- roles.forEach(role => {
39
- if (JwtSession.isGranted(role)) {
40
- hasRole = true;
41
- }
42
- });
24
+ static hasRole(token, role) {
25
+ if (token == null) {
26
+ return false;
27
+ }
43
28
 
44
- return hasRole;
29
+ let payload = JwtToken.parseJwt(token);
30
+ return typeof payload['roles'] != 'undefined' && payload['roles'].indexOf(role) !== -1;
45
31
  }
32
+ }
46
33
 
47
- static setToken(token) {
48
- localStorage.setItem('access_token', token);
34
+ class JwtSession {
35
+ static setOnNewTokenCallback(callback) {
36
+ JwtSession.onNewTokenCallback = callback;
37
+ }
38
+ static setOnLoginCallback(callback) {
39
+ JwtSession.onLoginCallback = callback;
40
+ }
41
+ static setOnLogoutCallback(callback) {
42
+ JwtSession.onLogoutCallback = callback;
49
43
  }
50
44
 
51
45
  static getToken() {
52
46
  return localStorage.getItem('access_token');
53
47
  }
54
-
55
- static setRefreshToken(token) {
56
- localStorage.setItem('refresh_token', token);
48
+ static setToken(token) {
49
+ localStorage.setItem('access_token', token);
57
50
  }
58
51
 
59
52
  static getRefreshToken() {
60
53
  return localStorage.getItem('refresh_token');
61
54
  }
55
+ static setRefreshToken(token) {
56
+ localStorage.setItem('refresh_token', token);
57
+ }
58
+
59
+ static login(data) {
60
+ console.log('JwtSession.login()');
61
+ JwtSession.setToken(data['access_token'] || data['token']);
62
+ JwtSession.setRefreshToken(data['refresh_token']);
62
63
 
63
- static isSimulationConnexion() {
64
- return localStorage.getItem('admin_refresh_token') != null && localStorage.getItem('admin_access_token') != null;
64
+ localStorage.removeItem('real_users');
65
+
66
+ if (typeof JwtSession.onLoginCallback == 'function') {
67
+ JwtSession.onLoginCallback();
68
+ }
65
69
  }
66
70
 
67
- static cancelSimulationConnexion() {
68
- localStorage.setItem('refresh_token', localStorage.getItem('admin_refresh_token'));
69
- localStorage.setItem('access_token', localStorage.getItem('admin_access_token'));
71
+ static updateToken(accessToken, refreshToken) {
72
+ console.log('JwtSession.updateToken()');
73
+ JwtSession.setToken(accessToken);
70
74
 
71
- localStorage.removeItem('admin_refresh_token');
72
- localStorage.removeItem('admin_access_token');
75
+ if (typeof refreshToken != 'undefined' && null != refreshToken) {
76
+ JwtSession.setRefreshToken(refreshToken);
77
+ }
78
+
79
+ if (typeof JwtSession.onNewTokenCallback == 'function') {
80
+ JwtSession.onNewTokenCallback();
81
+ }
73
82
  }
74
83
 
75
- static logout() {
84
+ static logout(redirectUrl) {
85
+ console.log('JwtSession.logout()');
76
86
  localStorage.removeItem('access_token');
77
87
  localStorage.removeItem('refresh_token');
88
+
89
+ localStorage.removeItem('real_users');
90
+
91
+ if (typeof JwtSession.onLogoutCallback == 'function') {
92
+ JwtSession.onLogoutCallback();
93
+ }
94
+
95
+ if (typeof redirectUrl != 'undefined' && null != redirectUrl) {
96
+ window.location.href = redirectUrl;
97
+ }
78
98
  }
79
99
 
80
100
  static getData(key) {
@@ -88,14 +108,12 @@ class JwtSession {
88
108
  static isGranted(role) {
89
109
  return JwtToken.hasRole(JwtSession.getToken(), role);
90
110
  }
91
- }
92
111
 
93
- class ApiTokenSession {
94
112
  static denyAccessUnlessGranted(roles) {
95
113
  let hasRole = false;
96
114
 
97
115
  roles.forEach(role => {
98
- if (ApiTokenSession.isGranted(role)) {
116
+ if (JwtSession.isGranted(role)) {
99
117
  hasRole = true;
100
118
  }
101
119
  });
@@ -103,6 +121,57 @@ class ApiTokenSession {
103
121
  return hasRole;
104
122
  }
105
123
 
124
+
125
+ static getRealLoggedUsers() {
126
+ let realUsers = [];
127
+ if (localStorage.getItem('real_users') != null) {
128
+ realUsers = JSON.parse(localStorage.getItem('real_users'));
129
+ }
130
+ return realUsers;
131
+ }
132
+
133
+ static simulateLogin(loginData, onSuccess) {
134
+ console.log('JwtSession.simulateLogin');
135
+
136
+ // on sauvegarde les tokens de l'utilisateur réellement connecté
137
+ let realUsers = JwtSession.getRealLoggedUsers();
138
+ realUsers.push({
139
+ access_token: JwtSession.getToken(),
140
+ refresh_token: JwtSession.getRefreshToken(),
141
+ });
142
+ localStorage.setItem('real_users', JSON.stringify(realUsers));
143
+
144
+ // on enregistre la session de l'utilisateur simulé
145
+ JwtSession.setToken(loginData['access_token'] || loginData['token']);
146
+ JwtSession.setRefreshToken(loginData['refresh_token']);
147
+
148
+ if (typeof onSuccess == 'function') {
149
+ onSuccess();
150
+ }
151
+ }
152
+
153
+ static cancelSimulatedLogin(onSuccess) {
154
+ console.log('JwtSession.cancelSimulatedLogin');
155
+
156
+ // on récupère les tokens de l'utilisateur réellement connecté
157
+ let realUsers = JwtSession.getRealLoggedUsers();
158
+ let loginData = realUsers.pop();
159
+
160
+ if (typeof loginData != 'undefined' && null != loginData) {
161
+ localStorage.setItem('real_users', JSON.stringify(realUsers));
162
+
163
+ JwtSession.setToken(loginData['access_token'] || loginData['token']);
164
+ JwtSession.setRefreshToken(loginData['refresh_token']);
165
+
166
+ if (typeof onSuccess == 'function') {
167
+ onSuccess();
168
+ }
169
+ }
170
+ }
171
+
172
+ }
173
+
174
+ class ApiTokenSession {
106
175
  static getToken() {
107
176
  return localStorage.getItem('api_token');
108
177
  }
@@ -158,6 +227,18 @@ class ApiTokenSession {
158
227
 
159
228
  return roles.indexOf(role) !== -1;
160
229
  }
230
+
231
+ static denyAccessUnlessGranted(roles) {
232
+ let hasRole = false;
233
+
234
+ roles.forEach(role => {
235
+ if (ApiTokenSession.isGranted(role)) {
236
+ hasRole = true;
237
+ }
238
+ });
239
+
240
+ return hasRole;
241
+ }
161
242
  }
162
243
 
163
244
  module.exports = { JwtToken, JwtSession, ApiTokenSession };
package/network.js CHANGED
@@ -1,3 +1,4 @@
1
+ /** @deprecated */
1
2
  class HTTPRequest {
2
3
  static init() {
3
4
  require('whatwg-fetch'); //fetch polyfill loaded in window.fetch
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osimatic/helpers-js",
3
- "version": "1.0.98",
3
+ "version": "1.0.100",
4
4
  "main": "main.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"