From 060fbd1a1aaf38108e2eddc80231629df9f8f499 Mon Sep 17 00:00:00 2001 From: Fabian Schmid Date: Tue, 23 Jul 2024 09:19:10 +0200 Subject: [PATCH] [FIX] Undefined array key "operation" when creating series #326 --- classes/class.ilObjOpenCastAccess.php | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/classes/class.ilObjOpenCastAccess.php b/classes/class.ilObjOpenCastAccess.php index 5e33cfb65..27577541a 100755 --- a/classes/class.ilObjOpenCastAccess.php +++ b/classes/class.ilObjOpenCastAccess.php @@ -180,7 +180,6 @@ public static function checkAction( ): bool { global $DIC; - if (!$user instanceof \srag\Plugins\Opencast\Model\User\xoctUser) { $user = xoctUser::getInstance($DIC->user()); } @@ -192,45 +191,29 @@ public static function checkAction( case self::ACTION_EDIT_OWNER: return self::hasPermission(self::PERMISSION_EDIT_VIDEOS, $ref_id) - && $event->getProcessingState() != Event::STATE_ENCODING && ilObjOpenCast::_getParentCourseOrGroup($ref_id) && $objectSettings->getPermissionPerClip(); case self::ACTION_SHARE_EVENT: - return - (self::hasPermission( - self::PERMISSION_EDIT_VIDEOS, - $ref_id - ) && $objectSettings->getPermissionPerClip()) - || ($opencastDIC->acl_utils()->isUserOwnerOfEvent($user, $event) - && $objectSettings->getPermissionAllowSetOwn() - && $event->getProcessingState() != Event::STATE_ENCODING - && $event->getProcessingState() != Event::STATE_FAILED); case self::ACTION_CUT: return self::hasPermission(self::PERMISSION_EDIT_VIDEOS, $ref_id) && $event->hasPreviews() - && $event->getProcessingState() != Event::STATE_FAILED; case self::ACTION_DELETE_EVENT: return (self::hasPermission(self::PERMISSION_EDIT_VIDEOS) || ((self::hasPermission(self::PERMISSION_UPLOAD) || self::hasPermission(self::PERMISSION_RECORD)) && $opencastDIC->acl_utils()->isUserOwnerOfEvent($user, $event))) - && $event->getProcessingState() != Event::STATE_ENCODING; case self::ACTION_EDIT_EVENT: return (self::hasPermission(self::PERMISSION_EDIT_VIDEOS) || ((self::hasPermission(self::PERMISSION_UPLOAD) || self::hasPermission(self::PERMISSION_RECORD)) && $opencastDIC->acl_utils()->isUserOwnerOfEvent($user, $event))) - && $event->getProcessingState() != Event::STATE_ENCODING - && $event->getProcessingState() != Event::STATE_FAILED && (!$event->isScheduled() || PluginConfig::getConfig( PluginConfig::F_SCHEDULED_METADATA_EDITABLE ) != PluginConfig::NO_METADATA); case self::ACTION_SET_ONLINE_OFFLINE: return self::hasPermission(self::PERMISSION_EDIT_VIDEOS) - && $event->getProcessingState() != Event::STATE_ENCODING - && $event->getProcessingState() != Event::STATE_FAILED; case self::ACTION_ADD_EVENT: return self::hasPermission(self::PERMISSION_UPLOAD); @@ -259,7 +242,6 @@ public static function checkAction( || (/* (self::hasPermission(self::PERMISSION_DOWNLOAD) || self::hasPermission(self::PERMISSION_UPLOAD)) && */ $opencastDIC->acl_utils()->isUserOwnerOfEvent($user, $event) )) - && $event->getProcessingState() == Event::STATE_SUCCEEDED; case self::ACTION_SCHEDULE_EVENT: return self::hasPermission(self::PERMISSION_SCHEDULE); @@ -375,7 +357,7 @@ public static function isActionAllowedForRole(string $action, string $role, ?int { global $DIC; $ref_id = $ref_id ?? (int) ($DIC->http()->request()->getQueryParams()['ref_id'] ?? 0); - $prefix = in_array($action, self::$custom_rights) ? "rep_robj_xoct_perm_" : ""; + $prefix = in_array($action, self::$custom_rights, true) ? "rep_robj_xoct_perm_" : ""; if (!$parent_obj = ilObjOpenCast::_getParentCourseOrGroup($ref_id)) { return false; } @@ -386,7 +368,7 @@ public static function isActionAllowedForRole(string $action, string $role, ?int ); foreach ($active_operations as $op_id) { $operation = $DIC->rbac()->review()->getOperation($op_id); - if ($operation['operation'] == $prefix . $action) { + if (($operation['operation'] ?? null) === $prefix . $action) { return true; } }