Page MenuHomePhabricator

D9550.id22887.diff
No OneTemporary

D9550.id22887.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -81,7 +81,7 @@
'rsrc/css/application/phame/phame.css' => '19ecc703',
'rsrc/css/application/pholio/pholio-edit.css' => '90616955',
'rsrc/css/application/pholio/pholio-inline-comments.css' => '3d5a5590',
- 'rsrc/css/application/pholio/pholio.css' => '5bd4c882',
+ 'rsrc/css/application/pholio/pholio.css' => 'e94312dd',
'rsrc/css/application/phortune/phortune-credit-card-form.css' => 'b25b4beb',
'rsrc/css/application/phrequent/phrequent.css' => 'ffc185ad',
'rsrc/css/application/phriction/phriction-document-css.css' => '7d7f0071',
@@ -748,7 +748,7 @@
'phabricator-uiexample-reactor-sendproperties' => '551add57',
'phabricator-zindex-css' => 'efb673ac',
'phame-css' => '19ecc703',
- 'pholio-css' => '5bd4c882',
+ 'pholio-css' => 'e94312dd',
'pholio-edit-css' => '90616955',
'pholio-inline-comments-css' => '3d5a5590',
'phortune-credit-card-form' => '2290aeef',
diff --git a/resources/sql/autopatches/20140615.pholioedit.1.sql b/resources/sql/autopatches/20140615.pholioedit.1.sql
new file mode 100644
--- /dev/null
+++ b/resources/sql/autopatches/20140615.pholioedit.1.sql
@@ -0,0 +1,2 @@
+ALTER TABLE {$NAMESPACE}_pholio.pholio_mock
+ ADD editPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin;
diff --git a/resources/sql/autopatches/20140615.pholioedit.2.sql b/resources/sql/autopatches/20140615.pholioedit.2.sql
new file mode 100644
--- /dev/null
+++ b/resources/sql/autopatches/20140615.pholioedit.2.sql
@@ -0,0 +1,2 @@
+UPDATE {$NAMESPACE}_pholio.pholio_mock
+ SET editPolicy = authorPHID WHERE editPolicy = '';
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -2405,6 +2405,7 @@
'PhluxVariableQuery' => 'applications/phlux/query/PhluxVariableQuery.php',
'PhluxViewController' => 'applications/phlux/controller/PhluxViewController.php',
'PholioActionMenuEventListener' => 'applications/pholio/event/PholioActionMenuEventListener.php',
+ 'PholioCapabilityDefaultEdit' => 'applications/pholio/capability/PholioCapabilityDefaultEdit.php',
'PholioCapabilityDefaultView' => 'applications/pholio/capability/PholioCapabilityDefaultView.php',
'PholioConstants' => 'applications/pholio/constants/PholioConstants.php',
'PholioController' => 'applications/pholio/controller/PholioController.php',
@@ -5303,6 +5304,7 @@
'PhluxVariableQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'PhluxViewController' => 'PhluxController',
'PholioActionMenuEventListener' => 'PhabricatorEventListener',
+ 'PholioCapabilityDefaultEdit' => 'PhabricatorPolicyCapability',
'PholioCapabilityDefaultView' => 'PhabricatorPolicyCapability',
'PholioController' => 'PhabricatorController',
'PholioDAO' => 'PhabricatorLiskDAO',
diff --git a/src/applications/pholio/application/PhabricatorApplicationPholio.php b/src/applications/pholio/application/PhabricatorApplicationPholio.php
--- a/src/applications/pholio/application/PhabricatorApplicationPholio.php
+++ b/src/applications/pholio/application/PhabricatorApplicationPholio.php
@@ -72,8 +72,8 @@
protected function getCustomCapabilities() {
return array(
- PholioCapabilityDefaultView::CAPABILITY => array(
- ),
+ PholioCapabilityDefaultView::CAPABILITY => array(),
+ PholioCapabilityDefaultEdit::CAPABILITY => array(),
);
}
diff --git a/src/applications/pholio/capability/PholioCapabilityDefaultEdit.php b/src/applications/pholio/capability/PholioCapabilityDefaultEdit.php
new file mode 100644
--- /dev/null
+++ b/src/applications/pholio/capability/PholioCapabilityDefaultEdit.php
@@ -0,0 +1,16 @@
+<?php
+
+final class PholioCapabilityDefaultEdit
+ extends PhabricatorPolicyCapability {
+
+ const CAPABILITY = 'pholio.default.edit';
+
+ public function getCapabilityKey() {
+ return self::CAPABILITY;
+ }
+
+ public function getCapabilityName() {
+ return pht('Default Edit Policy');
+ }
+
+}
diff --git a/src/applications/pholio/controller/PholioMockEditController.php b/src/applications/pholio/controller/PholioMockEditController.php
--- a/src/applications/pholio/controller/PholioMockEditController.php
+++ b/src/applications/pholio/controller/PholioMockEditController.php
@@ -65,6 +65,7 @@
$v_desc = $mock->getDescription();
$v_status = $mock->getStatus();
$v_view = $mock->getViewPolicy();
+ $v_edit = $mock->getEditPolicy();
$v_cc = PhabricatorSubscribersQuery::loadSubscribersForPHID(
$mock->getPHID());
@@ -75,12 +76,14 @@
$type_desc = PholioTransactionType::TYPE_DESCRIPTION;
$type_status = PholioTransactionType::TYPE_STATUS;
$type_view = PhabricatorTransactions::TYPE_VIEW_POLICY;
+ $type_edit = PhabricatorTransactions::TYPE_EDIT_POLICY;
$type_cc = PhabricatorTransactions::TYPE_SUBSCRIBERS;
$v_name = $request->getStr('name');
$v_desc = $request->getStr('description');
$v_status = $request->getStr('status');
$v_view = $request->getStr('can_view');
+ $v_edit = $request->getStr('can_edit');
$v_cc = $request->getArr('cc');
$v_projects = $request->getArr('projects');
@@ -89,6 +92,7 @@
$mock_xactions[$type_desc] = $v_desc;
$mock_xactions[$type_status] = $v_status;
$mock_xactions[$type_view] = $v_view;
+ $mock_xactions[$type_edit] = $v_edit;
$mock_xactions[$type_cc] = array('=' => $v_cc);
if (!strlen($request->getStr('name'))) {
@@ -242,6 +246,7 @@
// NOTE: Make this show up correctly on the rendered form.
$mock->setViewPolicy($v_view);
+ $mock->setEditPolicy($v_edit);
$handles = id(new PhabricatorHandleQuery())
->setViewer($user)
@@ -360,6 +365,13 @@
->setPolicies($policies)
->setName('can_view'))
->appendChild(
+ id(new AphrontFormPolicyControl())
+ ->setUser($user)
+ ->setCapability(PhabricatorPolicyCapability::CAN_EDIT)
+ ->setPolicyObject($mock)
+ ->setPolicies($policies)
+ ->setName('can_edit'))
+ ->appendChild(
id(new AphrontFormMarkupControl())
->setValue($list_control))
->appendChild(
diff --git a/src/applications/pholio/storage/PholioMock.php b/src/applications/pholio/storage/PholioMock.php
--- a/src/applications/pholio/storage/PholioMock.php
+++ b/src/applications/pholio/storage/PholioMock.php
@@ -14,6 +14,7 @@
protected $authorPHID;
protected $viewPolicy;
+ protected $editPolicy;
protected $name;
protected $originalName;
@@ -34,11 +35,13 @@
->executeOne();
$view_policy = $app->getPolicy(PholioCapabilityDefaultView::CAPABILITY);
+ $edit_policy = $app->getPolicy(PholioCapabilityDefaultEdit::CAPABILITY);
return id(new PholioMock())
->setAuthorPHID($actor->getPHID())
->attachImages(array())
- ->setViewPolicy($view_policy);
+ ->setViewPolicy($view_policy)
+ ->setEditPolicy($edit_policy);
}
public function getMonogram() {
@@ -178,7 +181,7 @@
case PhabricatorPolicyCapability::CAN_VIEW:
return $this->getViewPolicy();
case PhabricatorPolicyCapability::CAN_EDIT:
- return PhabricatorPolicies::POLICY_NOONE;
+ return $this->getEditPolicy();
}
}

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 17, 11:17 PM (5 d, 3 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7598887
Default Alt Text
D9550.id22887.diff (7 KB)

Event Timeline