Page MenuHomePhabricator

D10131.diff
No OneTemporary

D10131.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -8,10 +8,10 @@
return array(
'names' => array(
'core.pkg.css' => '66ada2ec',
- 'core.pkg.js' => '8cd3cd8c',
+ 'core.pkg.js' => '4c28870b',
'darkconsole.pkg.js' => 'df001cab',
'differential.pkg.css' => '4a93db37',
- 'differential.pkg.js' => '79503aa4',
+ 'differential.pkg.js' => 'eb182ccd',
'diffusion.pkg.css' => '591664fa',
'diffusion.pkg.js' => 'bfc0737b',
'maniphest.pkg.css' => 'f5d89daf',
@@ -440,7 +440,7 @@
'rsrc/js/application/uiexample/gesture-example.js' => '558829c2',
'rsrc/js/application/uiexample/notification-example.js' => '7a9677fc',
'rsrc/js/core/Busy.js' => '6453c869',
- 'rsrc/js/core/DragAndDropFileUpload.js' => 'a575f592',
+ 'rsrc/js/core/DragAndDropFileUpload.js' => 'f61aa8ec',
'rsrc/js/core/DraggableList.js' => '2cad29d1',
'rsrc/js/core/FileUpload.js' => 'a4ae61bf',
'rsrc/js/core/Hovercard.js' => '7e8468ae',
@@ -465,7 +465,7 @@
'rsrc/js/core/behavior-file-tree.js' => '88236f00',
'rsrc/js/core/behavior-form.js' => '5c54cbf3',
'rsrc/js/core/behavior-gesture.js' => '3ab51e2c',
- 'rsrc/js/core/behavior-global-drag-and-drop.js' => '3672899b',
+ 'rsrc/js/core/behavior-global-drag-and-drop.js' => '07f199d8',
'rsrc/js/core/behavior-high-security-warning.js' => '8fc1c918',
'rsrc/js/core/behavior-history-install.js' => '7ee2b591',
'rsrc/js/core/behavior-hovercard.js' => 'f36e01af',
@@ -589,7 +589,7 @@
'javelin-behavior-doorkeeper-tag' => 'e5822781',
'javelin-behavior-error-log' => 'a5d7cf86',
'javelin-behavior-fancy-datepicker' => 'a5573bcd',
- 'javelin-behavior-global-drag-and-drop' => '3672899b',
+ 'javelin-behavior-global-drag-and-drop' => '07f199d8',
'javelin-behavior-herald-rule-editor' => '7ebaeed3',
'javelin-behavior-high-security-warning' => '8fc1c918',
'javelin-behavior-history-install' => '7ee2b591',
@@ -715,7 +715,7 @@
'phabricator-countdown-css' => '86b7b0a0',
'phabricator-crumbs-view-css' => '7fbf25b8',
'phabricator-dashboard-css' => 'a2bfdcbf',
- 'phabricator-drag-and-drop-file-upload' => 'a575f592',
+ 'phabricator-drag-and-drop-file-upload' => 'f61aa8ec',
'phabricator-draggable-list' => '2cad29d1',
'phabricator-fatal-config-template-css' => '25d446d6',
'phabricator-feed-css' => '4e544db4',
@@ -869,6 +869,13 @@
'javelin-util',
'phabricator-busy',
),
+ '07f199d8' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-uri',
+ 'javelin-mask',
+ 'phabricator-drag-and-drop-file-upload',
+ ),
'09eee344' => array(
'javelin-behavior',
'javelin-stratcom',
@@ -1042,13 +1049,6 @@
'javelin-behavior',
'javelin-dom',
),
- '3672899b' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-uri',
- 'javelin-mask',
- 'phabricator-drag-and-drop-file-upload',
- ),
'3915d490' => array(
'javelin-install',
'javelin-util',
@@ -1490,14 +1490,6 @@
'javelin-stratcom',
'javelin-vector',
),
- 'a575f592' => array(
- 'javelin-install',
- 'javelin-util',
- 'javelin-request',
- 'javelin-dom',
- 'javelin-uri',
- 'phabricator-file-upload',
- ),
'a5b67173' => array(
'javelin-dom',
'javelin-util',
@@ -1877,6 +1869,14 @@
'multirow-row-manager',
'javelin-json',
),
+ 'f61aa8ec' => array(
+ 'javelin-install',
+ 'javelin-util',
+ 'javelin-request',
+ 'javelin-dom',
+ 'javelin-uri',
+ 'phabricator-file-upload',
+ ),
'f6555212' => array(
'javelin-install',
'javelin-reactornode',
diff --git a/src/applications/files/controller/PhabricatorFileDropUploadController.php b/src/applications/files/controller/PhabricatorFileDropUploadController.php
--- a/src/applications/files/controller/PhabricatorFileDropUploadController.php
+++ b/src/applications/files/controller/PhabricatorFileDropUploadController.php
@@ -8,7 +8,7 @@
*/
public function processRequest() {
$request = $this->getRequest();
- $user = $request->getUser();
+ $viewer = $request->getUser();
// NOTE: Throws if valid CSRF token is not present in the request.
$request->validateCSRF();
@@ -16,11 +16,21 @@
$data = PhabricatorStartup::getRawInput();
$name = $request->getStr('name');
+ // If there's no explicit view policy, make it very restrictive by default.
+ // This is the correct policy for files dropped onto objects during
+ // creation, comment and edit flows.
+
+ $view_policy = $request->getStr('viewPolicy');
+ if (!$view_policy) {
+ $view_policy = $viewer->getPHID();
+ }
+
$file = PhabricatorFile::newFromXHRUpload(
$data,
array(
'name' => $request->getStr('name'),
- 'authorPHID' => $user->getPHID(),
+ 'authorPHID' => $viewer->getPHID(),
+ 'viewPolicy' => $view_policy,
'isExplicitUpload' => true,
));
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
@@ -28,6 +28,7 @@
'instructions' => $instructions_id,
'uploadURI' => '/file/dropupload/',
'browseURI' => '/file/query/authored/',
+ 'viewPolicy' => PhabricatorPolicies::getMostOpenPolicy(),
));
return phutil_tag(
diff --git a/webroot/rsrc/js/core/DragAndDropFileUpload.js b/webroot/rsrc/js/core/DragAndDropFileUpload.js
--- a/webroot/rsrc/js/core/DragAndDropFileUpload.js
+++ b/webroot/rsrc/js/core/DragAndDropFileUpload.js
@@ -174,8 +174,13 @@
var up_uri = JX.$U(this.getURI())
.setQueryParam('name', file.getName())
- .setQueryParam('__upload__', 1)
- .toString();
+ .setQueryParam('__upload__', 1);
+
+ if (this.getViewPolicy()) {
+ up_uri.setQueryParam('viewPolicy', this.getViewPolicy());
+ }
+
+ up_uri = up_uri.toString();
var onupload = JX.bind(this, function(r) {
if (r.error) {
@@ -235,6 +240,7 @@
},
properties: {
URI : null,
- activatedClass : null
+ activatedClass : null,
+ viewPolicy : null
}
});
diff --git a/webroot/rsrc/js/core/behavior-global-drag-and-drop.js b/webroot/rsrc/js/core/behavior-global-drag-and-drop.js
--- a/webroot/rsrc/js/core/behavior-global-drag-and-drop.js
+++ b/webroot/rsrc/js/core/behavior-global-drag-and-drop.js
@@ -21,7 +21,8 @@
}
var drop = new JX.PhabricatorDragAndDropFileUpload(document.documentElement)
- .setURI(config.uploadURI);
+ .setURI(config.uploadURI)
+ .setViewPolicy(config.viewPolicy);
drop.listen('didBeginDrag', function() {
JX.Mask.show();

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 7, 8:45 PM (4 d, 4 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7348832
Default Alt Text
D10131.diff (6 KB)

Event Timeline