Hiding tabs
The following CSS property hides the element to which it is applied:
display:none;
We are therefore going to apply the display: none
style to all the elements we want to hide :
.AdminPlace//tools//memory,
.proxiesTab,
.usersTab,
.ldapsTab,
.oauthTab,
.stylesheetsTab,
.xmlsTab,
.pluginsTab,
.core,
.serversTab{display: none!important;}
The idea is to add style to the opening of FlowerDocs. To do this, we will add the canAttach
option to the page:
function hideAdminMenus(styleContent){
const hideAdminMenusStyle = document.createElement('style');
hideAdminMenusStyle.textContent = styleContent;
document.head.append(hideAdminMenusStyle);
}
Depending on profile
We need to know the profile(s) of the current user to know which tabs will be visible to them. To do this, we are going to use the FlowerDocs JS API:
var userAPI = JSAPI.get().getUserAPI();
var profiles = userAPI.getProfiles();
Finally, we can hide menus for users with the MANAGER
profile:
function hideAdminMenus(styleContent){
const hideAdminMenusStyle = document.createElement('style');
hideAdminMenusStyle.textContent = styleContent;
document.head.append(hideAdminMenusStyle);
}
var hiddenMenus = '.AdminPlace\\/tools\\/memory,'
+'.proxiesTab,'
+'.usersTab,'
+'.ldapsTab,'
+'.oauthTab,'
+'.stylesheetsTab,'
+'.xmlsTab,'
+'.pluginsTab,'
+'.core,'
+'.serversTab{display: none!important;}';
var userAPI = JSAPI.get().getUserAPI();
var profiles = userAPI.getProfiles();
if(profiles.includes('MANAGER')){
hideAdminMenus(hiddenMenus);
}