diff --git a/src/main/java/org/olat/course/nodes/projectbroker/service/ProjectBrokerManagerImpl.java b/src/main/java/org/olat/course/nodes/projectbroker/service/ProjectBrokerManagerImpl.java index 2874b16e9239989116e8f3f7be680587a4989454..570fb0985d42ada738e1106dc94e11234ba2f926 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/service/ProjectBrokerManagerImpl.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/service/ProjectBrokerManagerImpl.java @@ -32,7 +32,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; -import java.util.Locale; import java.util.StringTokenizer; import org.hibernate.type.StandardBasicTypes; @@ -58,7 +57,6 @@ import org.olat.core.util.vfs.VFSLeaf; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.ProjectBrokerCourseNode; import org.olat.course.nodes.projectbroker.ProjectBrokerDropboxController; -import org.olat.course.nodes.projectbroker.ProjectBrokerNodeConfiguration; import org.olat.course.nodes.projectbroker.ProjectBrokerReturnboxController; import org.olat.course.nodes.projectbroker.datamodel.Project; import org.olat.course.nodes.projectbroker.datamodel.Project.EventType; @@ -71,7 +69,6 @@ import org.olat.course.run.environment.CourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroupService; import org.olat.group.DeletableGroupData; -import org.olat.group.DeletableReference; import org.olat.properties.Property; import org.olat.testutils.codepoints.server.Codepoint; @@ -581,22 +578,6 @@ public class ProjectBrokerManagerImpl extends BasicManager implements ProjectBro return true; } - @Override - public DeletableReference checkIfReferenced(BusinessGroup group, Locale locale) { - StringBuilder buf = new StringBuilder(); - List<Project> projectList = getProjectsWith(group); - if (projectList.isEmpty()) { - return DeletableReference.createNoDeletableReference(); - } - buf.append(new ProjectBrokerNodeConfiguration().getLinkText(locale)); - buf.append(":" ); - - for (Project project : projectList) { - buf.append(project.getTitle()); - } - return DeletableReference.createDeletableReference(buf.toString()); - } - @SuppressWarnings("unchecked") private List<Project> getProjectsWith(BusinessGroup group) { List<Project> projectList = DBFactory.getInstance().find( diff --git a/src/main/java/org/olat/group/BusinessGroupService.java b/src/main/java/org/olat/group/BusinessGroupService.java index d99a3145135880f32334c3e9c5b14dbb2348c80d..b517195b182d506afec96061bba2535eec700b36 100644 --- a/src/main/java/org/olat/group/BusinessGroupService.java +++ b/src/main/java/org/olat/group/BusinessGroupService.java @@ -58,8 +58,6 @@ public interface BusinessGroupService { */ public void registerDeletableGroupDataListener(DeletableGroupData listener); - public List<String> getDependingDeletablableListFor(BusinessGroup currentGroup, Locale locale); - /** * Create a persistent BusinessGroup with the provided * parameters. The BusinessGroup can have a waiting-list. diff --git a/src/main/java/org/olat/group/DeletableGroupData.java b/src/main/java/org/olat/group/DeletableGroupData.java index 6a87f94f77de6ba56de307bf0400f082d77f96f1..f1efbbdefd2ff49a100d330c11ce90fbb4c87317 100644 --- a/src/main/java/org/olat/group/DeletableGroupData.java +++ b/src/main/java/org/olat/group/DeletableGroupData.java @@ -22,36 +22,20 @@ * This file has been modified by the OpenOLAT community. Changes are licensed * under the Apache 2.0 license as the original file. */ - package org.olat.group; -import java.util.Locale; - - - /** * * @author ChristianGuretzki */ - public interface DeletableGroupData { - /** - * Check if a group is used by deletable-group data element. - * E.g. projectbroker has references to certain groups - * @param group Check reference for this group - * @param locale locale can be used to translate element-type. E.g. project-broker to Themenboerse - * @return DeletableReference object, when the group is used, deleteable.Reference.isReferenced return true - */ - public DeletableReference checkIfReferenced(BusinessGroup group, Locale locale); - /** * Delete data for element which are be used by certain group. * @param group Delete data for this group * @return true: data deleted , false: no data deleted */ public boolean deleteGroupDataFor(BusinessGroup group); - } diff --git a/src/main/java/org/olat/group/DeletableReference.java b/src/main/java/org/olat/group/DeletableReference.java deleted file mode 100644 index 7b8f950abb26c8af87d5d628a3b7b2482465defd..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/group/DeletableReference.java +++ /dev/null @@ -1,66 +0,0 @@ -/** -* OLAT - Online Learning and Training<br> -* http://www.olat.org -* <p> -* Licensed under the Apache License, Version 2.0 (the "License"); <br> -* you may not use this file except in compliance with the License.<br> -* You may obtain a copy of the License at -* <p> -* http://www.apache.org/licenses/LICENSE-2.0 -* <p> -* Unless required by applicable law or agreed to in writing,<br> -* software distributed under the License is distributed on an "AS IS" BASIS, <br> -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> -* See the License for the specific language governing permissions and <br> -* limitations under the License. -* <p> -* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> -* University of Zurich, Switzerland. -* <hr> -* <a href="http://www.openolat.org"> -* OpenOLAT - Online Learning and Training</a><br> -* This file has been modified by the OpenOLAT community. Changes are licensed -* under the Apache 2.0 license as the original file. -*/ - -package org.olat.group; - - -/** - * - * @author ChristianGuretzki - */ - -public class DeletableReference { - - private String name; - private boolean isReferenced; - - private DeletableReference() { - this.isReferenced = false; - } - - private DeletableReference(String name) { - this.name = name; - this.isReferenced = true; - } - - public static DeletableReference createNoDeletableReference() { - return new DeletableReference(); - } - - public static DeletableReference createDeletableReference(String name) { - return new DeletableReference(name); - } - - public String getName() { - return name; - } - - public boolean isReferenced() { - return isReferenced; - } - -} - - diff --git a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java index 83268c53d7552538a0853120e4cf8ee626caa0e6..0258f8f7f2e00830414bda27f8a3a703d136b08f 100644 --- a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java +++ b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java @@ -76,7 +76,6 @@ import org.olat.group.BusinessGroupService; import org.olat.group.BusinessGroupShort; import org.olat.group.BusinessGroupView; import org.olat.group.DeletableGroupData; -import org.olat.group.DeletableReference; import org.olat.group.GroupLoggingAction; import org.olat.group.area.BGArea; import org.olat.group.area.BGAreaManager; @@ -170,18 +169,6 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD public void registerDeletableGroupDataListener(DeletableGroupData listener) { this.deleteListeners.add(listener); } - - @Override - public List<String> getDependingDeletablableListFor(BusinessGroup currentGroup, Locale locale) { - List<String> deletableList = new ArrayList<String>(); - for (DeletableGroupData deleteListener : deleteListeners) { - DeletableReference deletableReference = deleteListener.checkIfReferenced(currentGroup, locale); - if (deletableReference.isReferenced()) { - deletableList.add(deletableReference.getName()); - } - } - return deletableList; - } @Override public void deleteUserData(Identity identity, String newDeletedUserName) { diff --git a/src/main/java/org/olat/modules/openmeetings/manager/OpenMeetingsManagerImpl.java b/src/main/java/org/olat/modules/openmeetings/manager/OpenMeetingsManagerImpl.java index 7841fbd07db2516d2798882dfbc8220242818a9f..34601813eddde23ba240af49b34d7c1b5e915100 100644 --- a/src/main/java/org/olat/modules/openmeetings/manager/OpenMeetingsManagerImpl.java +++ b/src/main/java/org/olat/modules/openmeetings/manager/OpenMeetingsManagerImpl.java @@ -46,6 +46,8 @@ import org.olat.core.util.WebappHelper; import org.olat.core.util.cache.n.CacheWrapper; import org.olat.core.util.coordinate.CoordinatorManager; import org.olat.group.BusinessGroup; +import org.olat.group.BusinessGroupService; +import org.olat.group.DeletableGroupData; import org.olat.modules.openmeetings.OpenMeetingsModule; import org.olat.modules.openmeetings.model.OpenMeetingsRecording; import org.olat.modules.openmeetings.model.OpenMeetingsRoom; @@ -101,7 +103,7 @@ import org.springframework.stereotype.Service; * @author srosse, stephae.rosse@frentix.com */ @Service -public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDeletable { +public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDeletable, DeletableGroupData { private final static OLog log = Tracing.createLoggerFor(OpenMeetingsManagerImpl.class); @@ -115,6 +117,8 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel private CoordinatorManager coordinator; @Autowired private RepositoryManager repositoryManager; + @Autowired + private BusinessGroupService businessGroupService; private CacheWrapper sessionCache; private OpenMeetingsLanguages languagesMapping; @@ -122,6 +126,7 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel @PostConstruct public void init() { userDeletionManager.registerDeletableUserData(this); + businessGroupService.registerDeletableGroupDataListener(this); languagesMapping = new OpenMeetingsLanguages(); languagesMapping.read(); @@ -824,6 +829,16 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel // } + @Override + public boolean deleteGroupDataFor(BusinessGroup group) { + boolean allOk = true; + OpenMeetingsRoom room = getLocalRoom(group, null, null); + if(room != null) { + allOk &= deleteRoom(room); + } + return allOk; + } + private final RoomServiceStub getRoomWebService() throws AxisFault { String endPoint = getOpenMeetingsEndPoint() + "RoomService?wsdl"; diff --git a/src/main/java/org/olat/portfolio/PortfolioModule.java b/src/main/java/org/olat/portfolio/PortfolioModule.java index 6555a5d59298a70b19c92e93f170abb9ed347192..67798dad3224f3580ce5548955389eb04e475d6c 100755 --- a/src/main/java/org/olat/portfolio/PortfolioModule.java +++ b/src/main/java/org/olat/portfolio/PortfolioModule.java @@ -22,7 +22,6 @@ package org.olat.portfolio; import java.io.File; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import org.olat.admin.user.delete.service.UserDeletionManager; import org.olat.collaboration.CollaborationTools; @@ -44,7 +43,6 @@ import org.olat.core.util.vfs.VFSItem; import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroupService; import org.olat.group.DeletableGroupData; -import org.olat.group.DeletableReference; import org.olat.portfolio.manager.EPFrontendManager; import org.olat.portfolio.model.artefacts.AbstractArtefact; import org.olat.portfolio.model.structel.ElementType; @@ -341,12 +339,6 @@ public class PortfolioModule extends AbstractOLATModule implements ConfigOnOff, } - // used for group deletion - @Override - public DeletableReference checkIfReferenced(BusinessGroup group, Locale locale) { - return DeletableReference.createNoDeletableReference(); // dont show special reference info, just delete a linked map - } - // used for group deletion @Override public boolean deleteGroupDataFor(BusinessGroup group) {