Hier ein kleines Interceptor Beispiel, wie man das Menü von Embedded Documents für eine Benutzergruppe einschränken kann. In diesem Fall wird das Menü initial bei öffnen von Embedded Documents eingeschränkt (initEditorConfiguration
).
const edMenu = {
initEditorConfiguration: async (instance, config) => {
const that = edMenu;
// Return if user is not in group
const session = await fetch("/osrest/api/session").json();
if(!session.groups.includes("MeineBenutzergruppe")){
return;
}
instance.UI.setHeaderItems(async (toolbar) => {
const toolbarGroups = Object.keys(toolbar.headers);
for(let toolbarGroup of toolbarGroups){
if(toolbarGroup.startsWith("toolbarGroup")){
switch(toolbarGroup){
case "toolbarGroup-Annotate":
let headerA = toolbar.getHeader(toolbarGroup);
let annotateHeaderA = headerA.getHeader(that.toolGroup);
const itemsA = annotateHeaderA.getItems().filter((item) => {
return ["freeTextToolGroupButton", "undoButton", "redoButton"].includes(item.dataElement);
});
annotateHeaderA.update(itemsA);
break;
case "toolbarGroup-Insert":
let headerI = toolbar.getHeader(toolbarGroup);
let annotateHeaderI = headerI.getHeader(that.toolGroup);
const itemsI = annotateHeaderI.getItems().filter((item) => {
return ["rubberStampToolGroupButton", "toolsOverlay", "undoButton", "redoButton"].includes(item.dataElement);
});
annotateHeaderI.update(itemsI);
break;
default:
instance.UI.disableElements([toolbarGroup]);
}
}
}
});
}
}
window.ed.registerInterceptor(edMenu);