range_id); $assignment = $solution->assignment; return $assignment->checkEditPermission() || $assignment->checkViewPermission() && $assignment->releaseStatus($user_id) >= 2; } public function isWritable(string $user_id): bool { $solution = VipsSolution::find($this->range_id); $assignment = $solution->assignment; return $assignment->checkEditPermission(); } public function isEditable(string $user_id): bool { return false; } public function isSubfolderAllowed(string $user_id): bool { return false; } public function isFileDownloadable(string $file_ref_id, string $user_id): bool { return $this->isReadable($user_id); } public function isFileEditable(string $file_ref_id, string $user_id): bool { return $this->isWritable($user_id); } public function isFileWritable(string $file_ref_id, string $user_id): bool { return $this->isWritable($user_id); } }