Skip to content
Snippets Groups Projects
Commit 7b0789ab authored by srosse's avatar srosse
Browse files

OO-4584: delete meetings before course / course node deletion

parent e445fca3
No related branches found
No related tags found
No related merge requests found
...@@ -21,6 +21,7 @@ package org.olat.course.nodes; ...@@ -21,6 +21,7 @@ package org.olat.course.nodes;
import java.util.List; import java.util.List;
import org.olat.core.CoreSpringFactory;
import org.olat.core.gui.UserRequest; import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.stack.BreadcrumbPanel; import org.olat.core.gui.components.stack.BreadcrumbPanel;
import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Controller;
...@@ -42,6 +43,9 @@ import org.olat.course.run.navigation.NodeRunConstructionResult; ...@@ -42,6 +43,9 @@ import org.olat.course.run.navigation.NodeRunConstructionResult;
import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.NodeEvaluation;
import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.course.run.userview.UserCourseEnvironment;
import org.olat.modules.ModuleConfiguration; import org.olat.modules.ModuleConfiguration;
import org.olat.modules.bigbluebutton.BigBlueButtonManager;
import org.olat.modules.bigbluebutton.BigBlueButtonMeeting;
import org.olat.modules.bigbluebutton.model.BigBlueButtonErrors;
import org.olat.modules.bigbluebutton.ui.BigBlueButtonMeetingDefaultConfiguration; import org.olat.modules.bigbluebutton.ui.BigBlueButtonMeetingDefaultConfiguration;
import org.olat.modules.bigbluebutton.ui.BigBlueButtonRunController; import org.olat.modules.bigbluebutton.ui.BigBlueButtonRunController;
import org.olat.repository.RepositoryEntry; import org.olat.repository.RepositoryEntry;
...@@ -150,4 +154,18 @@ public class BigBlueButtonCourseNode extends AbstractAccessableCourseNode { ...@@ -150,4 +154,18 @@ public class BigBlueButtonCourseNode extends AbstractAccessableCourseNode {
return false; return false;
} }
@Override
public void cleanupOnDelete(ICourse course) {
BigBlueButtonManager bigBlueButtonManager = CoreSpringFactory.getImpl(BigBlueButtonManager.class);
RepositoryEntry courseEntry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
List<BigBlueButtonMeeting> meetings = bigBlueButtonManager.getMeetings(courseEntry, getIdent(), null);
BigBlueButtonErrors errors = new BigBlueButtonErrors();
for(BigBlueButtonMeeting meeting:meetings) {
CoreSpringFactory.getImpl(BigBlueButtonManager.class).deleteMeeting(meeting, errors);
}
super.cleanupOnDelete(course);
}
} }
...@@ -70,6 +70,7 @@ import org.olat.modules.bigbluebutton.model.BigBlueButtonMeetingImpl; ...@@ -70,6 +70,7 @@ import org.olat.modules.bigbluebutton.model.BigBlueButtonMeetingImpl;
import org.olat.modules.bigbluebutton.model.BigBlueButtonMeetingInfos; import org.olat.modules.bigbluebutton.model.BigBlueButtonMeetingInfos;
import org.olat.modules.bigbluebutton.model.BigBlueButtonServerInfos; import org.olat.modules.bigbluebutton.model.BigBlueButtonServerInfos;
import org.olat.repository.RepositoryEntry; import org.olat.repository.RepositoryEntry;
import org.olat.repository.RepositoryEntryDataDeletable;
import org.olat.repository.RepositoryEntryRef; import org.olat.repository.RepositoryEntryRef;
import org.olat.repository.RepositoryManager; import org.olat.repository.RepositoryManager;
import org.olat.repository.manager.RepositoryEntryDAO; import org.olat.repository.manager.RepositoryEntryDAO;
...@@ -86,7 +87,8 @@ import org.w3c.dom.Document; ...@@ -86,7 +87,8 @@ import org.w3c.dom.Document;
* *
*/ */
@Service @Service
public class BigBlueButtonManagerImpl implements BigBlueButtonManager, DeletableGroupData, InitializingBean { public class BigBlueButtonManagerImpl implements BigBlueButtonManager,
DeletableGroupData, RepositoryEntryDataDeletable, InitializingBean {
private static final Logger log = Tracing.createLoggerFor(BigBlueButtonManagerImpl.class); private static final Logger log = Tracing.createLoggerFor(BigBlueButtonManagerImpl.class);
...@@ -225,6 +227,16 @@ public class BigBlueButtonManagerImpl implements BigBlueButtonManager, Deletable ...@@ -225,6 +227,16 @@ public class BigBlueButtonManagerImpl implements BigBlueButtonManager, Deletable
} }
return !errors.hasErrors(); return !errors.hasErrors();
} }
@Override
public boolean deleteRepositoryEntryData(RepositoryEntry re) {
List<BigBlueButtonMeeting> meetings = bigBlueButtonMeetingDao.getMeetings(re, null, null);
BigBlueButtonErrors errors = new BigBlueButtonErrors();
for(BigBlueButtonMeeting meeting:meetings) {
deleteMeeting(meeting, errors);
}
return !errors.hasErrors();
}
@Override @Override
public BigBlueButtonServer createServer(String url, String recordingUrl, String sharedSecret) { public BigBlueButtonServer createServer(String url, String recordingUrl, String sharedSecret) {
......
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