getActor(); return !$this->isViewerAnyAuditor($object, $actor); } public function applyExternalEffects($object, $value) { $status = PhabricatorAuditStatusConstants::RESIGNED; $actor = $this->getActor(); $this->applyAuditorEffect($object, $actor, $value, $status); } protected function validateAction($object, PhabricatorUser $viewer) { if (!$this->isViewerAnyAuditor($object, $viewer)) { throw new Exception( pht( 'You can not resign from this commit because you are not an '. 'auditor.')); } } public function getTitle() { return pht( '%s resigned from this commit.', $this->renderAuthor()); } public function getTitleForFeed() { return pht( '%s resigned from %s.', $this->renderAuthor(), $this->renderObject()); } }