Example #1
0
 public function update_thumbnail()
 {
     if ($this->validateAction()) {
         $fp = new Permissions($this->file);
         if ($fp->canEditFileProperties()) {
             $this->file->getVersionToModify();
             $sr = new FileEditResponse();
             $sr->setFile($this->file);
             $sr->setMessage(t('File updated successfully.'));
             $sr->outputJSON();
         } else {
             throw new Exception(t('Access Denied.'));
         }
     } else {
         throw new Exception(t('Access Denied.'));
     }
 }
Example #2
0
 public function deleteFiles()
 {
     $fr = new FileEditResponse();
     $files = array();
     if (is_array($_POST['fID'])) {
         foreach ($_POST['fID'] as $fID) {
             $f = File::getByID($fID);
             $fp = new Permissions($f);
             if ($fp->canDeleteFile()) {
                 $files[] = $f;
                 $f->delete();
             } else {
                 throw new \Exception(t('Unable to delete one or more files.'));
             }
         }
     }
     $fr->setMessage(t2('%s file deleted successfully.', '%s files deleted successfully.', count($files)));
     $fr->outputJSON();
 }
Example #3
0
 public function submit()
 {
     $requestSets = array();
     if (is_array($this->request->request->get('fsID'))) {
         $requestSets = $this->request->request->get('fsID');
     }
     if ($this->validateAction()) {
         $sets = Set::getMySets();
         foreach ($sets as $set) {
             $fsp = new \Permissions($set);
             if (in_array($set->getFileSetID(), $requestSets) && $fsp->canAddFile($this->file) && !$this->file->inFileSet($set)) {
                 // This was checked and it wasn't in the file set previously
                 $set->addFileToSet($this->file);
             }
             if ($this->file->inFileSet($set) && !in_array($set->getFileSetID(), $requestSets) && $fsp->canAddFile($this->file)) {
                 // This was not checked but it used to be in the set.
                 $set->removeFileFromSet($this->file);
             }
         }
     }
     $fsNew = $this->request->request->get('fsNew');
     $fsNewShare = $this->request->request->get('fsNewShare');
     if (is_array($fsNew)) {
         foreach ($fsNew as $i => $name) {
             if ($name) {
                 $type = $fsNewShare[$i] == 1 ? Set::TYPE_PUBLIC : Set::TYPE_PRIVATE;
                 $fs = Set::createAndGetSet($fsNew[$i], $type);
                 $fs->addFileToSet($this->file);
             }
         }
     }
     $response = new EditResponse();
     $response->setFile($this->file);
     $response->setMessage(t('File sets updated successfully.'));
     $response->outputJSON();
 }
 public function clearAttribute()
 {
     $fr = new FileEditResponse();
     $ak = FileAttributeKey::get($_REQUEST['akID']);
     if ($this->validateAction()) {
         $this->populateFiles();
         if ($this->canEdit) {
             foreach ($this->files as $f) {
                 $f->clearAttribute($ak);
                 $f->reindex();
             }
             $fr->setFiles($this->files);
             $fr->setAdditionalDataAttribute('value', false);
             $fr->setMessage(t('Attributes cleared successfully.'));
         }
     }
     $fr->outputJSON();
 }
Example #5
0
 public function submit()
 {
     if ($this->validateAction()) {
         $post = $this->request->request->all();
         $fsl = FileStorageLocation::getByID($post['fslID']);
         if (is_object($fsl)) {
             $fIDs = $post['fID'];
             if (is_array($fIDs)) {
                 foreach ($fIDs as $fID) {
                     $f = File::getByID($fID);
                     if (is_object($f)) {
                         $fp = new Permissions($f);
                         if ($fp->canEditFilePermissions()) {
                             try {
                                 $f->setFileStorageLocation($fsl);
                             } catch (\Exception $e) {
                                 $json = new \Concrete\Core\Application\EditResponse();
                                 $err = \Core::make('error');
                                 $err->add($e->getMessage());
                                 $json->setError($err);
                                 $json->outputJSON();
                             }
                         }
                     }
                 }
             }
         } else {
             $json = new \Concrete\Core\Application\EditResponse();
             $err = \Core::make('error');
             $err->add(t('Please select valid file storage location.'));
             $json->setError($err);
             $json->outputJSON();
         }
         $response = new EditResponse();
         $response->setFiles($this->files);
         $response->setMessage(t('File storage locations updated successfully.'));
         $response->outputJSON();
     }
 }
Example #6
0
 public function deleteFiles()
 {
     /** @var Token $token */
     $token = $this->app->make('token');
     if (!$token->validate('files/bulk_delete')) {
         throw new \Exception($token->getErrorMessage());
     }
     $fr = new FileEditResponse();
     $files = array();
     if (is_array($_POST['fID'])) {
         foreach ($_POST['fID'] as $fID) {
             $f = File::getByID($fID);
             $fp = new Permissions($f);
             if ($fp->canDeleteFile()) {
                 $files[] = $f;
                 $f->delete();
             } else {
                 throw new \Exception(t('Unable to delete one or more files.'));
             }
         }
     }
     $fr->setMessage(t2('%s file deleted successfully.', '%s files deleted successfully.', count($files)));
     $fr->outputJSON();
 }
Example #7
0
if (!$fp->canAddFiles()) {
    die(t("Unable to add files."));
}
$errorCode = -1;
$error = Loader::helper('validation/error');
if (isset($_POST['fID'])) {
    // we are replacing a file
    $fr = File::getByID($_REQUEST['fID']);
    $frp = new Permissions($fr);
    if (!$frp->canEditFileContents()) {
        $error->add(t('You do not have permission to modify this file.'));
    }
} else {
    $fr = false;
}
$r = new FileEditResponse();
if ($valt->validate('upload') && !$error->has()) {
    if (isset($_FILES['Filedata']) && is_uploaded_file($_FILES['Filedata']['tmp_name'])) {
        if (!$fp->canAddFileType($cf->getExtension($_FILES['Filedata']['name']))) {
            $resp = FileImporter::E_FILE_INVALID_EXTENSION;
        } else {
            $fi = new FileImporter();
            $resp = $fi->import($_FILES['Filedata']['tmp_name'], $_FILES['Filedata']['name'], $fr);
            $r->setMessage(t('File uploaded successfully.'));
            if (is_object($fr)) {
                $r->setMessage(t('File replaced successfully.'));
            }
        }
        if (!$resp instanceof \Concrete\Core\File\Version) {
            $errorCode = $resp;
        } else {
Example #8
0
 public function getJSON() {
     $files = $this->getRequestFiles();
     $r = new FileEditResponse();
     $r->setFiles($files);
     $r->outputJSON();
 }
Example #9
0
<?php

defined('C5_EXECUTE') or die("Access Denied.");
use Concrete\Core\File\EditResponse as FileEditResponse;
$u = new User();
$form = Loader::helper('form');
$dh = Core::make('helper/date');
/* @var $dh \Concrete\Core\Localization\Service\Date */
$fp = FilePermissions::getGlobal();
if (!$fp->canAccessFileManager()) {
    die(t("Unable to access the file manager."));
}
$token_validator = \Core::make('helper/validation/token');
if ($_POST['task'] == 'delete_files') {
    $fr = new FileEditResponse();
    if ($token_validator->validate('files/delete')) {
        $files = array();
        if (is_array($_POST['fID'])) {
            foreach ($_POST['fID'] as $fID) {
                $f = File::getByID($fID);
                $fp = new Permissions($f);
                if ($fp->canDeleteFile()) {
                    $files[] = $f;
                    $f->delete();
                } else {
                    throw new Exception(t('Unable to delete one or more files.'));
                }
            }
        }
        $fr->setMessage(t2('%s file deleted successfully.', '%s files deleted successfully.', count($files)));
    } else {
$fp = FilePermissions::getGlobal();
use Concrete\Core\File\EditResponse as FileEditResponse;
if (!$fp->canAddFiles()) {
    die(t("Unable to add files."));
}
$cf = Loader::helper("file");
$valt = Loader::helper('validation/token');
$error = Loader::helper('validation/error');
if (isset($_POST['fID'])) {
    // we are replacing a file
    $fr = File::getByID($_REQUEST['fID']);
} else {
    $fr = false;
}
$searchInstance = $_POST['searchInstance'];
$r = new FileEditResponse();
$files = array();
if ($valt->validate('import_incoming')) {
    if (!empty($_POST)) {
        $fi = new FileImporter();
        foreach ($_POST as $k => $name) {
            if (preg_match("#^send_file#", $k)) {
                if (!$fp->canAddFileType($cf->getExtension($name))) {
                    $resp = FileImporter::E_FILE_INVALID_EXTENSION;
                } else {
                    $resp = $fi->importIncomingFile($name);
                }
                if (!$resp instanceof \Concrete\Core\File\Version) {
                    $error->add($name . ': ' . FileImporter::getErrorMessage($resp));
                } else {
                    $files[] = $resp;
Example #11
0
defined('C5_EXECUTE') or die("Access Denied.");
use Concrete\Core\File\EditResponse as FileEditResponse;
use Concrete\Core\File\StorageLocation\StorageLocation as FileStorageLocation;
$u = new User();
$form = Loader::helper('form');
$ih = Loader::helper('concrete/ui');
$fileID = $_REQUEST['fID'];
$f = File::getByID($fileID);
$token = Core::make('token');
$cp = new Permissions($f);
if (!$cp->canAdmin()) {
    die(t("Access Denied."));
}
$form = Loader::helper('form');
$r = new FileEditResponse();
$r->setFile($f);
if ($_POST['task'] == 'set_password') {
    if (!$token->validate('set_password_' . $fileID)) {
        die(t('Invalid CSRF Token.'));
    }
    $f->setPassword($_POST['fPassword']);
    $r->setMessage(t('File password saved successfully.'));
    $r->outputJSON();
}
if ($_POST['task'] == 'set_location') {
    if (!$token->validate('set_location_' . $fileID)) {
        die(t('Invalid CSRF Token.'));
    }
    $fsl = FileStorageLocation::getByID($_POST['fslID']);
    if (is_object($fsl)) {
Example #12
0
 public function submit()
 {
     if ($this->validateAction()) {
         $post = $this->request->request->all();
         foreach ($post as $key => $value) {
             if (preg_match('/fsID:/', $key)) {
                 $id = explode(':', $key);
                 $fsID = $id[1];
                 $fs = Set::getByID($fsID);
                 $fsp = new \Permissions($fs);
                 foreach ($this->files as $file) {
                     if ($fsp->canAddFile($file)) {
                         switch ($value) {
                             case '0':
                                 $fs->removeFileFromSet($file);
                                 break;
                             case '1':
                                 // do nothing
                                 break;
                             case '2':
                                 $fs->addFileToSet($file);
                                 break;
                         }
                     }
                 }
             }
         }
         $fsNew = $this->request->request->get('fsNew');
         $fsNewShare = $this->request->request->get('fsNewShare');
         if (is_array($fsNew)) {
             foreach ($fsNew as $i => $name) {
                 if ($name) {
                     foreach ($this->files as $file) {
                         $type = $fsNewShare[$i] == 1 ? Set::TYPE_PUBLIC : Set::TYPE_PRIVATE;
                         $fs = Set::createAndGetSet($fsNew[$i], $type);
                         $fs->addFileToSet($file);
                     }
                 }
             }
         }
         $sets = array();
         foreach ($this->files as $file) {
             foreach ($file->getFileSets() as $set) {
                 $o = $set->getJSONObject();
                 if (!in_array($o, $sets)) {
                     $sets[] = $o;
                 }
             }
         }
         $response = new EditResponse();
         $response->setFiles($this->files);
         $response->setAdditionalDataAttribute('sets', $sets);
         $response->setMessage(t('File sets updated successfully.'));
         $response->outputJSON();
     }
 }
Example #13
0
<?php

defined('C5_EXECUTE') or die("Access Denied.");
use Concrete\Core\File\EditResponse as FileEditResponse;
$u = new User();
$form = Loader::helper('form');
$dh = Core::make('helper/date');
/* @var $dh \Concrete\Core\Localization\Service\Date */
$fp = FilePermissions::getGlobal();
if (!$fp->canAccessFileManager()) {
    die(t("Unable to access the file manager."));
}
if ($_POST['task'] == 'delete_files') {
    $json['error'] = false;
    $fr = new FileEditResponse();
    $files = array();
    if (is_array($_POST['fID'])) {
        foreach ($_POST['fID'] as $fID) {
            $f = File::getByID($fID);
            $fp = new Permissions($f);
            if ($fp->canDeleteFile()) {
                $files[] = $f;
                $f->delete();
            } else {
                throw new Exception(t('Unable to delete one or more files.'));
            }
        }
    }
    $fr->setMessage(t2('%s file deleted successfully.', '%s files deleted successfully.', count($files)));
    $fr->outputJSON();
}
Example #14
0
 public function save()
 {
     if ($this->validateAction()) {
         $fp = new Permissions($this->file);
         if ($fp->canEditFileProperties()) {
             $fv = $this->file->getVersionToModify();
             $value = $this->request->request->get('value');
             switch ($this->request->request->get('name')) {
                 case 'fvTitle':
                     $fv->updateTitle($value);
                     break;
                 case 'fvDescription':
                     $fv->updateDescription($value);
                     break;
                 case 'fvTags':
                     $fv->updateTags($value);
                     break;
             }
             $sr = new FileEditResponse();
             $sr->setFile($this->file);
             $sr->setMessage(t('File updated successfully.'));
             $sr->setAdditionalDataAttribute('value', $value);
             $sr->outputJSON();
         } else {
             throw new Exception(t('Access Denied.'));
         }
     } else {
         throw new Exception(t('Access Denied.'));
     }
 }