Embedded Documents Menü einschränken

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);