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 @@ -2757,6 +2757,7 @@ 'PhabricatorProjectMemberOfProjectEdgeType' => 'applications/project/edge/PhabricatorProjectMemberOfProjectEdgeType.php', 'PhabricatorProjectMembersDatasource' => 'applications/project/typeahead/PhabricatorProjectMembersDatasource.php', 'PhabricatorProjectMembersEditController' => 'applications/project/controller/PhabricatorProjectMembersEditController.php', + 'PhabricatorProjectMembersOfProjectPolicyRule' => 'applications/project/policyrule/PhabricatorProjectMembersOfProjectPolicyRule.php', 'PhabricatorProjectMembersRemoveController' => 'applications/project/controller/PhabricatorProjectMembersRemoveController.php', 'PhabricatorProjectMoveController' => 'applications/project/controller/PhabricatorProjectMoveController.php', 'PhabricatorProjectNoProjectsDatasource' => 'applications/project/typeahead/PhabricatorProjectNoProjectsDatasource.php', @@ -6957,6 +6958,7 @@ 'PhabricatorProjectMemberOfProjectEdgeType' => 'PhabricatorEdgeType', 'PhabricatorProjectMembersDatasource' => 'PhabricatorTypeaheadCompositeDatasource', 'PhabricatorProjectMembersEditController' => 'PhabricatorProjectController', + 'PhabricatorProjectMembersOfProjectPolicyRule' => 'PhabricatorPolicyRule', 'PhabricatorProjectMembersRemoveController' => 'PhabricatorProjectController', 'PhabricatorProjectMoveController' => 'PhabricatorProjectController', 'PhabricatorProjectNoProjectsDatasource' => 'PhabricatorTypeaheadDatasource', diff --git a/src/applications/project/controller/PhabricatorProjectProfileController.php b/src/applications/project/controller/PhabricatorProjectProfileController.php --- a/src/applications/project/controller/PhabricatorProjectProfileController.php +++ b/src/applications/project/controller/PhabricatorProjectProfileController.php @@ -92,7 +92,8 @@ ->setName(pht('Edit Details')) ->setIcon('fa-pencil') ->setHref($this->getApplicationURI("details/{$id}/")) - ->setDisabled(!$can_edit)); + ->setDisabled(!$can_edit) + ->setWorkflow(!$can_edit)); $view->addAction( id(new PhabricatorActionView()) diff --git a/src/applications/project/policyrule/PhabricatorProjectMembersOfProjectPolicyRule.php b/src/applications/project/policyrule/PhabricatorProjectMembersOfProjectPolicyRule.php new file mode 100644 --- /dev/null +++ b/src/applications/project/policyrule/PhabricatorProjectMembersOfProjectPolicyRule.php @@ -0,0 +1,47 @@ +withSourcePHIDs(array($viewer->getPHID())) + ->withDestinationPHIDs(array($object->getPHID())) + ->withEdgeTypes( + array( + PhabricatorProjectMemberOfProjectEdgeType::EDGECONST, + )); + $edge_query->execute(); + + return (bool)$edge_query->getDestinationPHIDs(); + } + + public function getValueControlType() { + return self::CONTROL_TYPE_NONE; + } + +}