@osimatic/helpers-js 1.0.99 → 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.
Files changed (3) hide show
  1. package/CHANGELOG +2 -2
  2. package/jwt.js +63 -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,16 @@ class JwtSession {
53
56
  localStorage.setItem('refresh_token', token);
54
57
  }
55
58
 
56
- static login(accessToken, refreshToken) {
59
+ static login(data) {
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
+ }
60
69
  }
61
70
 
62
71
  static updateToken(accessToken, refreshToken) {
@@ -77,6 +86,8 @@ class JwtSession {
77
86
  localStorage.removeItem('access_token');
78
87
  localStorage.removeItem('refresh_token');
79
88
 
89
+ localStorage.removeItem('real_users');
90
+
80
91
  if (typeof JwtSession.onLogoutCallback == 'function') {
81
92
  JwtSession.onLogoutCallback();
82
93
  }
@@ -109,6 +120,55 @@ class JwtSession {
109
120
 
110
121
  return hasRole;
111
122
  }
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
+
112
172
  }
113
173
 
114
174
  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.100",
4
4
  "main": "main.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"