From 20b7c6860c0a58d3dcb0c4dfb1bce804c6b55edf Mon Sep 17 00:00:00 2001 From: uhensler <none@none> Date: Wed, 17 Jan 2018 12:47:10 +0100 Subject: [PATCH] OO-3116: Pool admin rights fine tuning --- .../java/org/olat/modules/qpool/QuestionPoolModule.java | 2 +- .../qpool/security/ProcesslessSecurityCallback.java | 6 +++++- .../qpool/security/ReviewProcessSecurityCallback.java | 7 +++++-- .../olat/modules/qpool/ui/_i18n/LocalStrings_de.properties | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/olat/modules/qpool/QuestionPoolModule.java b/src/main/java/org/olat/modules/qpool/QuestionPoolModule.java index b17f3848e48..1aef046ff2b 100644 --- a/src/main/java/org/olat/modules/qpool/QuestionPoolModule.java +++ b/src/main/java/org/olat/modules/qpool/QuestionPoolModule.java @@ -89,7 +89,7 @@ public class QuestionPoolModule extends AbstractSpringModule implements ConfigOn private boolean poolAdminAllowedToEditMetadata = false; private boolean poolAdminAllowedToEditStatus = false; - private boolean poolAdminAllowedToConfigReviewProcess = true; + private boolean poolAdminAllowedToConfigReviewProcess = false; private boolean poolAdminAllowedToConfigTaxonomy = true; private boolean poolAdminAllowedToConfigPools = true; private boolean poolAdminAllowedToConfigItemTypes = true; diff --git a/src/main/java/org/olat/modules/qpool/security/ProcesslessSecurityCallback.java b/src/main/java/org/olat/modules/qpool/security/ProcesslessSecurityCallback.java index 3daafcff2dd..656e2a66344 100644 --- a/src/main/java/org/olat/modules/qpool/security/ProcesslessSecurityCallback.java +++ b/src/main/java/org/olat/modules/qpool/security/ProcesslessSecurityCallback.java @@ -81,7 +81,11 @@ public class ProcesslessSecurityCallback implements QuestionItemSecurityCallback @Override public boolean canRemoveTaxonomy() { - return admin || itemView.isAuthor() || itemView.isEditableInPool() || itemView.isEditableInShare(); + return admin + || itemView.isAuthor() + || itemView.isEditableInPool() + || itemView.isEditableInShare() + || (poolAdmin && qpoolModule.isPoolAdminAllowedToEditMetadata()); } @Override diff --git a/src/main/java/org/olat/modules/qpool/security/ReviewProcessSecurityCallback.java b/src/main/java/org/olat/modules/qpool/security/ReviewProcessSecurityCallback.java index cb002e9ef6d..9ea9949ad57 100644 --- a/src/main/java/org/olat/modules/qpool/security/ReviewProcessSecurityCallback.java +++ b/src/main/java/org/olat/modules/qpool/security/ReviewProcessSecurityCallback.java @@ -92,7 +92,10 @@ public class ReviewProcessSecurityCallback implements QuestionItemSecurityCallba @Override public boolean canRemoveTaxonomy() { return QuestionStatus.draft.equals(itemView.getQuestionStatus()) - && (admin || itemView.isAuthor() || itemView.isManager()); + && (admin + || itemView.isAuthor() + || itemView.isManager() + || (poolAdmin && qpoolModule.isPoolAdminAllowedToEditMetadata())); } @Override @@ -152,7 +155,7 @@ public class ReviewProcessSecurityCallback implements QuestionItemSecurityCallba @Override public boolean canRemove() { return questionItemSource.isRemoveEnabled() - && (admin || itemView.isAuthor()); + && (admin || itemView.isAuthor() || (poolAdmin && qpoolModule.isPoolAdminAllowedToEditStatus())); } @Override diff --git a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties index 1280d4f3bc5..ddf6d527066 100644 --- a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties @@ -150,7 +150,7 @@ previous=Vorherige process.activate.not.reviewable.description=Fragen im Format 'QTI 1.2' k\u00F6nnen nicht beurteilt werden. Bitte konvertieren Sie die Frage zuerst in das Format 'QTI 2.1'. process.activate.review=Frage beurteilen process.activate.review.description=Die Frage befindet sich im Status 'Review'. Bitte \u00FCberpr\u00FCfen Sie die Frage sorgf\u00E4ltig auf fachlich und eignungstechnische Korrektheit und geben Sie anschliessend mit der untenstehenden Schaltfl\u00E4che Ihre Bewertung ab. -process.activate.start.review=Beurteilungsprozes starten +process.activate.start.review=Beurteilungsprozess starten process.activate.start.review.description=Diese Frage befindet sich im Status 'Draft'. Wenn die Frage fertig erstellt ist, k\u00F6nnen Sie den Beurteilungsprozess starten. Die Frage kann anschliessend nicht mehr bearbeitet werden. process.comment=Kommentar process.confirm.endOfLife=Die Frage kann nach dem Setzen des "$\:lifecycle.status.endOfLife" nicht mehr verwendet werden .Wollen Sie die Frage "{0}" wirklich auf End of life setzen? -- GitLab