diff --git a/src/main/java/org/olat/group/ui/edit/BusinessGroupEditResourceController.java b/src/main/java/org/olat/group/ui/edit/BusinessGroupEditResourceController.java index 65278e558fc38eeb83372886c4e81e57dcb7470e..d9356bed3f6d10e14bcb7ea13dcace3c96ef8b3d 100644 --- a/src/main/java/org/olat/group/ui/edit/BusinessGroupEditResourceController.java +++ b/src/main/java/org/olat/group/ui/edit/BusinessGroupEditResourceController.java @@ -49,6 +49,7 @@ import org.olat.core.gui.control.generic.closablewrapper.CloseableModalControlle import org.olat.core.gui.control.generic.modal.DialogBoxController; import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory; import org.olat.core.gui.translator.Translator; +import org.olat.core.id.Roles; import org.olat.core.util.Util; import org.olat.course.CourseModule; import org.olat.group.BusinessGroup; @@ -92,6 +93,8 @@ public class BusinessGroupEditResourceController extends BasicController impleme private BusinessGroup group; private final boolean managed; + private final boolean hasAuthorRight; + @Autowired private BusinessGroupService businessGroupService; @@ -108,6 +111,9 @@ public class BusinessGroupEditResourceController extends BasicController impleme this.group = group; managed = BusinessGroupManagedFlag.isManaged(group, BusinessGroupManagedFlag.resources); + Roles roles = ureq.getUserSession().getRoles(); + hasAuthorRight = roles.isAdministrator() || roles.isLearnResourceManager() || roles.isAuthor(); + Translator resourceTrans = Util.createPackageTranslator(RepositoryService.class, getLocale(), getTranslator()); TableGuiConfiguration tableConfig = new TableGuiConfiguration(); tableConfig.setTableEmptyMessage(translate("resources.noresources")); @@ -130,24 +136,10 @@ public class BusinessGroupEditResourceController extends BasicController impleme putInitialPanel(mainVC); } - /** - * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, - * org.olat.core.gui.components.Component, org.olat.core.gui.control.Event) - */ @Override public void event(UserRequest ureq, Component source, Event event) { if (source == addTabResourcesButton) { - removeAsListenerAndDispose(repoSearchCtr); - removeAsListenerAndDispose(cmc); - - RepositoryEntryFilter filter = new ManagedEntryfilter(); - repoSearchCtr = new ReferencableEntriesSearchController(getWindowControl(), ureq, - new String[]{ CourseModule.getCourseTypeName() }, filter, - translate("resources.add"), true, true, true, false, true, Can.referenceable); - listenTo(repoSearchCtr); - cmc = new CloseableModalController(getWindowControl(), translate("close"), repoSearchCtr.getInitialComponent(), true, translate("resources.add.title")); - listenTo(cmc); - cmc.activate(); + doAddRepositoryEntry(ureq); } } @@ -197,6 +189,20 @@ public class BusinessGroupEditResourceController extends BasicController impleme } } + private void doAddRepositoryEntry(UserRequest ureq) { + removeAsListenerAndDispose(repoSearchCtr); + removeAsListenerAndDispose(cmc); + + RepositoryEntryFilter filter = new ManagedEntryfilter(); + repoSearchCtr = new ReferencableEntriesSearchController(getWindowControl(), ureq, + new String[]{ CourseModule.getCourseTypeName() }, filter, + translate("resources.add"), hasAuthorRight, hasAuthorRight, true, false, true, Can.referenceable); + listenTo(repoSearchCtr); + cmc = new CloseableModalController(getWindowControl(), translate("close"), repoSearchCtr.getInitialComponent(), true, translate("resources.add.title")); + listenTo(cmc); + cmc.activate(); + } + private void doOpenInfos(UserRequest ureq, RepositoryEntry repositoryEntry, int rowId) { removeAsListenerAndDispose(calloutCtrl); removeAsListenerAndDispose(infosCtrl); diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/metadata/AssessmentItemEditorMetadataSecurityCallback.java b/src/main/java/org/olat/ims/qti21/ui/editor/metadata/AssessmentItemEditorMetadataSecurityCallback.java index 87ad3163934830a36c2cac5fe64b6e8fd38c5a98..044e3c22ad19421152a124632d206da0990dd85e 100644 --- a/src/main/java/org/olat/ims/qti21/ui/editor/metadata/AssessmentItemEditorMetadataSecurityCallback.java +++ b/src/main/java/org/olat/ims/qti21/ui/editor/metadata/AssessmentItemEditorMetadataSecurityCallback.java @@ -43,7 +43,7 @@ class AssessmentItemEditorMetadataSecurityCallback implements MetadataSecurityCa @Override public boolean canRemoveTaxonomy() { - return !readOnly; + return true; } @Override diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/metadata/MetadataController.java b/src/main/java/org/olat/ims/qti21/ui/editor/metadata/MetadataController.java index 9f3bda553b96efc116285cf5ded6c28b5d212e4f..e52275c4332f197f5e3b50885bae6a43f27d961e 100644 --- a/src/main/java/org/olat/ims/qti21/ui/editor/metadata/MetadataController.java +++ b/src/main/java/org/olat/ims/qti21/ui/editor/metadata/MetadataController.java @@ -44,8 +44,7 @@ import org.olat.modules.qpool.ui.metadata.MetadatasController; */ public class MetadataController extends BasicController { - private MetadatasController metadataCtrl; - + private final MetadatasController metadataCtrl; public MetadataController(UserRequest ureq, WindowControl wControl, ManifestMetadataBuilder metadataBuilder, boolean readOnly) {