Skip to content
Snippets Groups Projects
Commit 59040fc9 authored by srosse's avatar srosse
Browse files

OO-455: delete open meetings room before the group, remove unused stuff

parent 7be04e33
No related branches found
No related tags found
No related merge requests found
......@@ -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(
......
......@@ -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.
......
......@@ -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);
}
/**
* 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;
}
}
......@@ -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) {
......
......@@ -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";
......
......@@ -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) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment