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

OO-3323: Pool manager and pool owner should be able to remove question from...

OO-3323: Pool manager and pool owner should be able to remove question from pool, pool manager and group member should be able to remove question from group
parent b95110f0
No related branches found
No related tags found
No related merge requests found
......@@ -19,6 +19,7 @@
*/
package org.olat.modules.qpool.security;
import org.olat.modules.qpool.QPoolService;
import org.olat.modules.qpool.QuestionItemSecurityCallback;
import org.olat.modules.qpool.QuestionItemView;
import org.olat.modules.qpool.QuestionPoolModule;
......@@ -44,6 +45,8 @@ public class ProcesslessSecurityCallback implements QuestionItemSecurityCallback
@Autowired
private QuestionPoolModule qpoolModule;
@Autowired
private QPoolService qpoolService;
@Override
public void setQuestionItemView(QuestionItemView itemView) {
......@@ -161,7 +164,9 @@ public class ProcesslessSecurityCallback implements QuestionItemSecurityCallback
@Override
public boolean canRemove() {
return questionItemSource.isRemoveEnabled()
&& (admin || itemView.isAuthor());
|| admin
|| poolAdmin
|| itemView.isAuthor();
}
@Override
......
......@@ -160,8 +160,10 @@ public class ReviewProcessSecurityCallback implements QuestionItemSecurityCallba
@Override
public boolean canRemove() {
return questionItemSource.isRemoveEnabled()
&& (admin || itemView.isAuthor() || (poolAdmin && qpoolModule.isPoolAdminAllowedToEditStatus()));
return questionItemSource.isRemoveEnabled()
|| admin
|| poolAdmin
|| itemView.isAuthor();
}
@Override
......
......@@ -46,6 +46,10 @@ public class PoolItemsSource extends DefaultItemsSource {
getDefaultParams().setPoolKey(pool.getKey());
}
public Pool getPool() {
return pool;
}
@Override
public void removeFromSource(List<QuestionItemShort> items) {
qpoolService.removeItemsInPool(items, pool);
......
......@@ -26,7 +26,6 @@ import org.olat.core.gui.components.tree.GenericTreeNode;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.id.Identity;
import org.olat.core.id.Roles;
import org.olat.core.id.context.BusinessControlFactory;
import org.olat.group.BusinessGroup;
import org.olat.group.BusinessGroupService;
......@@ -93,11 +92,6 @@ public class BusinessGroupTreeNode extends GenericTreeNode implements Controller
private boolean isShareAdmin(UserRequest ureq, BusinessGroup group) {
Identity identity = ureq.getIdentity();
Roles roles = ureq.getUserSession().getRoles();
return roles != null &&
( roles.isOLATAdmin()
|| roles.isPoolAdmin()
|| businessGroupService.isIdentityInBusinessGroup(identity, group.getKey(), true, false, null)
);
return businessGroupService.isIdentityInBusinessGroup(identity, group.getKey(), true, false, null);
}
}
......@@ -26,7 +26,6 @@ import org.olat.core.gui.components.tree.GenericTreeNode;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.id.Identity;
import org.olat.core.id.Roles;
import org.olat.core.id.context.BusinessControlFactory;
import org.olat.modules.qpool.Pool;
import org.olat.modules.qpool.QPoolSecurityCallback;
......@@ -79,7 +78,7 @@ public class PoolTreeNode extends GenericTreeNode implements ControllerTreeNode
ureq.getIdentity(),
ureq.getUserSession().getRoles(),
pool);
source.setRemoveEnabled(isPoolAdmin(ureq, pool));
source.setRemoveEnabled(isRemoveEnabled(ureq, pool));
WindowControl swControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ureq, pool, null,
wControl, true);
questionsCtrl = new QuestionsController(ureq, swControl, stackPanel, source, securityCallback,
......@@ -90,15 +89,9 @@ public class PoolTreeNode extends GenericTreeNode implements ControllerTreeNode
return questionsCtrl;
}
private boolean isPoolAdmin(UserRequest ureq, Pool pool) {
private boolean isRemoveEnabled(UserRequest ureq, Pool pool) {
Identity identity = ureq.getIdentity();
Roles roles = ureq.getUserSession().getRoles();
return roles != null &&
( roles.isOLATAdmin()
|| roles.isPoolAdmin()
|| pool.isPublicPool()
|| qpoolService.isOwner(identity, pool)
);
return pool.isPublicPool() || qpoolService.isOwner(identity, pool);
}
}
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