Page MenuHomePhabricator

D9238.diff
No OneTemporary

D9238.diff

diff --git a/src/applications/dashboard/controller/PhabricatorDashboardPanelEditController.php b/src/applications/dashboard/controller/PhabricatorDashboardPanelEditController.php
--- a/src/applications/dashboard/controller/PhabricatorDashboardPanelEditController.php
+++ b/src/applications/dashboard/controller/PhabricatorDashboardPanelEditController.php
@@ -66,16 +66,30 @@
->readFieldsFromStorage($panel);
$validation_exception = null;
+
if ($request->isFormPost()) {
$v_name = $request->getStr('name');
+ $v_view_policy = $request->getStr('viewPolicy');
+ $v_edit_policy = $request->getStr('editPolicy');
+
+ $type_name = PhabricatorDashboardPanelTransaction::TYPE_NAME;
+ $type_view_policy = PhabricatorTransactions::TYPE_VIEW_POLICY;
+ $type_edit_policy = PhabricatorTransactions::TYPE_EDIT_POLICY;
$xactions = array();
- $type_name = PhabricatorDashboardPanelTransaction::TYPE_NAME;
$xactions[] = id(new PhabricatorDashboardPanelTransaction())
->setTransactionType($type_name)
->setNewValue($v_name);
+ $xactions[] = id(new PhabricatorDashboardPanelTransaction())
+ ->setTransactionType($type_view_policy)
+ ->setNewValue($v_view_policy);
+
+ $xactions[] = id(new PhabricatorDashboardPanelTransaction())
+ ->setTransactionType($type_edit_policy)
+ ->setNewValue($v_edit_policy);
+
$field_xactions = $field_list->buildFieldTransactionsFromRequest(
new PhabricatorDashboardPanelTransaction(),
$request);
@@ -94,9 +108,17 @@
$validation_exception = $ex;
$e_name = $validation_exception->getShortMessage($type_name);
+
+ $panel->setViewPolicy($v_view_policy);
+ $panel->setEditPolicy($v_edit_policy);
}
}
+ $policies = id(new PhabricatorPolicyQuery())
+ ->setViewer($viewer)
+ ->setObject($panel)
+ ->execute();
+
$form = id(new AphrontFormView())
->setUser($viewer)
->appendChild(
@@ -104,7 +126,19 @@
->setLabel(pht('Name'))
->setName('name')
->setValue($v_name)
- ->setError($e_name));
+ ->setError($e_name))
+ ->appendChild(
+ id(new AphrontFormPolicyControl())
+ ->setName('viewPolicy')
+ ->setPolicyObject($panel)
+ ->setCapability(PhabricatorPolicyCapability::CAN_VIEW)
+ ->setPolicies($policies))
+ ->appendChild(
+ id(new AphrontFormPolicyControl())
+ ->setName('editPolicy')
+ ->setPolicyObject($panel)
+ ->setCapability(PhabricatorPolicyCapability::CAN_EDIT)
+ ->setPolicies($policies));
$field_list->appendFieldsToForm($form);
diff --git a/src/applications/dashboard/editor/PhabricatorDashboardPanelTransactionEditor.php b/src/applications/dashboard/editor/PhabricatorDashboardPanelTransactionEditor.php
--- a/src/applications/dashboard/editor/PhabricatorDashboardPanelTransactionEditor.php
+++ b/src/applications/dashboard/editor/PhabricatorDashboardPanelTransactionEditor.php
@@ -63,6 +63,8 @@
switch ($xaction->getTransactionType()) {
case PhabricatorDashboardPanelTransaction::TYPE_NAME:
+ case PhabricatorTransactions::TYPE_VIEW_POLICY:
+ case PhabricatorTransactions::TYPE_EDIT_POLICY:
return;
}

File Metadata

Mime Type
text/plain
Expires
Mon, May 13, 11:01 PM (2 w, 1 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6283665
Default Alt Text
D9238.diff (3 KB)

Event Timeline