From 24a357fe1895c784a0048403e80457ebf7b4449a Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 24 Mar 2014 10:51:32 +0100 Subject: [PATCH] OO-1036: copy the quota from source to target root folder of the copied course --- src/main/java/org/olat/course/CourseFactory.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/org/olat/course/CourseFactory.java b/src/main/java/org/olat/course/CourseFactory.java index 3d2e32dd58c..c3e749f4db4 100644 --- a/src/main/java/org/olat/course/CourseFactory.java +++ b/src/main/java/org/olat/course/CourseFactory.java @@ -41,6 +41,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.zip.ZipOutputStream; import org.apache.poi.util.IOUtils; +import org.olat.admin.quota.QuotaConstants; import org.olat.basesecurity.BaseSecurity; import org.olat.basesecurity.BaseSecurityManager; import org.olat.basesecurity.Constants; @@ -94,8 +95,11 @@ import org.olat.core.util.nodes.INode; import org.olat.core.util.resource.OresHelper; import org.olat.core.util.tree.TreeVisitor; import org.olat.core.util.tree.Visitor; +import org.olat.core.util.vfs.Quota; +import org.olat.core.util.vfs.QuotaManager; import org.olat.core.util.vfs.VFSConstants; import org.olat.core.util.vfs.VFSContainer; +import org.olat.core.util.vfs.VFSManager; import org.olat.core.util.vfs.VFSStatus; import org.olat.core.util.xml.XStreamHelper; import org.olat.course.archiver.ScoreAccountingHelper; @@ -522,6 +526,17 @@ public class CourseFactory extends BasicManager { DBFactory.getInstance(false).intermediateCommit(); } } + + // set quotas + Quota sourceQuota = VFSManager.isTopLevelQuotaContainer(sourceCourse.getCourseFolderContainer()); + Quota targetQuota = VFSManager.isTopLevelQuotaContainer(targetCourse.getCourseFolderContainer()); + if (sourceQuota != null && targetQuota != null) { + QuotaManager qm = QuotaManager.getInstance(); + if (sourceQuota.getQuotaKB() != qm.getDefaultQuota(QuotaConstants.IDENTIFIER_DEFAULT_COURSE).getQuotaKB()) { + targetQuota = qm.createQuota(targetQuota.getPath(), sourceQuota.getQuotaKB(), sourceQuota.getUlLimitKB()); + qm.setCustomQuotaKB(targetQuota); + } + } } return targetRes; } -- GitLab