diff --git a/src/main/java/org/olat/group/ui/run/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/group/ui/run/_i18n/LocalStrings_pt_BR.properties index b2f68a5244107bd261f2d88eb8a564116649be7b..7c32167d34b94d934a86728d3e376074611a050c 100644 --- a/src/main/java/org/olat/group/ui/run/_i18n/LocalStrings_pt_BR.properties +++ b/src/main/java/org/olat/group/ui/run/_i18n/LocalStrings_pt_BR.properties @@ -1,4 +1,4 @@ -#Fri May 03 20:47:34 CEST 2019 +#Mon May 13 16:59:55 CEST 2019 businessgroup.contact.bodytext=<p></p>---<p>Ir imediatamente para o grupo "{0}"\: {1}</p> businessgroup.contact.subject=Mensagem para grupo {0} contact.all.coaches=Todos os treinadores (coaches) de grupo diff --git a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties index bfe692e962f12e09a3a08ab3cb40701b3ad43f1b..e4fff68fa18ed8d4ed8d6fa9fb40fe70eb37c823 100644 --- a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties @@ -99,7 +99,7 @@ digital.signature.mail.test.option=Testquittung per Mail schicken digital.signature.test.option=Testquittung erstellen digital.signature.text=Testquittung der Testergebnisse download.log=Logdatei -download.pdf=Resultaten als PDF +download.pdf=Resultate als PDF drawing.brushsize=Pinselgr\u00F6sse drawing.opacity=Deckkraft error.as.directed=Alle 4 Antwortm\u00F6glichkeiten m\u00FCssen entweder mit Richtig oder Falsch beantwortet werden. diff --git a/src/main/java/org/olat/modules/docpool/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/docpool/ui/_i18n/LocalStrings_de.properties index 89983573df624313dc7cc870c08e2039ed48eb7b..92efb3c9a24e6ce11242f243cd4110cb9cb5aa7c 100644 --- a/src/main/java/org/olat/modules/docpool/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/docpool/ui/_i18n/LocalStrings_de.properties @@ -2,7 +2,7 @@ admin.description=Der Dokumentenpool stellt eine Dokumentenbibliothek bereit mit automatischer Strukturierung auf der Basis einer Taxonomie und Kompetenzen. admin.menu.title=Dokumentenpool admin.menu.title.alt=Dokumentenpool -admin.permissions.description=Die Zugangsberechtigungen zum Dokumentenpool basieren auf Kompetenzen von Benutzern auf die jeweiligen Taxonomieebenen. Die Steuerung erfolgt \u00FCber assozierten Ebenentypen. +admin.permissions.description=Die Zugangsberechtigungen zum Dokumentenpool basieren auf Kompetenzen von Benutzern auf die jeweiligen Taxonomieebenen. Die Steuerung erfolgt \u00FCber assozierte Ebenentypen. create.infos.page=Infoseite erstellen document.pool.admin.enabled=Dokumentenpool einschalten document.pool.configuration=Dokumentenpool diff --git a/src/main/java/org/olat/user/propertyhandlers/GenericSelectionPropertyHandler.java b/src/main/java/org/olat/user/propertyhandlers/GenericSelectionPropertyHandler.java index 2133ee4798a9bbb399f97ebae7458380fd9de011..880d52d2f3b889876a16485bdd124daa4302b421 100644 --- a/src/main/java/org/olat/user/propertyhandlers/GenericSelectionPropertyHandler.java +++ b/src/main/java/org/olat/user/propertyhandlers/GenericSelectionPropertyHandler.java @@ -260,10 +260,8 @@ public class GenericSelectionPropertyHandler extends AbstractUserPropertyHandler } if (formItem instanceof SingleSelection) { SingleSelection sel = (SingleSelection)formItem; - if(sel.isOneSelected()) { + if(sel.isOneSelected() && !NO_SEL_KEY.equals(sel.getSelectedKey())) { return sel.getSelectedKey(); - } else { - return null; } } return null; diff --git a/src/test/java/org/olat/group/test/BusinessGroupServiceTest.java b/src/test/java/org/olat/group/test/BusinessGroupServiceTest.java index 0b1b8cd24fcb811ad41cdcef39655277ff77331b..75d95752c4402955f7254340c9fd1ad16600515c 100644 --- a/src/test/java/org/olat/group/test/BusinessGroupServiceTest.java +++ b/src/test/java/org/olat/group/test/BusinessGroupServiceTest.java @@ -1228,6 +1228,64 @@ public class BusinessGroupServiceTest extends OlatTestCase { Assert.assertTrue(contactList.contains(adminIdentity)); } + @Test + public void allowToLeavingBusinessGroup_subAndMoreOrganisation() { + // a special + String uuid = UUID.randomUUID().toString(); + Organisation organisation = organisationService.getDefaultOrganisation(); + Organisation subOrganisation1 = organisationService + .createOrganisation("Sub-organisation 1", uuid, "", organisation, null); + Organisation subOrganisation1_1 = organisationService + .createOrganisation("Sub-organisation 1.1", uuid, "", subOrganisation1, null); + Organisation subOrganisation2 = organisationService + .createOrganisation("Sub-organisation 2", uuid, "", organisation, null); + + // create an administrator + String adminName = "admin" + uuid; + User adminUser = userManager.createUser("Admin", "Istrator", uuid + "admin@openolat.org"); + Identity adminIdentity = securityManager.createAndPersistIdentityAndUser(adminName, null, adminUser, null, adminName); + organisationService.addMember(subOrganisation1, adminIdentity, OrganisationRoles.user); + organisationService.addMember(subOrganisation1, adminIdentity, OrganisationRoles.administrator); + // create a second administrator in the second sub organization + String adminName2 = "admin2" + uuid; + User adminUser2 = userManager.createUser("Admin", "Istrator", uuid + "admin@openolat.org"); + Identity adminIdentity2 = securityManager.createAndPersistIdentityAndUser(adminName2, null, adminUser2, null, adminName2); + organisationService.addMember(subOrganisation2, adminIdentity2, OrganisationRoles.user); + organisationService.addMember(subOrganisation2, adminIdentity2, OrganisationRoles.administrator); + // create a third administrator in the organization under the first sub organization + String adminName3 = "admin3" + uuid; + User adminUser3 = userManager.createUser("Admin", "Istrator", uuid + "admin@openolat.org"); + Identity adminIdentity3 = securityManager.createAndPersistIdentityAndUser(adminName3, null, adminUser3, null, adminName3); + organisationService.addMember(subOrganisation1, adminIdentity3, OrganisationRoles.user); + organisationService.addMember(subOrganisation1_1, adminIdentity3, OrganisationRoles.administrator); + //create a user + String userName = "user" + uuid; + User user = userManager.createUser("Us", "er", uuid + "user@openolat.org"); + Identity userIdentity = securityManager.createAndPersistIdentityAndUser(userName, null, user, null, userName); + organisationService.addMember(subOrganisation1, userIdentity, OrganisationRoles.user); + dbInstance.commitAndCloseSession(); + + BusinessGroup group = businessGroupService.createBusinessGroup(null, "Leaving group", "But you cannot leave :-(", new Integer(0), new Integer(2), false, false, null); + businessGroupRelationDao.addRole(userIdentity, group, GroupRoles.participant.name()); + dbInstance.commitAndCloseSession(); + + //set to not allowed to leave + group = businessGroupService.updateAllowToLeaveBusinessGroup(group, false); + dbInstance.commitAndCloseSession(); + + //check the authors group leaving option + LeaveOption optionToLeave = businessGroupService.isAllowToLeaveBusinessGroup(userIdentity, group); + Assert.assertNotNull(optionToLeave); + Assert.assertFalse(optionToLeave.isAllowToLeave()); + ContactList contacts = optionToLeave.getContacts(); + Collection<Identity> contactList = contacts.getIdentiEmails().values(); + Assert.assertNotNull(contactList); + Assert.assertFalse(contactList.isEmpty()); + Assert.assertTrue(contactList.contains(adminIdentity)); + Assert.assertFalse(contactList.contains(adminIdentity2)); + Assert.assertFalse(contactList.contains(adminIdentity3)); + } + @Ignore @Test public void parallelRemoveParticipants() { mailModule.setInterSystem(true);