Allow users to set view policies on files explicitly
Summary: Ref T4589. Allow users to adjust visibility settings on files explicitly. This makes it easier to understand and manage upcoming changes in T4589. Test Plan: Changed the view policy for a file several times. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T4589 Differential Revision: https://secure.phabricator.com/D10129
This commit is contained in:
@@ -115,12 +115,17 @@ final class PhabricatorFileInfoController extends PhabricatorFileController {
|
||||
|
||||
private function buildActionView(PhabricatorFile $file) {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
$viewer = $request->getUser();
|
||||
|
||||
$id = $file->getID();
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$file,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$view = id(new PhabricatorActionListView())
|
||||
->setUser($user)
|
||||
->setUser($viewer)
|
||||
->setObjectURI($this->getRequest()->getRequestURI())
|
||||
->setObject($file);
|
||||
|
||||
@@ -133,7 +138,7 @@ final class PhabricatorFileInfoController extends PhabricatorFileController {
|
||||
} else {
|
||||
$view->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setUser($user)
|
||||
->setUser($viewer)
|
||||
->setRenderAsForm(true)
|
||||
->setDownload(true)
|
||||
->setName(pht('Download File'))
|
||||
@@ -141,12 +146,21 @@ final class PhabricatorFileInfoController extends PhabricatorFileController {
|
||||
->setHref($file->getViewURI()));
|
||||
}
|
||||
|
||||
$view->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setName(pht('Edit File'))
|
||||
->setIcon('fa-pencil')
|
||||
->setHref($this->getApplicationURI("/edit/{$id}/"))
|
||||
->setWorkflow(!$can_edit)
|
||||
->setDisabled(!$can_edit));
|
||||
|
||||
$view->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setName(pht('Delete File'))
|
||||
->setIcon('fa-times')
|
||||
->setHref($this->getApplicationURI("/delete/{$id}/"))
|
||||
->setWorkflow(true));
|
||||
->setWorkflow(true)
|
||||
->setDisabled(!$can_edit));
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user