Skip to content

Commit 65eecb9

Browse files
authored
Merge pull request #997 from karelhala/fix-permissions-gate
Fix permissions gate by changing it to object
2 parents e35d634 + 402f05d commit 65eecb9

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

src/js/rbac/fetchPermissions.js

+12-13
Original file line numberDiff line numberDiff line change
@@ -22,29 +22,28 @@ const fetchPermissions = (userToken, app = '') => {
2222
};
2323

2424
export const createFetchPermissionsWatcher = (chromeInstance) => {
25-
let currentCall = undefined;
25+
let currentCall = {};
2626
return async (userToken, app = '', bypassCache = false) => {
2727
if (insights.chrome.getBundle() === 'openshift') {
2828
return Promise.resolve([]);
2929
}
3030
if (bypassCache) {
31-
return fetchPermissions(userToken, app).then(data => {
32-
chromeInstance.cache.setItem('permissions', undefined);
33-
return data;
34-
});
31+
const data = await fetchPermissions(userToken, app);
32+
chromeInstance.cache.setItem('permissions', undefined);
33+
return data;
3534
}
3635
let permissions;
3736
permissions = await chromeInstance.cache.getItem('permissions');
38-
if (permissions) {
39-
return permissions;
37+
if (permissions?.[app]) {
38+
return permissions?.[app];
4039
}
41-
if (typeof currentCall === 'undefined') {
42-
currentCall = fetchPermissions(userToken, app).then((data) => {
43-
currentCall = undefined;
44-
chromeInstance.cache.setItem('permissions', data);
45-
return data;
40+
if (typeof currentCall?.[app] === 'undefined') {
41+
currentCall[app] = await fetchPermissions(userToken, app);
42+
chromeInstance.cache.setItem('permissions', {
43+
...permissions || {},
44+
[app]: currentCall[app]
4645
});
4746
}
48-
return currentCall;
47+
return currentCall?.[app];
4948
};
5049
};

0 commit comments

Comments
 (0)