diff --git a/scripts/mail/mail_handler.php b/scripts/mail/mail_handler.php --- a/scripts/mail/mail_handler.php +++ b/scripts/mail/mail_handler.php @@ -77,6 +77,7 @@ continue; } + // TODO $file = PhabricatorFile::newFromFileData( $attachment->getContent(), array( diff --git a/scripts/util/add_macro.php b/scripts/util/add_macro.php --- a/scripts/util/add_macro.php +++ b/scripts/util/add_macro.php @@ -48,6 +48,7 @@ throw new Exception(pht("A macro already exists with the name '%s'!", $name)); } +// TODO $file = PhabricatorFile::newFromFileData( $data, array( diff --git a/src/applications/conpherence/__tests__/ConpherenceTestCase.php b/src/applications/conpherence/__tests__/ConpherenceTestCase.php --- a/src/applications/conpherence/__tests__/ConpherenceTestCase.php +++ b/src/applications/conpherence/__tests__/ConpherenceTestCase.php @@ -70,7 +70,7 @@ ), ); - $file = PhabricatorFile::newFromFileData($data, $params); + $file = PhabricatorFile::newFromFileData($data, $params, $actor); $file->save(); return $file; diff --git a/src/applications/differential/controller/DifferentialChangesetViewController.php b/src/applications/differential/controller/DifferentialChangesetViewController.php --- a/src/applications/differential/controller/DifferentialChangesetViewController.php +++ b/src/applications/differential/controller/DifferentialChangesetViewController.php @@ -360,7 +360,8 @@ 'mime-type' => 'text/plain', 'ttl.relative' => phutil_units('24 hours in seconds'), 'viewPolicy' => PhabricatorPolicies::POLICY_NOONE, - )); + ), + $viewer); $file->attachToObject($diff->getPHID()); diff --git a/src/applications/differential/controller/DifferentialRevisionViewController.php b/src/applications/differential/controller/DifferentialRevisionViewController.php --- a/src/applications/differential/controller/DifferentialRevisionViewController.php +++ b/src/applications/differential/controller/DifferentialRevisionViewController.php @@ -1113,7 +1113,8 @@ 'name' => $file_name, 'ttl.relative' => phutil_units('24 hours in seconds'), 'viewPolicy' => PhabricatorPolicies::POLICY_NOONE, - )); + ), + $viewer); $file->attachToObject($revision->getPHID()); unset($unguarded); diff --git a/src/applications/differential/storage/DifferentialHunk.php b/src/applications/differential/storage/DifferentialHunk.php --- a/src/applications/differential/storage/DifferentialHunk.php +++ b/src/applications/differential/storage/DifferentialHunk.php @@ -332,6 +332,7 @@ list($format, $data) = $this->formatDataForStorage($raw_data); $this->setDataFormat($format); + // TODO $file = PhabricatorFile::newFromFileData( $data, array( diff --git a/src/applications/drydock/interface/filesystem/DrydockSFTPFilesystemInterface.php b/src/applications/drydock/interface/filesystem/DrydockSFTPFilesystemInterface.php --- a/src/applications/drydock/interface/filesystem/DrydockSFTPFilesystemInterface.php +++ b/src/applications/drydock/interface/filesystem/DrydockSFTPFilesystemInterface.php @@ -46,6 +46,7 @@ public function saveFile($path, $name) { $data = $this->readFile($path); + // TODO $file = PhabricatorFile::newFromFileData( $data, array('name' => $name)); diff --git a/src/applications/files/builtin/PhabricatorFilesComposeAvatarBuiltinFile.php b/src/applications/files/builtin/PhabricatorFilesComposeAvatarBuiltinFile.php --- a/src/applications/files/builtin/PhabricatorFilesComposeAvatarBuiltinFile.php +++ b/src/applications/files/builtin/PhabricatorFilesComposeAvatarBuiltinFile.php @@ -36,7 +36,8 @@ 'name' => $name, 'profile' => true, 'canCDN' => true, - )); + ), + $user); $user ->setDefaultProfileImagePHID($file->getPHID()) diff --git a/src/applications/files/conduit/FileAllocateConduitAPIMethod.php b/src/applications/files/conduit/FileAllocateConduitAPIMethod.php --- a/src/applications/files/conduit/FileAllocateConduitAPIMethod.php +++ b/src/applications/files/conduit/FileAllocateConduitAPIMethod.php @@ -52,7 +52,8 @@ if ($hash !== null) { $file = PhabricatorFile::newFileFromContentHash( $hash, - $properties); + $properties, + $viewer); } if ($hash !== null && !$file) { diff --git a/src/applications/files/conduit/FileUploadChunkConduitAPIMethod.php b/src/applications/files/conduit/FileUploadChunkConduitAPIMethod.php --- a/src/applications/files/conduit/FileUploadChunkConduitAPIMethod.php +++ b/src/applications/files/conduit/FileUploadChunkConduitAPIMethod.php @@ -75,7 +75,8 @@ // are only accessed through the storage engine. $chunk_data = PhabricatorFile::newFromFileData( $data, - $params); + $params, + $viewer); $chunk->setDataFilePHID($chunk_data->getPHID())->save(); diff --git a/src/applications/files/conduit/FileUploadConduitAPIMethod.php b/src/applications/files/conduit/FileUploadConduitAPIMethod.php --- a/src/applications/files/conduit/FileUploadConduitAPIMethod.php +++ b/src/applications/files/conduit/FileUploadConduitAPIMethod.php @@ -47,7 +47,7 @@ $params['viewPolicy'] = $view_policy; } - $file = PhabricatorFile::newFromFileData($data, $params); + $file = PhabricatorFile::newFromFileData($data, $params, $viewer); return $file->getPHID(); } diff --git a/src/applications/files/controller/PhabricatorFileComposeController.php b/src/applications/files/controller/PhabricatorFileComposeController.php --- a/src/applications/files/controller/PhabricatorFileComposeController.php +++ b/src/applications/files/controller/PhabricatorFileComposeController.php @@ -41,7 +41,8 @@ 'name' => $composer->getBuiltinDisplayName(), 'profile' => true, 'canCDN' => true, - )); + ), + $viewer); if ($project_phid) { $edit_uri = '/project/manage/'.$project->getID().'/'; diff --git a/src/applications/files/controller/PhabricatorFileUploadController.php b/src/applications/files/controller/PhabricatorFileUploadController.php --- a/src/applications/files/controller/PhabricatorFileUploadController.php +++ b/src/applications/files/controller/PhabricatorFileUploadController.php @@ -9,7 +9,7 @@ public function handleRequest(AphrontRequest $request) { $viewer = $request->getUser(); - $file = PhabricatorFile::initializeNewFile(); + $file = PhabricatorFile::initializeNewFile($viewer); $e_file = true; $errors = array(); diff --git a/src/applications/files/editor/PhabricatorFileEditEngine.php b/src/applications/files/editor/PhabricatorFileEditEngine.php --- a/src/applications/files/editor/PhabricatorFileEditEngine.php +++ b/src/applications/files/editor/PhabricatorFileEditEngine.php @@ -32,7 +32,7 @@ } protected function newEditableObject() { - return PhabricatorFile::initializeNewFile(); + return PhabricatorFile::initializeNewFile($this->getViewer()); } protected function newObjectQuery() { diff --git a/src/applications/files/engine/PhabricatorFileStorageEngine.php b/src/applications/files/engine/PhabricatorFileStorageEngine.php --- a/src/applications/files/engine/PhabricatorFileStorageEngine.php +++ b/src/applications/files/engine/PhabricatorFileStorageEngine.php @@ -153,7 +153,7 @@ * some metadata keys (like "name" and "author") in it. You should be prepared * to handle writes which specify no metadata, but might want to optionally * use some keys in this array for debugging or logging purposes. This is - * the same dictionary passed to @{method:PhabricatorFile::newFromFileData}, + * the same dictionary passed to @{method:PhabricatorFile::newFromFileData}, TODO * so you could conceivably do custom things with it. * * If you are unable to write for whatever reason (e.g., the disk is full), diff --git a/src/applications/files/favicon/PhabricatorFaviconRef.php b/src/applications/files/favicon/PhabricatorFaviconRef.php --- a/src/applications/files/favicon/PhabricatorFaviconRef.php +++ b/src/applications/files/favicon/PhabricatorFaviconRef.php @@ -443,6 +443,7 @@ } private function newFaviconFile($data) { + // TODO return PhabricatorFile::newFromFileData( $data, array( diff --git a/src/applications/files/format/__tests__/PhabricatorFileStorageFormatTestCase.php b/src/applications/files/format/__tests__/PhabricatorFileStorageFormatTestCase.php --- a/src/applications/files/format/__tests__/PhabricatorFileStorageFormatTestCase.php +++ b/src/applications/files/format/__tests__/PhabricatorFileStorageFormatTestCase.php @@ -23,6 +23,7 @@ 'format' => $rot13_format, ); + // TODO $file = PhabricatorFile::newFromFileData($data, $params); // We should have a file stored as rot13, which reads back the input @@ -70,6 +71,7 @@ 'format' => $format, ); + // TODO $file = PhabricatorFile::newFromFileData($data, $params); // We should have a file stored as AES256. @@ -115,6 +117,7 @@ ); // First, write the file normally. + // TODO $file = PhabricatorFile::newFromFileData($good, $params); $this->assertEqual($good, $file->loadFileData()); diff --git a/src/applications/files/lipsum/PhabricatorFileTestDataGenerator.php b/src/applications/files/lipsum/PhabricatorFileTestDataGenerator.php --- a/src/applications/files/lipsum/PhabricatorFileTestDataGenerator.php +++ b/src/applications/files/lipsum/PhabricatorFileTestDataGenerator.php @@ -14,6 +14,7 @@ $dimension = 1 << rand(5, 12); $image = id(new PhabricatorLipsumMondrianArtist()) ->generate($dimension, $dimension); + // TODO $file = PhabricatorFile::newFromFileData( $image, array( diff --git a/src/applications/files/storage/PhabricatorFile.php b/src/applications/files/storage/PhabricatorFile.php --- a/src/applications/files/storage/PhabricatorFile.php +++ b/src/applications/files/storage/PhabricatorFile.php @@ -30,7 +30,8 @@ PhabricatorDestructibleInterface, PhabricatorConduitResultInterface, PhabricatorIndexableInterface, - PhabricatorNgramsInterface { + PhabricatorNgramsInterface, + PhabricatorSpacesInterface { const METADATA_IMAGE_WIDTH = 'width'; const METADATA_IMAGE_HEIGHT = 'height'; @@ -62,6 +63,7 @@ protected $ttl; protected $isExplicitUpload = 1; protected $viewPolicy = PhabricatorPolicies::POLICY_USER; + protected $spacePHID; protected $isPartial = 0; protected $isDeleted = 0; @@ -70,7 +72,7 @@ private $originalFile = self::ATTACHABLE; private $transforms = self::ATTACHABLE; - public static function initializeNewFile() { + public static function initializeNewFile(PhabricatorUser $actor) { $app = id(new PhabricatorApplicationQuery()) ->setViewer(PhabricatorUser::getOmnipotentUser()) ->withClasses(array('PhabricatorFilesApplication')) @@ -81,6 +83,7 @@ return id(new PhabricatorFile()) ->setViewPolicy($view_policy) + ->setSpacePHID($actor->getDefaultSpacePHID()) ->setIsPartial(0) ->attachOriginalFile(null) ->attachObjects(array()) @@ -227,15 +230,17 @@ 'name' => $file_name, ) + $params; + // TODO return self::newFromFileData($file_data, $params); } public static function newFromXHRUpload($data, array $params = array()) { + // TODO return self::newFromFileData($data, $params); } - public static function newFileFromContentHash($hash, array $params) { + public static function newFileFromContentHash($hash, array $params, PhabricatorUser $actor) { if ($hash === null) { return null; } @@ -255,7 +260,7 @@ $copy_of_byte_size = $file->getByteSize(); $copy_of_mime_type = $file->getMimeType(); - $new_file = self::initializeNewFile(); + $new_file = self::initializeNewFile($actor); $new_file->setByteSize($copy_of_byte_size); @@ -277,9 +282,10 @@ public static function newChunkedFile( PhabricatorFileStorageEngine $engine, $length, - array $params) { + array $params, + PhabricatorUser $actor) { - $file = self::initializeNewFile(); + $file = self::initializeNewFile($actor); $file->setByteSize($length); @@ -322,7 +328,10 @@ return $file; } - private static function buildFromFileData($data, array $params = array()) { + private static function buildFromFileData( + $data, + array $params = array(), + PhabricatorUser $actor) { if (isset($params['storageEngines'])) { $engines = $params['storageEngines']; @@ -344,7 +353,7 @@ throw new Exception(pht('No valid storage engines are available!')); } - $file = self::initializeNewFile(); + $file = self::initializeNewFile($actor); $aes_type = PhabricatorFileAES256StorageFormat::FORMATKEY; $has_aes = PhabricatorKeyring::getDefaultKeyName($aes_type); @@ -435,11 +444,15 @@ return $file; } - public static function newFromFileData($data, array $params = array()) { + public static function newFromFileData( + $data, + array $params = array(), + PhabricatorUser $actor) { + $hash = self::hashFileContent($data); if ($hash !== null) { - $file = self::newFileFromContentHash($hash, $params); + $file = self::newFileFromContentHash($hash, $params, $actor); if ($file) { return $file; } @@ -674,6 +687,7 @@ 'name' => $default_name, ); + // TODO return self::newFromFileData($body, $params); } } catch (Exception $ex) { @@ -1191,6 +1205,7 @@ $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites(); try { + // TODO $file = self::newFromFileData($data, $params); } catch (AphrontDuplicateKeyQueryException $ex) { $file = id(new PhabricatorFileQuery()) @@ -1627,6 +1642,14 @@ } +/* -( PhabricatorSpacesInterface )----------------------------------------- */ + + + public function getSpacePHID() { + return $this->spacePHID; + } + + /* -( PhabricatorSubscribableInterface Implementation )-------------------- */ diff --git a/src/applications/files/storage/__tests__/PhabricatorFileTestCase.php b/src/applications/files/storage/__tests__/PhabricatorFileTestCase.php --- a/src/applications/files/storage/__tests__/PhabricatorFileTestCase.php +++ b/src/applications/files/storage/__tests__/PhabricatorFileTestCase.php @@ -25,7 +25,7 @@ ), ); - $file = PhabricatorFile::newFromFileData($data, $params); + $file = PhabricatorFile::newFromFileData($data, $params, $author); $secret1 = $file->getSecretKey(); @@ -87,7 +87,7 @@ ), ); - $file = PhabricatorFile::newFromFileData($data, $params); + $file = PhabricatorFile::newFromFileData($data, $params, $author); $secret1 = $file->getSecretKey(); $task = ManiphestTask::initializeNewTask($author); @@ -153,7 +153,7 @@ ), ); - $file = PhabricatorFile::newFromFileData($data, $params); + $file = PhabricatorFile::newFromFileData($data, $params, $author); $filter = new PhabricatorPolicyFilter(); // Test bare file policies. @@ -208,7 +208,7 @@ ), ); - $xform = PhabricatorFile::newFromFileData($data, $params); + $xform = PhabricatorFile::newFromFileData($data, $params, $author); id(new PhabricatorTransformedFile()) ->setOriginalPHID($file->getPHID()) @@ -261,6 +261,7 @@ ), ); + // TODO $file = PhabricatorFile::newFromFileData($data, $params); // Test that the storage engine worked, and was the target of the write. We @@ -285,8 +286,10 @@ ), ); + // TODO $first_file = PhabricatorFile::newFromFileData($data, $params); + // TODO $second_file = PhabricatorFile::newFromFileData($other_data, $params); // Test that the second file uses different storage handle from @@ -314,6 +317,7 @@ ), ); + // TODO $first_file = PhabricatorFile::newFromFileData($data, $params); $second_file = PhabricatorFile::newFromFileData($data, $params); @@ -338,6 +342,7 @@ ), ); + // TODO $file = PhabricatorFile::newFromFileData($data, $params); $handle = $file->getStorageHandle(); $file->delete(); @@ -364,6 +369,7 @@ ), ); + // TODO $first_file = PhabricatorFile::newFromFileData($data, $params); $second_file = PhabricatorFile::newFromFileData($data, $params); $first_file->delete(); @@ -386,6 +392,7 @@ ), ); + // TODO $file = PhabricatorFile::newFromFileData($data, $params); $this->assertEqual($ttl, $file->getTTL()); } @@ -405,6 +412,7 @@ ), ); + // TODO $a = PhabricatorFile::newFromFileData('a', $params); $b = PhabricatorFile::newFromFileData('b', $params); $c = PhabricatorFile::newFromFileData('c', $params); diff --git a/src/applications/files/transform/PhabricatorFileImageTransform.php b/src/applications/files/transform/PhabricatorFileImageTransform.php --- a/src/applications/files/transform/PhabricatorFileImageTransform.php +++ b/src/applications/files/transform/PhabricatorFileImageTransform.php @@ -148,6 +148,7 @@ $properties = $this->getFileProperties() + $defaults; + // TODO return PhabricatorFile::newFromFileData($data, $properties); } diff --git a/src/applications/files/uploadsource/PhabricatorFileUploadSource.php b/src/applications/files/uploadsource/PhabricatorFileUploadSource.php --- a/src/applications/files/uploadsource/PhabricatorFileUploadSource.php +++ b/src/applications/files/uploadsource/PhabricatorFileUploadSource.php @@ -167,6 +167,7 @@ $parameters = $this->getNewFileParameters(); + // TODO return PhabricatorFile::newFromFileData($data, $parameters); } diff --git a/src/applications/files/view/PhabricatorGlobalUploadTargetView.php b/src/applications/files/view/PhabricatorGlobalUploadTargetView.php --- a/src/applications/files/view/PhabricatorGlobalUploadTargetView.php +++ b/src/applications/files/view/PhabricatorGlobalUploadTargetView.php @@ -78,7 +78,8 @@ $view_policy = $this->getViewPolicy(); if ($view_policy === null) { - $view_policy = PhabricatorFile::initializeNewFile()->getViewPolicy(); + $view_policy = PhabricatorFile::initializeNewFile($viewer) + ->getViewPolicy(); } $submit_uri = $this->getSubmitURI(); diff --git a/src/applications/macro/engine/PhabricatorMemeEngine.php b/src/applications/macro/engine/PhabricatorMemeEngine.php --- a/src/applications/macro/engine/PhabricatorMemeEngine.php +++ b/src/applications/macro/engine/PhabricatorMemeEngine.php @@ -159,6 +159,7 @@ private function newAssetFile(PhabricatorFile $template) { $data = $this->newAssetData($template); + // TODO return PhabricatorFile::newFromFileData( $data, array( diff --git a/src/applications/metamta/controller/PhabricatorMetaMTAPostmarkReceiveController.php b/src/applications/metamta/controller/PhabricatorMetaMTAPostmarkReceiveController.php --- a/src/applications/metamta/controller/PhabricatorMetaMTAPostmarkReceiveController.php +++ b/src/applications/metamta/controller/PhabricatorMetaMTAPostmarkReceiveController.php @@ -78,6 +78,7 @@ $file_data = base64_decode($file_data); try { + // TODO $file = PhabricatorFile::newFromFileData( $file_data, array( diff --git a/src/applications/paste/xaction/PhabricatorPasteContentTransaction.php b/src/applications/paste/xaction/PhabricatorPasteContentTransaction.php --- a/src/applications/paste/xaction/PhabricatorPasteContentTransaction.php +++ b/src/applications/paste/xaction/PhabricatorPasteContentTransaction.php @@ -72,6 +72,7 @@ } private function newFileForPaste(PhabricatorUser $actor, $name, $data) { + // TODO return PhabricatorFile::newFromFileData( $data, array( diff --git a/src/applications/phragment/conduit/PhragmentGetPatchConduitAPIMethod.php b/src/applications/phragment/conduit/PhragmentGetPatchConduitAPIMethod.php --- a/src/applications/phragment/conduit/PhragmentGetPatchConduitAPIMethod.php +++ b/src/applications/phragment/conduit/PhragmentGetPatchConduitAPIMethod.php @@ -175,6 +175,7 @@ unset($patches[$key]['fileNew']); $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites(); + // TODO $file = PhabricatorFile::newFromFileData( $data, array( diff --git a/src/applications/phragment/controller/PhragmentPatchController.php b/src/applications/phragment/controller/PhragmentPatchController.php --- a/src/applications/phragment/controller/PhragmentPatchController.php +++ b/src/applications/phragment/controller/PhragmentPatchController.php @@ -79,6 +79,7 @@ } $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites(); + // TODO $result = PhabricatorFile::newFromFileData( $patch, array( diff --git a/src/applications/phragment/controller/PhragmentZIPController.php b/src/applications/phragment/controller/PhragmentZIPController.php --- a/src/applications/phragment/controller/PhragmentZIPController.php +++ b/src/applications/phragment/controller/PhragmentZIPController.php @@ -102,6 +102,7 @@ $data = Filesystem::readFile((string)$temp); $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites(); + // TODO $file = PhabricatorFile::newFromFileData( $data, array( diff --git a/src/applications/phragment/storage/PhragmentFragment.php b/src/applications/phragment/storage/PhragmentFragment.php --- a/src/applications/phragment/storage/PhragmentFragment.php +++ b/src/applications/phragment/storage/PhragmentFragment.php @@ -237,6 +237,7 @@ } // The file is being updated. + // TODO $file = PhabricatorFile::newFromFileData( $mappings[$path], array('name' => basename($path))); @@ -254,6 +255,7 @@ // then this is explicitly a directory being created. $file = null; if ($mappings[$path] !== null) { + // TODO $file = PhabricatorFile::newFromFileData( $mappings[$path], array('name' => basename($path)));