Implementation

Masquage des onglets

La propriété CSS suivante permet de masquer l’élément auquel elle est appliquée :

	display:none;


Nous allons donc appliquer le style display: none à tous les éléments que nous souhaitons cacher :

	.AdminPlace\\/tools\\/memory,
	.proxiesTab,
	.usersTab,
	.ldapsTab,
	.oauthTab,
	.stylesheetsTab,
	.xmlsTab,
	.pluginsTab,
	.core,
	.serversTab{display: none!important;}


L’idée est d’ajouter le style à l’ouverture de FlowerDocs. Pour cela nous allons ajouter l’élément style à la page :

	function hideAdminMenus(styleContent){
		const hideAdminMenusStyle = document.createElement('style');
		hideAdminMenusStyle.textContent = styleContent;
		document.head.append(style);
	}

En fonction des profils

Nous devons pouvoir connaître le ou les profils de l’utilisateur courant pour connaître quels onglets lui seront visible. Pour cela nous allons utiliser l’API JS FlowerDocs :

	var userAPI = JSAPI.get().getUserAPI();
	var profiles = userAPI.getProfiles(); 


Enfin, nous pouvons cacher les menus pour les utilisateurs au profil MANAGER :

	function hideAdminMenus(styleContent){
		const hideAdminMenusStyle = document.createElement('style');
		hideAdminMenusStyle.textContent = styleContent;
		document.head.append(style);
	}

	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('ADMIN')){return;}
	if(profiles.includes('MANAGER')){
		hideAdminMenus(hiddenMenus);
	}