range_id); $user = User::find($user_id); if (($resource instanceof Resource) && ($user instanceof User)) { return true; } elseif ($user instanceof User) { //Check global permissions: return ResourceManager::userHasGlobalPermission( $user, 'admin' ); } return false; } public function isReadable(string $user_id): bool { if ($user_id == 'nobody') { return false; } //Get the resource object: $resource = Resource::find($this->range_id); $user = User::find($user_id); if (($resource instanceof Resource) && ($user instanceof User)) { return true; } elseif ($user instanceof User) { //Check global permissions: return ResourceManager::userHasGlobalPermission( $user, 'admin' ); } return false; } public function isWritable(string $user_id): bool { $user = User::find($user_id); //Check global permissions: The user has to be //a global resource admin or a root user. return ResourceManager::userHasGlobalPermission( $user, 'admin' ); } public function isEditable(string $user_id): bool { //Thou shalt not edit ResourceFolder folder types! return false; } public function isSubfolderAllowed(string $user_id): bool { //Furthermore, thou shalt not create subfolders in a Resource folder! return false; } public function getSubfolder() { //No subfolders allowed, resulting in: return []; } public function setDataFromEditTemplate(array|ArrayAccess $folderdata): FolderType|MessageBox { return MessageBox::error( _('Ressourcenordner dürfen nicht geändert werden!') ); } public function createSubfolder(FolderType $foldertype): ?FolderType { //No subfolders allowed, resulting in: return null; } public function deleteSubfolder(string $subfolder_id): bool { //No subfolders allowed, resulting in: return false; } public function isFileDownloadable(FileRef $file_ref, string $user_id): bool { return $this->isReadable($user_id); } public function isFileEditable(FileRef $file_ref, string $user_id): bool { return $this->isWritable($user_id); } public function isFileWritable(FileRef $file_ref, string $user_id): bool { return $this->isWritable($user_id); } }