diff --git a/src/main/java/org/olat/group/ui/edit/BusinessGroupEditAccessController.java b/src/main/java/org/olat/group/ui/edit/BusinessGroupEditAccessController.java index 6785a564740becf34a9319358be5de1e18f5c128..fd89539d16b00e70f2ad987e9e532c44bb94a9c8 100644 --- a/src/main/java/org/olat/group/ui/edit/BusinessGroupEditAccessController.java +++ b/src/main/java/org/olat/group/ui/edit/BusinessGroupEditAccessController.java @@ -66,6 +66,10 @@ public class BusinessGroupEditAccessController extends FormBasicController { initForm(ureq); } + + public int getNumOfBookingConfigurations() { + return configController == null ? 0 : configController.getNumOfBookingConfigurations(); + } @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { diff --git a/src/main/java/org/olat/group/ui/edit/BusinessGroupEditController.java b/src/main/java/org/olat/group/ui/edit/BusinessGroupEditController.java index ccb1ba6f488d6f5b237809dbcc10562987c28d2a..208c829e03665c12e2b90071275c058a55d20021 100644 --- a/src/main/java/org/olat/group/ui/edit/BusinessGroupEditController.java +++ b/src/main/java/org/olat/group/ui/edit/BusinessGroupEditController.java @@ -55,6 +55,7 @@ import org.olat.core.util.coordinate.LockResult; import org.olat.core.util.event.GenericEventListener; import org.olat.core.util.resource.OLATResourceableJustBeforeDeletedEvent; import org.olat.group.BusinessGroup; +import org.olat.group.BusinessGroupManagedFlag; import org.olat.group.BusinessGroupService; import org.olat.group.GroupLoggingAction; import org.olat.group.ui.BGControllerFactory; @@ -231,7 +232,13 @@ public class BusinessGroupEditController extends BasicController implements Cont private BusinessGroupEditAccessController getAccessController(UserRequest ureq) { if(tabAccessCtrl == null && acModule.isEnabled()) { tabAccessCtrl = new BusinessGroupEditAccessController(ureq, getWindowControl(), currBusinessGroup); - listenTo(tabAccessCtrl); + if(BusinessGroupManagedFlag.isManaged(currBusinessGroup, BusinessGroupManagedFlag.bookings) + && tabAccessCtrl.getNumOfBookingConfigurations() == 0) { + //booking is managed, no booking, don't show it + tabAccessCtrl = null; + } else { + listenTo(tabAccessCtrl); + } } if(tabAccessCtrl != null) { tabAccessCtrl.updateBusinessGroup(currBusinessGroup); diff --git a/src/main/java/org/olat/repository/controllers/RepositoryEditPropertiesController.java b/src/main/java/org/olat/repository/controllers/RepositoryEditPropertiesController.java index a3e6f338a7287016ee304ea140ffda744c221e94..45cefe3e80ee59234f8cecd2aea156d1896096db 100644 --- a/src/main/java/org/olat/repository/controllers/RepositoryEditPropertiesController.java +++ b/src/main/java/org/olat/repository/controllers/RepositoryEditPropertiesController.java @@ -178,9 +178,12 @@ public class RepositoryEditPropertiesController extends BasicController implemen acCtr = new AccessConfigurationController(ureq, getWindowControl(), repositoryEntry.getOlatResource(), repositoryEntry.getDisplayname(), true, !managedBookings); int access = propPupForm.getAccess(); + int numOfBookingConfigs = acCtr.getNumOfBookingConfigurations(); if(access == RepositoryEntry.ACC_USERS || access == RepositoryEntry.ACC_USERS_GUESTS) { - editproptabpubVC.put("accesscontrol", acCtr.getInitialComponent()); - editproptabpubVC.contextPut("isGuestAccess", Boolean.valueOf(access == RepositoryEntry.ACC_USERS_GUESTS)); + if(!managedBookings || numOfBookingConfigs > 0) { + editproptabpubVC.put("accesscontrol", acCtr.getInitialComponent()); + editproptabpubVC.contextPut("isGuestAccess", Boolean.valueOf(access == RepositoryEntry.ACC_USERS_GUESTS)); + } } tabbedPane.addListener(this); @@ -490,9 +493,13 @@ public class RepositoryEditPropertiesController extends BasicController implemen } int access = propPupForm.getAccess(); + int numOfBookingConfigs = acCtr.getNumOfBookingConfigurations(); + boolean managedBookings = RepositoryEntryManagedFlag.isManaged(repositoryEntry, RepositoryEntryManagedFlag.bookings); if(access == RepositoryEntry.ACC_USERS || access == RepositoryEntry.ACC_USERS_GUESTS) { - editproptabpubVC.put("accesscontrol", acCtr.getInitialComponent()); - editproptabpubVC.contextPut("isGuestAccess", Boolean.valueOf(access == RepositoryEntry.ACC_USERS_GUESTS)); + if(!managedBookings || numOfBookingConfigs > 0) { + editproptabpubVC.put("accesscontrol", acCtr.getInitialComponent()); + editproptabpubVC.contextPut("isGuestAccess", Boolean.valueOf(access == RepositoryEntry.ACC_USERS_GUESTS)); + } } else { editproptabpubVC.remove(acCtr.getInitialComponent()); } diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/AccessConfigurationController.java b/src/main/java/org/olat/resource/accesscontrol/ui/AccessConfigurationController.java index 79486b34651082baf4fcf2b6198e23c5240b70ba..3a0966074655147bbef916c2a0dfa4506d05df51 100644 --- a/src/main/java/org/olat/resource/accesscontrol/ui/AccessConfigurationController.java +++ b/src/main/java/org/olat/resource/accesscontrol/ui/AccessConfigurationController.java @@ -118,6 +118,10 @@ public class AccessConfigurationController extends FormBasicController { initForm(ureq); } + public int getNumOfBookingConfigurations() { + return confControllers.size(); + } + public FormItem getInitialFormItem() { return flc; }