public function add() { $filesystem = new Filesystem(); if ($this->request->request->has('currentFolder')) { $node = Node::getByID($this->request->request->get('currentFolder')); if (is_object($node) && $node instanceof FileFolder) { $folder = $node; } } if (!isset($folder)) { $folder = $filesystem->getRootFolder(); } $permissions = new \Permissions($folder); $error = $this->app->make('error'); $response = new EditResponse(); $response->setError($error); if (!$permissions->canAddTreeSubNode()) { $error->add(t('You do not have permission to add a folder here.')); } if (!$error->has()) { $folder = $filesystem->addFolder($folder, $this->request->request->get('folderName')); $response->setMessage(t('Folder added.')); $response->setAdditionalDataAttribute('folder', $folder); } $response->outputJSON(); }
protected function migrateFileManagerPermissions() { $this->output(t('Migrating file manager permissions...')); $filesystem = new Filesystem(); $root = $filesystem->getRootFolder(); $this->migrateFileSetManagerPermissions(0, $root); // Now let's look for any file sets that have custom permissions $r = $this->connection->executeQuery('select * from FileSets where fsOverrideGlobalPermissions = 1'); while ($row = $r->fetch()) { $folder = FileFolder::getNodeByName($row['fsName']); if (!is_object($folder)) { $folder = $filesystem->addFolder($root, $row['fsName']); } $this->migrateFileSetManagerPermissions($row['fsID'], $folder); // Now we move all the files that were in that set into this folder. $r2 = $this->connection->executeQuery('select fID from FileSetFiles where fsID = ?', array($row['fsID'])); while ($row2 = $r2->fetch()) { $f = \File::getByID($row2['fID']); if (is_object($f)) { $node = $f->getFileNodeObject(); if (is_object($node)) { $node->move($folder); } } } } }