diff --git a/Services/Tracking/classes/class.ilLearningProgressBaseGUI.php b/Services/Tracking/classes/class.ilLearningProgressBaseGUI.php index f95c9ddeb779..0ce4b1fd07f1 100644 --- a/Services/Tracking/classes/class.ilLearningProgressBaseGUI.php +++ b/Services/Tracking/classes/class.ilLearningProgressBaseGUI.php @@ -1,7 +1,5 @@ getRefId()); + $has_access = false; + if ($this->getMode() === self::LP_CONTEXT_REPOSITORY) { + $has_access = ilLearningProgressAccess::checkAccess($this->getRefId()); + } elseif ($this->getMode() === self::LP_CONTEXT_ADMINISTRATION) { + $has_access = ilObjUserTracking::_hasLearningProgressOtherUsers(); + } elseif ($this->getMode() === self::LP_CONTEXT_USER_FOLDER) { + $has_access = $this->access->checkAccess('read', '', $this->getRefId()); + } elseif ($this->getMode() === self::LP_CONTEXT_PERSONAL_DESKTOP) { + $has_access = ilObjUserTracking::_hasLearningProgressLearner() || ilObjUserTracking::_hasLearningProgressOtherUsers(); + } elseif ($this->getMode() === self::LP_CONTEXT_ORG_UNIT) { + $has_access = ilObjOrgUnitAccess::_checkAccessToUserLearningProgress($this->getRefId(), $this->getUserId()); + } if ($has_access) { $this->handleCommand(); - } - if (!$has_access) { + } else { $this->error->raiseError($this->lng->txt('permission_denied'), $this->error->WARNING); } }