Index: lams_admin/conf/language/lams/ApplicationResources.properties
===================================================================
diff -u -raec96466d0f510ff3a0acfc5651f485bb1b477d9 -rca75b4c508f9d195245818cdd4574f335e75d9c6
--- lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision aec96466d0f510ff3a0acfc5651f485bb1b477d9)
+++ lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision ca75b4c508f9d195245818cdd4574f335e75d9c6)
@@ -641,6 +641,7 @@
config.qb.qti.enable =Enable QTI question import/export
config.qb.word.enable =Enable Word question import
config.qb.collections.create.enable =Allow creating custom collections
+config.qb.collections.transfer.enable =Allow question transfer between collections
config.qb.monitors.read.only =Force read-only access for monitors
config.qb.stats.min.participants =Minimum test participant number to calculate question indexes
config.qb.stats.group.size =Percent of participants in top/bottom performers group (default: 27)
Index: lams_central/src/java/org/lamsfoundation/lams/web/qb/QbCollectionController.java
===================================================================
diff -u -rfe0a5324254ef622171304b5a01341d99e7b991a -rca75b4c508f9d195245818cdd4574f335e75d9c6
--- lams_central/src/java/org/lamsfoundation/lams/web/qb/QbCollectionController.java (.../QbCollectionController.java) (revision fe0a5324254ef622171304b5a01341d99e7b991a)
+++ lams_central/src/java/org/lamsfoundation/lams/web/qb/QbCollectionController.java (.../QbCollectionController.java) (revision ca75b4c508f9d195245818cdd4574f335e75d9c6)
@@ -37,6 +37,8 @@
import org.lamsfoundation.lams.qb.service.IQbService;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.util.CommonConstants;
+import org.lamsfoundation.lams.util.Configuration;
+import org.lamsfoundation.lams.util.ConfigurationKeys;
import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.util.WebUtil;
import org.lamsfoundation.lams.web.session.SessionManager;
@@ -74,6 +76,9 @@
Collectors.toMap(QbCollection::getUid, c -> qbService.getCountCollectionQuestions(c.getUid(), null)));
model.addAttribute("questionCount", questionCount);
+ model.addAttribute("createCollectionAllowed",
+ Configuration.getAsBoolean(ConfigurationKeys.QB_COLLECTIONS_CREATE_ALLOW));
+
return "qb/collectionList";
}
@@ -169,12 +174,18 @@
@ResponseBody
public void addCollectionQuestion(@RequestParam long targetCollectionUid, @RequestParam boolean copy,
@RequestParam long qbQuestionUid) {
+ if (!Configuration.getAsBoolean(ConfigurationKeys.QB_COLLECTIONS_TRANSFER_ALLOW)) {
+ throw new SecurityException("Transfering questions between collections is disabled");
+ }
qbService.addQuestionToCollection(targetCollectionUid, qbQuestionUid, copy);
}
@RequestMapping("/addCollection")
@ResponseBody
public void addCollection(@RequestParam String name) {
+ if (!Configuration.getAsBoolean(ConfigurationKeys.QB_COLLECTIONS_CREATE_ALLOW)) {
+ throw new SecurityException("New collections are disabled");
+ }
qbService.addCollection(getUserId(), name);
}
Index: lams_central/src/java/org/lamsfoundation/lams/web/qb/QbStatsController.java
===================================================================
diff -u -r0952bdcd231fe03cb52b8d821bc6cc1882b7c369 -rca75b4c508f9d195245818cdd4574f335e75d9c6
--- lams_central/src/java/org/lamsfoundation/lams/web/qb/QbStatsController.java (.../QbStatsController.java) (revision 0952bdcd231fe03cb52b8d821bc6cc1882b7c369)
+++ lams_central/src/java/org/lamsfoundation/lams/web/qb/QbStatsController.java (.../QbStatsController.java) (revision ca75b4c508f9d195245818cdd4574f335e75d9c6)
@@ -31,6 +31,8 @@
import org.lamsfoundation.lams.qb.model.QbCollection;
import org.lamsfoundation.lams.qb.service.IQbService;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
+import org.lamsfoundation.lams.util.Configuration;
+import org.lamsfoundation.lams.util.ConfigurationKeys;
import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.web.session.SessionManager;
import org.lamsfoundation.lams.web.util.AttributeNames;
@@ -71,6 +73,9 @@
model.addAttribute("permanentRemovePossible",
permanentRemove ? qbService.removeQuestionPossible(qbQuestionUid) : false);
+ model.addAttribute("transferAllowed",
+ Configuration.getAsBoolean(ConfigurationKeys.QB_COLLECTIONS_TRANSFER_ALLOW));
+
return "qb/stats";
}
Index: lams_central/web/qb/collection.jsp
===================================================================
diff -u -rba4cb0681d080596444ca44c644a8ea0fdd8e743 -rca75b4c508f9d195245818cdd4574f335e75d9c6
--- lams_central/web/qb/collection.jsp (.../collection.jsp) (revision ba4cb0681d080596444ca44c644a8ea0fdd8e743)
+++ lams_central/web/qb/collection.jsp (.../collection.jsp) (revision ca75b4c508f9d195245818cdd4574f335e75d9c6)
@@ -13,6 +13,10 @@