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:
epriestley
2014-08-02 14:45:50 -07:00
parent b5750412c7
commit 4c04d4d019
7 changed files with 128 additions and 5 deletions

View File

@@ -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;
}