@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add default policy to Files application

Summary: **WIP** This adds default capability to the Files application

Test Plan: Set default to public, go to Files page, see public preset. Upload File. Doesn't work.

Reviewers: btrahan, epriestley

Reviewed By: epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T6564

Differential Revision: https://secure.phabricator.com/D10888

+38 -2
+2
src/__phutil_library_map__.php
··· 725 725 'FileReplyHandler' => 'applications/files/mail/FileReplyHandler.php', 726 726 'FileUploadConduitAPIMethod' => 'applications/files/conduit/FileUploadConduitAPIMethod.php', 727 727 'FileUploadHashConduitAPIMethod' => 'applications/files/conduit/FileUploadHashConduitAPIMethod.php', 728 + 'FilesDefaultViewCapability' => 'applications/files/capability/FilesDefaultViewCapability.php', 728 729 'FlagConduitAPIMethod' => 'applications/flag/conduit/FlagConduitAPIMethod.php', 729 730 'FlagDeleteConduitAPIMethod' => 'applications/flag/conduit/FlagDeleteConduitAPIMethod.php', 730 731 'FlagEditConduitAPIMethod' => 'applications/flag/conduit/FlagEditConduitAPIMethod.php', ··· 3726 3727 'FileReplyHandler' => 'PhabricatorMailReplyHandler', 3727 3728 'FileUploadConduitAPIMethod' => 'FileConduitAPIMethod', 3728 3729 'FileUploadHashConduitAPIMethod' => 'FileConduitAPIMethod', 3730 + 'FilesDefaultViewCapability' => 'PhabricatorPolicyCapability', 3729 3731 'FlagConduitAPIMethod' => 'ConduitAPIMethod', 3730 3732 'FlagDeleteConduitAPIMethod' => 'FlagConduitAPIMethod', 3731 3733 'FlagEditConduitAPIMethod' => 'FlagConduitAPIMethod',
+10 -1
src/applications/files/application/PhabricatorFilesApplication.php
··· 11 11 } 12 12 13 13 public function getShortDescription() { 14 - return 'Store and Share Files'; 14 + return pht('Store and Share Files'); 15 15 } 16 16 17 17 public function getIconName() { ··· 37 37 public function getRemarkupRules() { 38 38 return array( 39 39 new PhabricatorEmbedFileRemarkupRule(), 40 + ); 41 + } 42 + 43 + protected function getCustomCapabilities() { 44 + return array( 45 + FilesDefaultViewCapability::CAPABILITY => array( 46 + 'caption' => pht( 47 + 'Default view policy for newly created files.'), 48 + ), 40 49 ); 41 50 } 42 51
+16
src/applications/files/capability/FilesDefaultViewCapability.php
··· 1 + <?php 2 + 3 + final class FilesDefaultViewCapability 4 + extends PhabricatorPolicyCapability { 5 + 6 + const CAPABILITY = 'files.default.view'; 7 + 8 + public function getCapabilityName() { 9 + return pht('Default View Policy'); 10 + } 11 + 12 + public function shouldAllowPublicPolicySetting() { 13 + return true; 14 + } 15 + 16 + }
+1 -1
src/applications/files/controller/PhabricatorFileUploadController.php
··· 6 6 $request = $this->getRequest(); 7 7 $viewer = $request->getUser(); 8 8 9 - $file = new PhabricatorFile(); 9 + $file = PhabricatorFile::initializeNewFile(); 10 10 11 11 $e_file = true; 12 12 $errors = array();
+9
src/applications/files/storage/PhabricatorFile.php
··· 53 53 private $originalFile = self::ATTACHABLE; 54 54 55 55 public static function initializeNewFile() { 56 + $app = id(new PhabricatorApplicationQuery()) 57 + ->setViewer(PhabricatorUser::getOmnipotentUser()) 58 + ->withClasses(array('PhabricatorFilesApplication')) 59 + ->executeOne(); 60 + 61 + $view_policy = $app->getPolicy( 62 + FilesDefaultViewCapability::CAPABILITY); 63 + 56 64 return id(new PhabricatorFile()) 65 + ->setViewPolicy($view_policy) 57 66 ->attachOriginalFile(null) 58 67 ->attachObjects(array()) 59 68 ->attachObjectPHIDs(array());