From a510c8fe3b7c54722150ea9b7f046ec5754011a4 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Thu, 15 Nov 2018 18:57:40 +0100 Subject: [PATCH] OO-3302: fix some issues if organisation feature is disabled --- .../ui/EditCurriculumController.java | 6 ++- ...thoringEditAccessAndBookingController.java | 11 +++-- .../CreateRepositoryEntryController.java | 7 +++- src/test/profile/mysql/olat.local.properties | 3 ++ src/test/profile/oracle/olat.local.properties | 40 ++++++++++++++++--- .../profile/postgresql/olat.local.properties | 3 ++ 6 files changed, 58 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/olat/modules/curriculum/ui/EditCurriculumController.java b/src/main/java/org/olat/modules/curriculum/ui/EditCurriculumController.java index 62685f8f2f6..140e10126c2 100644 --- a/src/main/java/org/olat/modules/curriculum/ui/EditCurriculumController.java +++ b/src/main/java/org/olat/modules/curriculum/ui/EditCurriculumController.java @@ -22,6 +22,7 @@ package org.olat.modules.curriculum.ui; import java.util.ArrayList; import java.util.List; +import org.olat.basesecurity.OrganisationModule; import org.olat.basesecurity.OrganisationRoles; import org.olat.basesecurity.OrganisationService; import org.olat.basesecurity.model.OrganisationRefImpl; @@ -65,6 +66,8 @@ public class EditCurriculumController extends FormBasicController { @Autowired private CurriculumService curriculumService; @Autowired + private OrganisationModule organisationModule; + @Autowired private OrganisationService organisationService; /** @@ -148,6 +151,7 @@ public class EditCurriculumController extends FormBasicController { organisationEl = uifactory.addDropdownSingleselect("curriculum.organisation", formLayout, keyList.toArray(new String[keyList.size()]), valueList.toArray(new String[valueList.size()])); + organisationEl.setVisible(organisationModule.isEnabled()); if(selectedOrganisationKey != null && keyList.contains(selectedOrganisationKey)) { organisationEl.select(selectedOrganisationKey, true); } @@ -181,7 +185,7 @@ public class EditCurriculumController extends FormBasicController { protected void formOK(UserRequest ureq) { //create a new one Organisation organisation; - if(organisationEl != null && organisationEl.isOneSelected()) { + if(organisationEl != null && organisationEl.isVisible() && organisationEl.isOneSelected()) { organisation = organisationService .getOrganisation(new OrganisationRefImpl(Long.valueOf(organisationEl.getSelectedKey()))); } else { diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessAndBookingController.java b/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessAndBookingController.java index bc66df0e782..06a7643043b 100644 --- a/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessAndBookingController.java +++ b/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessAndBookingController.java @@ -157,7 +157,11 @@ public class AuthoringEditAccessAndBookingController extends FormBasicController } public List<Organisation> getSelectedOrganisations() { - List<Organisation> organisations = new ArrayList<>(repositoryEntryOrganisations); + if(organisationsEl == null || !organisationsEl.isVisible()) { + return repositoryEntryOrganisations; + } + + List<Organisation> organisations = new ArrayList<>(); Set<String> organisationKeys = organisationsEl.getKeys(); Collection<String> selectedOrganisationKeys = organisationsEl.getSelectedKeys(); @@ -350,6 +354,8 @@ public class AuthoringEditAccessAndBookingController extends FormBasicController List<Organisation> organisationList = new ArrayList<>(organisations); List<Organisation> reOrganisations = repositoryService.getOrganisations(entry); + repositoryEntryOrganisations = new ArrayList<>(reOrganisations); + for(Organisation reOrganisation:reOrganisations) { if(reOrganisation != null && !organisationList.contains(reOrganisation)) { organisationList.add(reOrganisation); @@ -364,7 +370,6 @@ public class AuthoringEditAccessAndBookingController extends FormBasicController keyList.add(organisation.getKey().toString()); valueList.add(organisation.getDisplayName()); } - repositoryEntryOrganisations = new ArrayList<>(reOrganisations.size()); organisationsEl = uifactory.addCheckboxesDropdown("organisations", "cif.organisations", formLayout, keyList.toArray(new String[keyList.size()]), valueList.toArray(new String[valueList.size()]), null, null); @@ -382,7 +387,7 @@ public class AuthoringEditAccessAndBookingController extends FormBasicController if (organisationsEl != null) { organisationsEl.clearError(); - if(!organisationsEl.isAtLeastSelected(1)) { + if(organisationsEl.isVisible() && !organisationsEl.isAtLeastSelected(1)) { organisationsEl.setErrorKey("form.legende.mandatory", null); allOk &= false; } diff --git a/src/main/java/org/olat/repository/ui/author/CreateRepositoryEntryController.java b/src/main/java/org/olat/repository/ui/author/CreateRepositoryEntryController.java index 6f32d49476e..dec87372169 100644 --- a/src/main/java/org/olat/repository/ui/author/CreateRepositoryEntryController.java +++ b/src/main/java/org/olat/repository/ui/author/CreateRepositoryEntryController.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.List; import org.olat.NewControllerFactory; +import org.olat.basesecurity.OrganisationModule; import org.olat.basesecurity.OrganisationRoles; import org.olat.basesecurity.OrganisationService; import org.olat.basesecurity.model.OrganisationRefImpl; @@ -86,6 +87,8 @@ public class CreateRepositoryEntryController extends FormBasicController impleme @Autowired private LicenseModule licenseModule; @Autowired + private OrganisationModule organisationModule; + @Autowired private OrganisationService organisationService; @Autowired private RepositoryEntryLicenseHandler licenseHandler; @@ -162,7 +165,7 @@ public class CreateRepositoryEntryController extends FormBasicController impleme if(!organisationKeys.isEmpty()) { organisationEl.select(organisationKeys.get(0), true); } - organisationEl.setVisible(organisationKeys.size() > 1); + organisationEl.setVisible(organisationKeys.size() > 1 && organisationModule.isEnabled()); FormLayoutContainer buttonContainer = FormLayoutContainer.createButtonLayout("buttonContainer", getTranslator()); formLayout.add("buttonContainer", buttonContainer); @@ -231,7 +234,7 @@ public class CreateRepositoryEntryController extends FormBasicController impleme String displayname = displaynameEl.getValue(); Organisation organisation; - if(organisationEl.isOneSelected()) { + if(organisationEl.isVisible() && organisationEl.isOneSelected()) { Long organisationKey = Long.valueOf(organisationEl.getSelectedKey()); organisation = organisationService.getOrganisation(new OrganisationRefImpl(organisationKey)); } else { diff --git a/src/test/profile/mysql/olat.local.properties b/src/test/profile/mysql/olat.local.properties index 2c2b73596f9..a78deb7ffba 100644 --- a/src/test/profile/mysql/olat.local.properties +++ b/src/test/profile/mysql/olat.local.properties @@ -62,6 +62,9 @@ ldap.attributename.useridentifyer=uid #make sure the lecture module is enabled lecture.enabled=true +#make sure the organisation module is enabled +organisation.enabled=true + #make sure it works it mimic the pre 8.3 behavior group.mandatory.enrolment.email.users=false group.mandatory.enrolment.email.authors=false diff --git a/src/test/profile/oracle/olat.local.properties b/src/test/profile/oracle/olat.local.properties index f4d8efa567f..f2fadc8d4ba 100644 --- a/src/test/profile/oracle/olat.local.properties +++ b/src/test/profile/oracle/olat.local.properties @@ -7,7 +7,6 @@ tomcat.id=2 defaultlang=de -db.show_sql=false #force use of java.io.tmpDir for unit tests archive.dir= log.dir= @@ -18,6 +17,12 @@ instance.id=${test.env.instance.id:2} generate.index.at.startup=false +#disable debugging +olat.debug=false +localization.cache=true +is.translation.server=disabled +deploy.course.exports=false + # for UserTest keepUserEmailAfterDeletion=false keepUserLoginAfterDeletion=true @@ -29,11 +34,8 @@ jmx.rmi.port=${test.env.jmx.rmi.port.0:1009} # SingleVM jms.broker.url jms.broker.url=vm://embedded?broker.persistent=false search.broker.url=vm://embedded?broker.persistent=false -# Cluster (remote) jms.broker.url -#jms.broker.url=failover:(tcp://localhost:${test.env.jms.broker.port}?wireFormat.maxInactivityDuration=0) -#search.broker.url=failover:(tcp://localhost:${test.env.jms.broker.port}?wireFormat.maxInactivityDuration=0) -smtp.host=testing +smtp.host=disabled # # if you like to run your tests against mysql just uncomment the following. Please do not commit it! @@ -48,6 +50,24 @@ db.default.schema=olattest auto.upgrade.database=false db.hibernate.hikari.leakDetectionThreshold=120000 +#site we need +site.portal.enable=true + +# ldap +ldap.enable=true +ldap.ldapSyncOnStartup=false +ldap.ldapUrl=ldap://localhost:1389 +ldap.ldapSystemDN=uid=test,ou=person,dc=olattest,dc=org +ldap.ldapSystemPW=olattest +ldap.ldapBases=ou=person,dc=olattest,dc=org +ldap.attributename.useridentifyer=uid + +#make sure the lecture module is enabled +lecture.enabled=true + +#make sure the organisation module is enabled +organisation.enabled=true + #make sure it works it mimic the pre 8.3 behavior group.mandatory.enrolment.email.users=false group.mandatory.enrolment.email.authors=false @@ -61,6 +81,14 @@ group.accept.membership.usermanagers=false group.accept.membership.groupmanagers=false group.accept.membership.administrators=false -#make sure the test for QTI 1.2 works +#make sure the test and survey for QTI 1.2 works qti12.create.resources.enabled=true course.node.survey.enabled=true + +#security +base.security.frameOptionsSameOrigine=enabled +base.security.strictTransportSecurity=enabled +base.security.xContentTypeOptions=enabled +base.security.contentSecurityPolicy=enabled +base.security.contentSecurityPolicy.frameSrc=http://lti.frentix.com + diff --git a/src/test/profile/postgresql/olat.local.properties b/src/test/profile/postgresql/olat.local.properties index fd6632e2d18..1166f889bf4 100644 --- a/src/test/profile/postgresql/olat.local.properties +++ b/src/test/profile/postgresql/olat.local.properties @@ -62,6 +62,9 @@ ldap.attributename.useridentifyer=uid #make sure the lecture module is enabled lecture.enabled=true +#make sure the organisation module is enabled +organisation.enabled=true + #make sure it works it mimic the pre 8.3 behavior group.mandatory.enrolment.email.users=false group.mandatory.enrolment.email.authors=false -- GitLab