range_id); foreach ($exercise->tests as $test) { foreach ($test->assignments as $assignment) { if ($assignment->checkEditPermission($user_id) || $assignment->checkViewPermission($user_id) && ($assignment->checkAccess($user_id) || $assignment->releaseStatus($user_id) >= 3)) { return true; } } } return false; } /** * @param string $user_id * @return bool */ public function isWritable($user_id) { $exercise = Exercise::find($this->range_id); foreach ($exercise->tests as $test) { foreach ($test->assignments as $assignment) { if ($assignment->checkEditPermission($user_id)) { return true; } } } return false; } /** * @param string $user_id * @return bool */ public function isEditable($user_id) { return false; } /** * @param string $user_id * @return bool */ public function isSubfolderAllowed($user_id) { return false; } /** * @param FileRef|string $fileref_or_id * @param string $user_id * @return bool */ public function isFileDownloadable($fileref_or_id, $user_id) { return $this->isReadable($user_id); } /** * @param FileRef|string $fileref_or_id * @param string $user_id * @return bool */ public function isFileEditable($fileref_or_id, $user_id) { return $this->isWritable($user_id); } /** * @param FileRef|string $fileref_or_id * @param string $user_id * @return bool */ public function isFileWritable($fileref_or_id, $user_id) { return $this->isWritable($user_id); } }