Skip to content
Snippets Groups Projects
Commit 29726373 authored by uhensler's avatar uhensler
Browse files

OO-3116: Allow only authors to create tests

parent b5c65f50
No related branches found
No related tags found
No related merge requests found
......@@ -19,6 +19,8 @@
*/
package org.olat.modules.qpool;
import org.olat.core.id.Roles;
/**
*
* Initial date: 05.12.2017<br>
......@@ -27,10 +29,8 @@ package org.olat.modules.qpool;
*/
public interface QPoolSecurityCallback {
public void setAdmin(boolean admin);
public void setRoles(Roles roles);
public void setPoolAdmin(boolean poolAdmin);
boolean canUseCollections();
boolean canUsePools();
......@@ -38,6 +38,8 @@ public interface QPoolSecurityCallback {
boolean canUseGroups();
boolean canUseReviewProcess();
boolean canCreateTest();
boolean canEditAllQuestions();
......
......@@ -59,8 +59,7 @@ public class QPoolSecurityCallbackFactory {
public QPoolSecurityCallback createQPoolSecurityCallback(Roles roles) {
QPoolSecurityCallback securityCallback = CoreSpringFactory.getImpl(QPoolSecurityCallbackImpl.class);
securityCallback.setAdmin(roles.isOLATAdmin());
securityCallback.setPoolAdmin(roles.isPoolAdmin());
securityCallback.setRoles(roles);
return securityCallback;
}
......
......@@ -19,6 +19,7 @@
*/
package org.olat.modules.qpool.security;
import org.olat.core.id.Roles;
import org.olat.modules.qpool.QPoolSecurityCallback;
import org.olat.modules.qpool.QuestionPoolModule;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -37,18 +38,16 @@ public class QPoolSecurityCallbackImpl implements QPoolSecurityCallback {
private boolean admin = false;
private boolean poolAdmin = false;
private boolean olatAuthor = false;
@Autowired
private QuestionPoolModule qpoolModule;
@Override
public void setAdmin(boolean admin) {
this.admin = admin;
}
@Override
public void setPoolAdmin(boolean poolAdmin) {
this.poolAdmin = poolAdmin;
public void setRoles(Roles roles) {
this.admin = roles.isOLATAdmin();
this.poolAdmin = roles.isPoolAdmin();
this.olatAuthor = roles.isAuthor();
}
@Override
......@@ -71,6 +70,12 @@ public class QPoolSecurityCallbackImpl implements QPoolSecurityCallback {
return qpoolModule.isReviewProcessEnabled();
}
@Override
public boolean canCreateTest() {
return admin || olatAuthor;
}
@Override
public boolean canEditAllQuestions() {
return admin || (poolAdmin && qpoolModule.isPoolAdminAllowedToEditMetadata());
......@@ -105,5 +110,4 @@ public class QPoolSecurityCallbackImpl implements QPoolSecurityCallback {
public boolean canConfigLicences() {
return admin || (poolAdmin && qpoolModule.isPoolAdminAllowedToConfigLicenses());
}
}
......@@ -224,7 +224,9 @@ public class QuestionListController extends AbstractItemListController implement
if (getSecurityCallback().canUseCollections()) {
list = uifactory.addFormLink("list", formLayout, Link.BUTTON);
}
createTest = uifactory.addFormLink("create.test", formLayout, Link.BUTTON);
if (getSecurityCallback().canCreateTest()) {
createTest = uifactory.addFormLink("create.test", formLayout, Link.BUTTON);
}
exportItem = uifactory.addFormLink("export.item", formLayout, Link.BUTTON);
if (getSecurityCallback().canUsePools() || getSecurityCallback().canUseGroups()) {
shareItem = uifactory.addFormLink("share.item", formLayout, Link.BUTTON);
......
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