Exemple #1
0
 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);
                 }
             }
         }
     }
 }