From 041d8e215d19db6d1d6cc4e464d6c82c7304bfb3 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 9 May 2018 08:46:52 +0200 Subject: [PATCH] OO-3462: delete the porfolio with its business group --- .../manager/BusinessGroupServiceImpl.java | 4 --- .../manager/PortfolioServiceImpl.java | 25 ++++++++++++++++++- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java index 45b5077e794..e65baceb53d 100644 --- a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java +++ b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java @@ -766,8 +766,6 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD // 1) Delete all group properties CollaborationTools ct = CollaborationToolsFactory.getInstance().getOrCreateCollaborationTools(group); ct.deleteTools(group);// deletes everything concerning properties&collabTools - // 1.c)delete user in security groups - //removeFromRepositoryEntrySecurityGroup(group); // 2) Delete the group areas areaManager.deleteBGtoAreaRelations(group); // 3) Delete the relations @@ -783,8 +781,6 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD infoMessageManager.removeInfoMessagesAndSubscriptionContext(group); // 7) the group businessGroupDAO.delete(group); - // 8) delete the associated security groups - //TODO group dbInstance.commit(); diff --git a/src/main/java/org/olat/modules/portfolio/manager/PortfolioServiceImpl.java b/src/main/java/org/olat/modules/portfolio/manager/PortfolioServiceImpl.java index de5500e0b02..ded1bd8c82a 100644 --- a/src/main/java/org/olat/modules/portfolio/manager/PortfolioServiceImpl.java +++ b/src/main/java/org/olat/modules/portfolio/manager/PortfolioServiceImpl.java @@ -37,6 +37,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.olat.basesecurity.Group; import org.olat.basesecurity.IdentityRef; import org.olat.basesecurity.manager.GroupDAO; +import org.olat.collaboration.CollaborationTools; import org.olat.core.commons.modules.bc.vfs.OlatRootFileImpl; import org.olat.core.commons.persistence.DB; import org.olat.core.gui.translator.Translator; @@ -60,6 +61,8 @@ import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.fileresource.FileResourceManager; +import org.olat.group.BusinessGroup; +import org.olat.group.DeletableGroupData; import org.olat.modules.assessment.AssessmentEntry; import org.olat.modules.assessment.AssessmentService; import org.olat.modules.assessment.Role; @@ -112,6 +115,8 @@ import org.olat.modules.portfolio.model.SectionImpl; import org.olat.modules.portfolio.model.SectionKeyRef; import org.olat.modules.portfolio.model.SynchedBinder; import org.olat.modules.portfolio.ui.PortfolioHomeController; +import org.olat.properties.NarrowedPropertyManager; +import org.olat.properties.Property; import org.olat.repository.RepositoryEntry; import org.olat.repository.RepositoryEntryRef; import org.olat.repository.RepositoryService; @@ -130,7 +135,7 @@ import com.thoughtworks.xstream.XStream; * */ @Service -public class PortfolioServiceImpl implements PortfolioService { +public class PortfolioServiceImpl implements PortfolioService, DeletableGroupData { private static final OLog log = Tracing.createLoggerFor(PortfolioServiceImpl.class); @@ -262,6 +267,24 @@ public class PortfolioServiceImpl implements PortfolioService { return binder; } + @Override + public boolean deleteGroupDataFor(BusinessGroup group) { + NarrowedPropertyManager npm = NarrowedPropertyManager.getInstance(group); + Property mapKeyProperty = npm.findProperty(null, null, CollaborationTools.PROP_CAT_BG_COLLABTOOLS, CollaborationTools.KEY_PORTFOLIO); + if (mapKeyProperty != null) { + Long mapKey = mapKeyProperty.getLongValue(); + String version = mapKeyProperty.getStringValue(); + if("2".equals(version)) { + Binder binder = binderDao.loadByKey(mapKey); + if(binder != null) { + deleteBinder(binder); + } + } + return true; + } + return false; + } + @Override public boolean detachCourseFromBinders(RepositoryEntry entry) { int deletedRows = binderDao.detachBinderFromRepositoryEntry(entry); -- GitLab