From fcc38b04376e7d9d58572b3b6d55eacf89cc8cee Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 21 Mar 2017 14:32:35 +0100
Subject: [PATCH] OO-2631: fix default quota for group and course folder

---
 .../vfs/callbacks/FullAccessWithLazyQuotaCallback.java | 10 ++++++----
 .../java/org/olat/course/PersistingCourseImpl.java     |  3 ++-
 .../org/olat/group/GroupfoldersWebDAVMergeSource.java  |  3 ++-
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/olat/core/util/vfs/callbacks/FullAccessWithLazyQuotaCallback.java b/src/main/java/org/olat/core/util/vfs/callbacks/FullAccessWithLazyQuotaCallback.java
index 64cb697e669..87612acda81 100644
--- a/src/main/java/org/olat/core/util/vfs/callbacks/FullAccessWithLazyQuotaCallback.java
+++ b/src/main/java/org/olat/core/util/vfs/callbacks/FullAccessWithLazyQuotaCallback.java
@@ -19,7 +19,6 @@
  */
 package org.olat.core.util.vfs.callbacks;
 
-import org.olat.admin.quota.QuotaConstants;
 import org.olat.core.commons.services.notifications.SubscriptionContext;
 import org.olat.core.util.vfs.Quota;
 import org.olat.core.util.vfs.QuotaManager;
@@ -33,15 +32,18 @@ import org.olat.core.util.vfs.QuotaManager;
 public class FullAccessWithLazyQuotaCallback extends FullAccessWithQuotaCallback {
 	
 	private final String folderPath;
+	private final String defaultQuota;
 	
-	public FullAccessWithLazyQuotaCallback(String folderPath) {
+	public FullAccessWithLazyQuotaCallback(String folderPath, String defaultQuota) {
 		super(null);
 		this.folderPath = folderPath;
+		this.defaultQuota = defaultQuota;
 	}
 	
-	public FullAccessWithLazyQuotaCallback(String folderPath, SubscriptionContext subscriptionContext) {
+	public FullAccessWithLazyQuotaCallback(String folderPath, String defaultQuota, SubscriptionContext subscriptionContext) {
 		super(null, subscriptionContext);
 		this.folderPath = folderPath;
+		this.defaultQuota = defaultQuota;
 	}
 	
 	@Override
@@ -50,7 +52,7 @@ public class FullAccessWithLazyQuotaCallback extends FullAccessWithQuotaCallback
 			QuotaManager qm = QuotaManager.getInstance();
 			Quota q = qm.getCustomQuota(folderPath);
 			if (q == null) {
-				Quota defQuota = qm.getDefaultQuota(QuotaConstants.IDENTIFIER_DEFAULT_GROUPS);
+				Quota defQuota = qm.getDefaultQuota(defaultQuota);
 				q = QuotaManager.getInstance().createQuota(folderPath, defQuota.getQuotaKB(), defQuota.getUlLimitKB());
 			}
 			super.setQuota(q);
diff --git a/src/main/java/org/olat/course/PersistingCourseImpl.java b/src/main/java/org/olat/course/PersistingCourseImpl.java
index 01b34af8ec3..8b3374444af 100644
--- a/src/main/java/org/olat/course/PersistingCourseImpl.java
+++ b/src/main/java/org/olat/course/PersistingCourseImpl.java
@@ -28,6 +28,7 @@ package org.olat.course;
 import java.io.File;
 import java.io.Serializable;
 
+import org.olat.admin.quota.QuotaConstants;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.modules.bc.vfs.OlatRootFolderImpl;
 import org.olat.core.commons.persistence.DBFactory;
@@ -247,7 +248,7 @@ public class PersistingCourseImpl implements ICourse, OLATResourceable, Serializ
 					"could not create course's coursefolder path:" + fCourseFolder.getAbsolutePath(), null);
 		}
 		
-		FullAccessWithQuotaCallback secCallback = new FullAccessWithLazyQuotaCallback(isolatedCourseFolder.getRelPath());
+		FullAccessWithQuotaCallback secCallback = new FullAccessWithLazyQuotaCallback(isolatedCourseFolder.getRelPath(), QuotaConstants.IDENTIFIER_DEFAULT_COURSE);
 		isolatedCourseFolder.setLocalSecurityCallback(secCallback);
 		return isolatedCourseFolder;
 	}
diff --git a/src/main/java/org/olat/group/GroupfoldersWebDAVMergeSource.java b/src/main/java/org/olat/group/GroupfoldersWebDAVMergeSource.java
index d0e4179b3fb..d6ed5aad7bd 100644
--- a/src/main/java/org/olat/group/GroupfoldersWebDAVMergeSource.java
+++ b/src/main/java/org/olat/group/GroupfoldersWebDAVMergeSource.java
@@ -24,6 +24,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import org.olat.admin.quota.QuotaConstants;
 import org.olat.collaboration.CollaborationManager;
 import org.olat.collaboration.CollaborationTools;
 import org.olat.core.CoreSpringFactory;
@@ -134,7 +135,7 @@ class GroupfoldersWebDAVMergeSource extends WebDAVMergeSource {
 		VFSSecurityCallback secCallback;
 		if(writeAccess) {
 			SubscriptionContext sc = new SubscriptionContext(group, "toolfolder");
-			secCallback = new FullAccessWithLazyQuotaCallback(folderPath, sc);
+			secCallback = new FullAccessWithLazyQuotaCallback(folderPath, QuotaConstants.IDENTIFIER_DEFAULT_GROUPS, sc);
 		} else {
 			secCallback = new ReadOnlyCallback();
 		}
-- 
GitLab