getPermissions(); $p = ''; if ($info->isShared()) { $p .= 'S'; } if ($permissions & Constants::PERMISSION_SHARE) { $p .= 'R'; } if ($info->isMounted()) { $p .= 'M'; } if ($permissions & Constants::PERMISSION_READ) { $p .= 'G'; } if ($permissions & Constants::PERMISSION_DELETE) { $p .= 'D'; } if ($permissions & Constants::PERMISSION_UPDATE) { $p .= 'NV'; // Renameable, Movable } // since we always add update permissions for the root of movable mounts // we need to check the shared cache item directly to determine if it's writable $storage = $info->getStorage(); if ($info->getInternalPath() === '' && $info->getMountPoint() instanceof IMovableMount) { $rootEntry = $storage->getCache()->get(''); $isWritable = $rootEntry->getPermissions() & Constants::PERMISSION_UPDATE; } else { $isWritable = $permissions & Constants::PERMISSION_UPDATE; } if ($info->getType() === FileInfo::TYPE_FILE) { if ($isWritable) { $p .= 'W'; } } else { if ($permissions & Constants::PERMISSION_CREATE) { $p .= 'CK'; } } return $p; } }