%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/cfiles/controllers/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/cfiles/controllers/UploadController.php |
<?php /** * @link https://www.humhub.org/ * @copyright Copyright (c) 2015 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences */ namespace humhub\modules\cfiles\controllers; use humhub\modules\content\models\Content; use Yii; use yii\web\HttpException; use humhub\components\ActiveRecord; use humhub\modules\cfiles\models\Folder; use humhub\modules\cfiles\actions\UploadAction; use humhub\modules\cfiles\permissions\WriteAccess; use humhub\modules\cfiles\models\File; use humhub\modules\file\models\File as ModelFile; /** * Description of BrowseController * * @author luke, Sebastian Stumpf */ class UploadController extends BrowseController { public function getAccessRules() { return [ ['permission' => [WriteAccess::class]] ]; } public function actions() { return [ 'index' => ['class' => UploadAction::class] ]; } public function actionImport($fid) { $guids = Yii::$app->request->post('guids'); $guids = is_string($guids) ? array_map('trim', explode(',', $guids)) : $guids; if (!is_array($guids)) { throw new HttpException(400); } $folder = Folder::findOne($fid); $errors = []; foreach ($guids as $guid) { $cFile = ModelFile::findOne(['guid' => $guid]); if (!$cFile) { $errors[] = Yii::t('Cfiles.base', 'Could not import file with guid {guid}. File not found', ['guid' => $guid]); Yii::error(Yii::t('Cfiles.base', 'Could not import file with guid {guid}. File not found', ['guid' => $guid])); continue; } $cFile->show_in_stream = false; $file = new File($this->contentContainer); $file->setFileContent($cFile); $folder->moveItem($file); $file->visibility = Content::VISIBILITY_PRIVATE; $file->save(); if ($file->hasErrors()) { $errors[] = $this->actionResponseError($file); } if ($file->baseFile->hasErrors()) { $errors[] = $this->actionResponseError($file->baseFile); } } if ($errors) { array_unshift($errors, Yii::t('CfilesModule.base', 'Some files could not be imported: ') ); } return $this->asJson(['success' => empty($errors), 'errors' => $errors]); } public function actionResponseError(ActiveRecord $record) { $errorMsg = Yii::t('CfilesModule.base', 'Some files could not be imported: '); foreach ($record->getErrors() as $key => $errors) { foreach ($errors as $error) { $errorMsg .= $error.' '; } } } }