From d3d7342255f2ba09507b14b4e8f65e7a0f8e4173 Mon Sep 17 00:00:00 2001 From: Elmar Ludwig Date: Wed, 6 Jul 2022 15:35:21 +0200 Subject: draft of a simple mechanism to override the edit lock, re #887 This commit is a sketch of how to: - check the edit lock when starting an edit operation - allow overriding an active lock --- .../JsonApi/Routes/Courseware/Authority.php | 14 +++++--- .../courseware/CoursewareDefaultBlock.vue | 40 +++++++++++++++++----- .../courseware/CoursewareDefaultContainer.vue | 40 +++++++++++++++++----- 3 files changed, 73 insertions(+), 21 deletions(-) diff --git a/lib/classes/JsonApi/Routes/Courseware/Authority.php b/lib/classes/JsonApi/Routes/Courseware/Authority.php index 5e30a41..ea14090 100755 --- a/lib/classes/JsonApi/Routes/Courseware/Authority.php +++ b/lib/classes/JsonApi/Routes/Courseware/Authority.php @@ -58,10 +58,6 @@ class Authority public static function canUpdateBlock(User $user, Block $resource) { - if ($resource->isBlocked()) { - return $resource->getBlockerUserId() == $user->id; - } - return self::canUpdateContainer($user, $resource->container); } @@ -72,7 +68,15 @@ class Authority public static function canUpdateEditBlocker(User $user, $resource) { - return $resource->edit_blocker_id == '' || $resource->edit_blocker_id === $user->id; + if ($resource instanceof Block) { + return self::canUpdateBlock($user, $resource); + } else if ($resource instanceof Container) { + return self::canUpdateContainer($user, $resource); + } else if ($resource instanceof StructuralElement) { + return self::canUpdateStructuralElement($user, $resource); + } else { + return false; + } } public static function canShowContainer(User $user, Container $resource) diff --git a/resources/vue/components/courseware/CoursewareDefaultBlock.vue b/resources/vue/components/courseware/CoursewareDefaultBlock.vue index 6390265..ee33279 100755 --- a/resources/vue/components/courseware/CoursewareDefaultBlock.vue +++ b/resources/vue/components/courseware/CoursewareDefaultBlock.vue @@ -53,6 +53,15 @@ /> + +