@osimatic/helpers-js 1.0.99 → 1.0.101

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 (3) hide show
  1. package/CHANGELOG +2 -2
  2. package/jwt.js +67 -3
  3. package/package.json +1 -1
package/CHANGELOG CHANGED
@@ -54,6 +54,6 @@ DataTable.displayErrorFromXhr -> DataTable.displayError
54
54
  var intlTelInputUtilsPath = 'xxx'; -> TelephoneNumber.setIntlTelInputUtilsPath('xxx');
55
55
 
56
56
  1.0.99
57
- JwtSession.isSimulationConnexion() -> non remplacé
58
- JwtSession.cancelSimulationConnexion() -> non remplacé
57
+ JwtSession.isSimulationConnexion() -> JwtSession.simulateLogin() (fonctionnement différent)
58
+ JwtSession.cancelSimulationConnexion() -> JwtSession.cancelSimulatedLogin() (fonctionnement différent)
59
59
  HTTPRequest -> HTTPClient
package/jwt.js CHANGED
@@ -35,6 +35,9 @@ class JwtSession {
35
35
  static setOnNewTokenCallback(callback) {
36
36
  JwtSession.onNewTokenCallback = callback;
37
37
  }
38
+ static setOnLoginCallback(callback) {
39
+ JwtSession.onLoginCallback = callback;
40
+ }
38
41
  static setOnLogoutCallback(callback) {
39
42
  JwtSession.onLogoutCallback = callback;
40
43
  }
@@ -53,10 +56,20 @@ class JwtSession {
53
56
  localStorage.setItem('refresh_token', token);
54
57
  }
55
58
 
56
- static login(accessToken, refreshToken) {
59
+ static login(data, redirectUrl) {
57
60
  console.log('JwtSession.login()');
58
- JwtSession.setToken(accessToken);
59
- JwtSession.setRefreshToken(refreshToken);
61
+ JwtSession.setToken(data['access_token'] || data['token']);
62
+ JwtSession.setRefreshToken(data['refresh_token']);
63
+
64
+ localStorage.removeItem('real_users');
65
+
66
+ if (typeof JwtSession.onLoginCallback == 'function') {
67
+ JwtSession.onLoginCallback();
68
+ }
69
+
70
+ if (typeof redirectUrl != 'undefined' && null != redirectUrl) {
71
+ window.location.href = redirectUrl;
72
+ }
60
73
  }
61
74
 
62
75
  static updateToken(accessToken, refreshToken) {
@@ -77,6 +90,8 @@ class JwtSession {
77
90
  localStorage.removeItem('access_token');
78
91
  localStorage.removeItem('refresh_token');
79
92
 
93
+ localStorage.removeItem('real_users');
94
+
80
95
  if (typeof JwtSession.onLogoutCallback == 'function') {
81
96
  JwtSession.onLogoutCallback();
82
97
  }
@@ -109,6 +124,55 @@ class JwtSession {
109
124
 
110
125
  return hasRole;
111
126
  }
127
+
128
+
129
+ static getRealLoggedUsers() {
130
+ let realUsers = [];
131
+ if (localStorage.getItem('real_users') != null) {
132
+ realUsers = JSON.parse(localStorage.getItem('real_users'));
133
+ }
134
+ return realUsers;
135
+ }
136
+
137
+ static simulateLogin(loginData, onSuccess) {
138
+ console.log('JwtSession.simulateLogin');
139
+
140
+ // on sauvegarde les tokens de l'utilisateur réellement connecté
141
+ let realUsers = JwtSession.getRealLoggedUsers();
142
+ realUsers.push({
143
+ access_token: JwtSession.getToken(),
144
+ refresh_token: JwtSession.getRefreshToken(),
145
+ });
146
+ localStorage.setItem('real_users', JSON.stringify(realUsers));
147
+
148
+ // on enregistre la session de l'utilisateur simulé
149
+ JwtSession.setToken(loginData['access_token'] || loginData['token']);
150
+ JwtSession.setRefreshToken(loginData['refresh_token']);
151
+
152
+ if (typeof onSuccess == 'function') {
153
+ onSuccess();
154
+ }
155
+ }
156
+
157
+ static cancelSimulatedLogin(onSuccess) {
158
+ console.log('JwtSession.cancelSimulatedLogin');
159
+
160
+ // on récupère les tokens de l'utilisateur réellement connecté
161
+ let realUsers = JwtSession.getRealLoggedUsers();
162
+ let loginData = realUsers.pop();
163
+
164
+ if (typeof loginData != 'undefined' && null != loginData) {
165
+ localStorage.setItem('real_users', JSON.stringify(realUsers));
166
+
167
+ JwtSession.setToken(loginData['access_token'] || loginData['token']);
168
+ JwtSession.setRefreshToken(loginData['refresh_token']);
169
+
170
+ if (typeof onSuccess == 'function') {
171
+ onSuccess();
172
+ }
173
+ }
174
+ }
175
+
112
176
  }
113
177
 
114
178
  class ApiTokenSession {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osimatic/helpers-js",
3
- "version": "1.0.99",
3
+ "version": "1.0.101",
4
4
  "main": "main.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"