@osimatic/helpers-js 1.1.77 → 1.1.78
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 +76 -76
- package/array.js +93 -90
- package/bank.js +20 -20
- package/contact_details.js +194 -194
- package/count_down.js +102 -102
- package/data_table.js +416 -416
- package/date_time.js +592 -592
- package/details_sub_array.js +123 -123
- package/draw.js +52 -52
- package/duration.js +198 -198
- package/event_bus.js +38 -38
- package/file.js +146 -146
- package/flash_message.js +35 -35
- package/form_date.js +610 -610
- package/form_helper.js +410 -410
- package/google_charts.js +347 -347
- package/google_maps.js +169 -169
- package/google_recaptcha.js +87 -87
- package/http_client.js +469 -469
- package/import_from_csv.js +273 -273
- package/index.js +55 -55
- package/jwt.js +288 -288
- package/list_box.js +112 -112
- package/location.js +431 -431
- package/media.js +218 -218
- package/multiple_action_in_table.js +336 -336
- package/network.js +756 -756
- package/number.js +99 -99
- package/open_street_map.js +142 -142
- package/package.json +15 -15
- package/paging.js +278 -278
- package/php.min.js +5 -5
- package/revolut.js +22 -22
- package/select_all.js +121 -121
- package/shopping_cart.js +31 -31
- package/social_network.js +109 -109
- package/sortable_list.js +37 -37
- package/string.js +162 -162
- package/util.js +16 -16
- package/visitor.js +77 -77
- package/web_rtc.js +114 -114
- package/web_socket.js +97 -97
package/jwt.js
CHANGED
|
@@ -1,289 +1,289 @@
|
|
|
1
|
-
class JwtToken {
|
|
2
|
-
static parseJwt (token) {
|
|
3
|
-
let base64Url = token.split('.')[1];
|
|
4
|
-
let base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
|
|
5
|
-
let jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {
|
|
6
|
-
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
|
7
|
-
}).join(''));
|
|
8
|
-
|
|
9
|
-
return JSON.parse(jsonPayload);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
static getData(token, key) {
|
|
13
|
-
if (token == null) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
let payload = JwtToken.parseJwt(token);
|
|
18
|
-
if (typeof payload[key] != 'undefined') {
|
|
19
|
-
return payload[key];
|
|
20
|
-
}
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
static hasRole(token, role) {
|
|
25
|
-
if (token == null) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
let payload = JwtToken.parseJwt(token);
|
|
30
|
-
return typeof payload['roles'] != 'undefined' && payload['roles'].indexOf(role) !== -1;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
class JwtSession {
|
|
35
|
-
static setOnLoginCallback(callback) {
|
|
36
|
-
JwtSession.onLoginCallback = callback;
|
|
37
|
-
}
|
|
38
|
-
static setOnLogoutCallback(callback) {
|
|
39
|
-
JwtSession.onLogoutCallback = callback;
|
|
40
|
-
}
|
|
41
|
-
static setOnNewTokenCallback(callback) {
|
|
42
|
-
JwtSession.onNewTokenCallback = callback;
|
|
43
|
-
}
|
|
44
|
-
static setOnSessionExpireCallback(callback) {
|
|
45
|
-
JwtSession.onSessionExpireCallback = callback;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
static getToken() {
|
|
49
|
-
return localStorage.getItem('access_token');
|
|
50
|
-
}
|
|
51
|
-
static setToken(token) {
|
|
52
|
-
localStorage.setItem('access_token', token);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
static getRefreshToken() {
|
|
56
|
-
return localStorage.getItem('refresh_token');
|
|
57
|
-
}
|
|
58
|
-
static setRefreshToken(token) {
|
|
59
|
-
localStorage.setItem('refresh_token', token);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
static login(data, redirectUrl, onComplete) {
|
|
63
|
-
console.log('JwtSession.login()');
|
|
64
|
-
JwtSession.setToken(data['access_token'] || data['token']);
|
|
65
|
-
JwtSession.setRefreshToken(data['refresh_token']);
|
|
66
|
-
|
|
67
|
-
localStorage.removeItem('real_users');
|
|
68
|
-
|
|
69
|
-
if (typeof JwtSession.onLoginCallback == 'function') {
|
|
70
|
-
JwtSession.onLoginCallback();
|
|
71
|
-
}
|
|
72
|
-
if (typeof onComplete == 'function') {
|
|
73
|
-
onComplete();
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
if (typeof redirectUrl != 'undefined' && null != redirectUrl) {
|
|
77
|
-
window.location.href = redirectUrl;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
static updateToken(accessToken, refreshToken, onComplete) {
|
|
82
|
-
console.log('JwtSession.updateToken()');
|
|
83
|
-
JwtSession.setToken(accessToken);
|
|
84
|
-
|
|
85
|
-
if (typeof refreshToken != 'undefined' && null != refreshToken) {
|
|
86
|
-
JwtSession.setRefreshToken(refreshToken);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
if (typeof JwtSession.onNewTokenCallback == 'function') {
|
|
90
|
-
JwtSession.onNewTokenCallback();
|
|
91
|
-
}
|
|
92
|
-
if (typeof onComplete == 'function') {
|
|
93
|
-
onComplete();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
static logout(redirectUrl, onComplete) {
|
|
98
|
-
console.log('JwtSession.logout()');
|
|
99
|
-
localStorage.removeItem('access_token');
|
|
100
|
-
localStorage.removeItem('refresh_token');
|
|
101
|
-
|
|
102
|
-
localStorage.removeItem('real_users');
|
|
103
|
-
|
|
104
|
-
if (typeof JwtSession.onLogoutCallback == 'function') {
|
|
105
|
-
JwtSession.onLogoutCallback();
|
|
106
|
-
}
|
|
107
|
-
if (typeof onComplete == 'function') {
|
|
108
|
-
onComplete();
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
if (typeof redirectUrl != 'undefined' && null != redirectUrl) {
|
|
112
|
-
window.location.href = redirectUrl;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
static expireSession(redirectUrl, onComplete) {
|
|
117
|
-
console.log('JwtSession.expireSession()');
|
|
118
|
-
localStorage.removeItem('access_token');
|
|
119
|
-
localStorage.removeItem('refresh_token');
|
|
120
|
-
|
|
121
|
-
localStorage.removeItem('real_users');
|
|
122
|
-
|
|
123
|
-
if (typeof JwtSession.onSessionExpireCallback == 'function') {
|
|
124
|
-
JwtSession.onSessionExpireCallback();
|
|
125
|
-
}
|
|
126
|
-
if (typeof onComplete == 'function') {
|
|
127
|
-
onComplete();
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
if (typeof redirectUrl != 'undefined' && null != redirectUrl) {
|
|
131
|
-
window.location.href = redirectUrl;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
static getData(key) {
|
|
136
|
-
return JwtToken.getData(JwtSession.getToken(), key);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
static isAnonymous() {
|
|
140
|
-
return localStorage.getItem('access_token') == null;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
static isGranted(role) {
|
|
144
|
-
return JwtToken.hasRole(JwtSession.getToken(), role);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
static denyAccessUnlessGranted(roles) {
|
|
148
|
-
let hasRole = false;
|
|
149
|
-
|
|
150
|
-
roles.forEach(role => {
|
|
151
|
-
if (JwtSession.isGranted(role)) {
|
|
152
|
-
hasRole = true;
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
return hasRole;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
static getRealLoggedUsers() {
|
|
161
|
-
let realUsers = [];
|
|
162
|
-
if (localStorage.getItem('real_users') != null) {
|
|
163
|
-
realUsers = JSON.parse(localStorage.getItem('real_users'));
|
|
164
|
-
}
|
|
165
|
-
return realUsers;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
static simulateLogin(loginData, redirectUrl, onComplete) {
|
|
169
|
-
console.log('JwtSession.simulateLogin');
|
|
170
|
-
|
|
171
|
-
// on sauvegarde les tokens de l'utilisateur réellement connecté
|
|
172
|
-
let realUsers = JwtSession.getRealLoggedUsers();
|
|
173
|
-
realUsers.push({
|
|
174
|
-
access_token: JwtSession.getToken(),
|
|
175
|
-
refresh_token: JwtSession.getRefreshToken(),
|
|
176
|
-
});
|
|
177
|
-
localStorage.setItem('real_users', JSON.stringify(realUsers));
|
|
178
|
-
|
|
179
|
-
// on enregistre la session de l'utilisateur simulé
|
|
180
|
-
JwtSession.setToken(loginData['access_token'] || loginData['token']);
|
|
181
|
-
JwtSession.setRefreshToken(loginData['refresh_token']);
|
|
182
|
-
|
|
183
|
-
if (typeof onComplete == 'function') {
|
|
184
|
-
onComplete();
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
if (typeof redirectUrl != 'undefined' && null != redirectUrl) {
|
|
188
|
-
window.location.href = redirectUrl;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
static cancelSimulatedLogin(redirectUrl, onComplete) {
|
|
193
|
-
console.log('JwtSession.cancelSimulatedLogin');
|
|
194
|
-
|
|
195
|
-
// on récupère les tokens de l'utilisateur réellement connecté
|
|
196
|
-
let realUsers = JwtSession.getRealLoggedUsers();
|
|
197
|
-
let loginData = realUsers.pop();
|
|
198
|
-
|
|
199
|
-
if (typeof loginData == 'undefined' || null == loginData) {
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
localStorage.setItem('real_users', JSON.stringify(realUsers));
|
|
204
|
-
|
|
205
|
-
JwtSession.setToken(loginData['access_token'] || loginData['token']);
|
|
206
|
-
JwtSession.setRefreshToken(loginData['refresh_token']);
|
|
207
|
-
|
|
208
|
-
if (typeof onComplete == 'function') {
|
|
209
|
-
onComplete();
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
if (typeof redirectUrl != 'undefined' && null != redirectUrl) {
|
|
213
|
-
window.location.href = redirectUrl;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
class ApiTokenSession {
|
|
220
|
-
static getToken() {
|
|
221
|
-
return localStorage.getItem('api_token');
|
|
222
|
-
}
|
|
223
|
-
static setToken(token) {
|
|
224
|
-
localStorage.setItem('api_token', token);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
static getTokenData() {
|
|
228
|
-
let tokenData = localStorage.getItem('token_data');
|
|
229
|
-
if (null == tokenData) {
|
|
230
|
-
return null;
|
|
231
|
-
}
|
|
232
|
-
return JSON.parse(tokenData);
|
|
233
|
-
}
|
|
234
|
-
static setTokenData(data) {
|
|
235
|
-
localStorage.setItem('token_data', JSON.stringify(data));
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
static logout() {
|
|
239
|
-
localStorage.removeItem('api_token');
|
|
240
|
-
localStorage.removeItem('token_data');
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
static getData(key) {
|
|
244
|
-
let tokenData = ApiTokenSession.getTokenData();
|
|
245
|
-
if (tokenData == null) {
|
|
246
|
-
return null;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
if (typeof tokenData[key] != 'undefined') {
|
|
250
|
-
return tokenData[key];
|
|
251
|
-
}
|
|
252
|
-
return null;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
static isAnonymous() {
|
|
256
|
-
return ApiTokenSession.getToken() == null;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
static isGranted(role) {
|
|
260
|
-
if (ApiTokenSession.getToken() == null) {
|
|
261
|
-
return false;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
let roles = [];
|
|
265
|
-
if (null !== ApiTokenSession.getData('role')) {
|
|
266
|
-
roles = ApiTokenSession.getData('role');
|
|
267
|
-
}
|
|
268
|
-
if (null !== ApiTokenSession.getData('roles')) {
|
|
269
|
-
roles = ApiTokenSession.getData('roles');
|
|
270
|
-
}
|
|
271
|
-
roles = Array.isArray(roles) ? roles : [roles];
|
|
272
|
-
|
|
273
|
-
return roles.indexOf(role) !== -1;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
static denyAccessUnlessGranted(roles) {
|
|
277
|
-
let hasRole = false;
|
|
278
|
-
|
|
279
|
-
roles.forEach(role => {
|
|
280
|
-
if (ApiTokenSession.isGranted(role)) {
|
|
281
|
-
hasRole = true;
|
|
282
|
-
}
|
|
283
|
-
});
|
|
284
|
-
|
|
285
|
-
return hasRole;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
|
|
1
|
+
class JwtToken {
|
|
2
|
+
static parseJwt (token) {
|
|
3
|
+
let base64Url = token.split('.')[1];
|
|
4
|
+
let base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
|
|
5
|
+
let jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {
|
|
6
|
+
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
|
7
|
+
}).join(''));
|
|
8
|
+
|
|
9
|
+
return JSON.parse(jsonPayload);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
static getData(token, key) {
|
|
13
|
+
if (token == null) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
let payload = JwtToken.parseJwt(token);
|
|
18
|
+
if (typeof payload[key] != 'undefined') {
|
|
19
|
+
return payload[key];
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
static hasRole(token, role) {
|
|
25
|
+
if (token == null) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
let payload = JwtToken.parseJwt(token);
|
|
30
|
+
return typeof payload['roles'] != 'undefined' && payload['roles'].indexOf(role) !== -1;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
class JwtSession {
|
|
35
|
+
static setOnLoginCallback(callback) {
|
|
36
|
+
JwtSession.onLoginCallback = callback;
|
|
37
|
+
}
|
|
38
|
+
static setOnLogoutCallback(callback) {
|
|
39
|
+
JwtSession.onLogoutCallback = callback;
|
|
40
|
+
}
|
|
41
|
+
static setOnNewTokenCallback(callback) {
|
|
42
|
+
JwtSession.onNewTokenCallback = callback;
|
|
43
|
+
}
|
|
44
|
+
static setOnSessionExpireCallback(callback) {
|
|
45
|
+
JwtSession.onSessionExpireCallback = callback;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
static getToken() {
|
|
49
|
+
return localStorage.getItem('access_token');
|
|
50
|
+
}
|
|
51
|
+
static setToken(token) {
|
|
52
|
+
localStorage.setItem('access_token', token);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static getRefreshToken() {
|
|
56
|
+
return localStorage.getItem('refresh_token');
|
|
57
|
+
}
|
|
58
|
+
static setRefreshToken(token) {
|
|
59
|
+
localStorage.setItem('refresh_token', token);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
static login(data, redirectUrl, onComplete) {
|
|
63
|
+
console.log('JwtSession.login()');
|
|
64
|
+
JwtSession.setToken(data['access_token'] || data['token']);
|
|
65
|
+
JwtSession.setRefreshToken(data['refresh_token']);
|
|
66
|
+
|
|
67
|
+
localStorage.removeItem('real_users');
|
|
68
|
+
|
|
69
|
+
if (typeof JwtSession.onLoginCallback == 'function') {
|
|
70
|
+
JwtSession.onLoginCallback();
|
|
71
|
+
}
|
|
72
|
+
if (typeof onComplete == 'function') {
|
|
73
|
+
onComplete();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (typeof redirectUrl != 'undefined' && null != redirectUrl) {
|
|
77
|
+
window.location.href = redirectUrl;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
static updateToken(accessToken, refreshToken, onComplete) {
|
|
82
|
+
console.log('JwtSession.updateToken()');
|
|
83
|
+
JwtSession.setToken(accessToken);
|
|
84
|
+
|
|
85
|
+
if (typeof refreshToken != 'undefined' && null != refreshToken) {
|
|
86
|
+
JwtSession.setRefreshToken(refreshToken);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (typeof JwtSession.onNewTokenCallback == 'function') {
|
|
90
|
+
JwtSession.onNewTokenCallback();
|
|
91
|
+
}
|
|
92
|
+
if (typeof onComplete == 'function') {
|
|
93
|
+
onComplete();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
static logout(redirectUrl, onComplete) {
|
|
98
|
+
console.log('JwtSession.logout()');
|
|
99
|
+
localStorage.removeItem('access_token');
|
|
100
|
+
localStorage.removeItem('refresh_token');
|
|
101
|
+
|
|
102
|
+
localStorage.removeItem('real_users');
|
|
103
|
+
|
|
104
|
+
if (typeof JwtSession.onLogoutCallback == 'function') {
|
|
105
|
+
JwtSession.onLogoutCallback();
|
|
106
|
+
}
|
|
107
|
+
if (typeof onComplete == 'function') {
|
|
108
|
+
onComplete();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (typeof redirectUrl != 'undefined' && null != redirectUrl) {
|
|
112
|
+
window.location.href = redirectUrl;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
static expireSession(redirectUrl, onComplete) {
|
|
117
|
+
console.log('JwtSession.expireSession()');
|
|
118
|
+
localStorage.removeItem('access_token');
|
|
119
|
+
localStorage.removeItem('refresh_token');
|
|
120
|
+
|
|
121
|
+
localStorage.removeItem('real_users');
|
|
122
|
+
|
|
123
|
+
if (typeof JwtSession.onSessionExpireCallback == 'function') {
|
|
124
|
+
JwtSession.onSessionExpireCallback();
|
|
125
|
+
}
|
|
126
|
+
if (typeof onComplete == 'function') {
|
|
127
|
+
onComplete();
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (typeof redirectUrl != 'undefined' && null != redirectUrl) {
|
|
131
|
+
window.location.href = redirectUrl;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
static getData(key) {
|
|
136
|
+
return JwtToken.getData(JwtSession.getToken(), key);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
static isAnonymous() {
|
|
140
|
+
return localStorage.getItem('access_token') == null;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
static isGranted(role) {
|
|
144
|
+
return JwtToken.hasRole(JwtSession.getToken(), role);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
static denyAccessUnlessGranted(roles) {
|
|
148
|
+
let hasRole = false;
|
|
149
|
+
|
|
150
|
+
roles.forEach(role => {
|
|
151
|
+
if (JwtSession.isGranted(role)) {
|
|
152
|
+
hasRole = true;
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
return hasRole;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
static getRealLoggedUsers() {
|
|
161
|
+
let realUsers = [];
|
|
162
|
+
if (localStorage.getItem('real_users') != null) {
|
|
163
|
+
realUsers = JSON.parse(localStorage.getItem('real_users'));
|
|
164
|
+
}
|
|
165
|
+
return realUsers;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
static simulateLogin(loginData, redirectUrl, onComplete) {
|
|
169
|
+
console.log('JwtSession.simulateLogin');
|
|
170
|
+
|
|
171
|
+
// on sauvegarde les tokens de l'utilisateur réellement connecté
|
|
172
|
+
let realUsers = JwtSession.getRealLoggedUsers();
|
|
173
|
+
realUsers.push({
|
|
174
|
+
access_token: JwtSession.getToken(),
|
|
175
|
+
refresh_token: JwtSession.getRefreshToken(),
|
|
176
|
+
});
|
|
177
|
+
localStorage.setItem('real_users', JSON.stringify(realUsers));
|
|
178
|
+
|
|
179
|
+
// on enregistre la session de l'utilisateur simulé
|
|
180
|
+
JwtSession.setToken(loginData['access_token'] || loginData['token']);
|
|
181
|
+
JwtSession.setRefreshToken(loginData['refresh_token']);
|
|
182
|
+
|
|
183
|
+
if (typeof onComplete == 'function') {
|
|
184
|
+
onComplete();
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (typeof redirectUrl != 'undefined' && null != redirectUrl) {
|
|
188
|
+
window.location.href = redirectUrl;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
static cancelSimulatedLogin(redirectUrl, onComplete) {
|
|
193
|
+
console.log('JwtSession.cancelSimulatedLogin');
|
|
194
|
+
|
|
195
|
+
// on récupère les tokens de l'utilisateur réellement connecté
|
|
196
|
+
let realUsers = JwtSession.getRealLoggedUsers();
|
|
197
|
+
let loginData = realUsers.pop();
|
|
198
|
+
|
|
199
|
+
if (typeof loginData == 'undefined' || null == loginData) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
localStorage.setItem('real_users', JSON.stringify(realUsers));
|
|
204
|
+
|
|
205
|
+
JwtSession.setToken(loginData['access_token'] || loginData['token']);
|
|
206
|
+
JwtSession.setRefreshToken(loginData['refresh_token']);
|
|
207
|
+
|
|
208
|
+
if (typeof onComplete == 'function') {
|
|
209
|
+
onComplete();
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
if (typeof redirectUrl != 'undefined' && null != redirectUrl) {
|
|
213
|
+
window.location.href = redirectUrl;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
class ApiTokenSession {
|
|
220
|
+
static getToken() {
|
|
221
|
+
return localStorage.getItem('api_token');
|
|
222
|
+
}
|
|
223
|
+
static setToken(token) {
|
|
224
|
+
localStorage.setItem('api_token', token);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
static getTokenData() {
|
|
228
|
+
let tokenData = localStorage.getItem('token_data');
|
|
229
|
+
if (null == tokenData) {
|
|
230
|
+
return null;
|
|
231
|
+
}
|
|
232
|
+
return JSON.parse(tokenData);
|
|
233
|
+
}
|
|
234
|
+
static setTokenData(data) {
|
|
235
|
+
localStorage.setItem('token_data', JSON.stringify(data));
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
static logout() {
|
|
239
|
+
localStorage.removeItem('api_token');
|
|
240
|
+
localStorage.removeItem('token_data');
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
static getData(key) {
|
|
244
|
+
let tokenData = ApiTokenSession.getTokenData();
|
|
245
|
+
if (tokenData == null) {
|
|
246
|
+
return null;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
if (typeof tokenData[key] != 'undefined') {
|
|
250
|
+
return tokenData[key];
|
|
251
|
+
}
|
|
252
|
+
return null;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
static isAnonymous() {
|
|
256
|
+
return ApiTokenSession.getToken() == null;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
static isGranted(role) {
|
|
260
|
+
if (ApiTokenSession.getToken() == null) {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
let roles = [];
|
|
265
|
+
if (null !== ApiTokenSession.getData('role')) {
|
|
266
|
+
roles = ApiTokenSession.getData('role');
|
|
267
|
+
}
|
|
268
|
+
if (null !== ApiTokenSession.getData('roles')) {
|
|
269
|
+
roles = ApiTokenSession.getData('roles');
|
|
270
|
+
}
|
|
271
|
+
roles = Array.isArray(roles) ? roles : [roles];
|
|
272
|
+
|
|
273
|
+
return roles.indexOf(role) !== -1;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
static denyAccessUnlessGranted(roles) {
|
|
277
|
+
let hasRole = false;
|
|
278
|
+
|
|
279
|
+
roles.forEach(role => {
|
|
280
|
+
if (ApiTokenSession.isGranted(role)) {
|
|
281
|
+
hasRole = true;
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
return hasRole;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
289
|
module.exports = { JwtToken, JwtSession, ApiTokenSession };
|