mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-01 11:12:42 +01:00
515f9a36ab
Summary: Ref T603. Fixes T3921. Tightens up policy controls for file/object relationships in existing applications. Test Plan: - Uploaded new project image, verified it got an edge to the project. - Uploaded new profile image, verified it got an edge to me. - Uploaded new macro image, verified it got an edge to the macro. - Uploaded new paste via web UI and conduit, verified it got attached. - Replaced, added images to a mock, verified they got edges. Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T3921, T603 Differential Revision: https://secure.phabricator.com/D7254
131 lines
3.4 KiB
PHP
131 lines
3.4 KiB
PHP
<?php
|
|
|
|
final class PhabricatorPasteTransaction
|
|
extends PhabricatorApplicationTransaction {
|
|
|
|
const TYPE_CREATE = 'paste.create';
|
|
const TYPE_TITLE = 'paste.title';
|
|
const TYPE_LANGUAGE = 'paste.language';
|
|
|
|
public function getApplicationName() {
|
|
return 'pastebin';
|
|
}
|
|
|
|
public function getApplicationTransactionType() {
|
|
return PhabricatorPastePHIDTypePaste::TYPECONST;
|
|
}
|
|
|
|
public function getApplicationTransactionCommentObject() {
|
|
return new PhabricatorPasteTransactionComment();
|
|
}
|
|
|
|
public function getRequiredHandlePHIDs() {
|
|
$phids = parent::getRequiredHandlePHIDs();
|
|
|
|
switch ($this->getTransactionType()) {
|
|
case self::TYPE_CREATE:
|
|
$phids[] = $this->getObjectPHID();
|
|
break;
|
|
}
|
|
|
|
return $phids;
|
|
}
|
|
|
|
public function shouldHide() {
|
|
$old = $this->getOldValue();
|
|
switch ($this->getTransactionType()) {
|
|
case self::TYPE_TITLE:
|
|
case self::TYPE_LANGUAGE:
|
|
return $old === null;
|
|
}
|
|
return parent::shouldHide();
|
|
}
|
|
|
|
public function getIcon() {
|
|
switch ($this->getTransactionType()) {
|
|
case self::TYPE_CREATE:
|
|
return 'create';
|
|
break;
|
|
case self::TYPE_TITLE:
|
|
case self::TYPE_LANGUAGE:
|
|
return 'edit';
|
|
break;
|
|
}
|
|
return parent::getIcon();
|
|
}
|
|
|
|
public function getTitle() {
|
|
$author_phid = $this->getAuthorPHID();
|
|
$object_phid = $this->getObjectPHID();
|
|
|
|
$old = $this->getOldValue();
|
|
$new = $this->getNewValue();
|
|
|
|
$type = $this->getTransactionType();
|
|
switch ($type) {
|
|
case PhabricatorPasteTransaction::TYPE_CREATE:
|
|
return pht(
|
|
'%s created "%s".',
|
|
$this->renderHandleLink($author_phid),
|
|
$this->renderHandleLink($object_phid));
|
|
break;
|
|
case PhabricatorPasteTransaction::TYPE_TITLE:
|
|
return pht(
|
|
'%s updated the paste\'s title to "%s".',
|
|
$this->renderHandleLink($author_phid),
|
|
$new);
|
|
break;
|
|
case PhabricatorPasteTransaction::TYPE_LANGUAGE:
|
|
return pht(
|
|
"%s updated the paste's language.",
|
|
$this->renderHandleLink($author_phid));
|
|
break;
|
|
}
|
|
|
|
return parent::getTitle();
|
|
}
|
|
|
|
public function getTitleForFeed(PhabricatorFeedStory $story) {
|
|
$author_phid = $this->getAuthorPHID();
|
|
$object_phid = $this->getObjectPHID();
|
|
|
|
$old = $this->getOldValue();
|
|
$new = $this->getNewValue();
|
|
|
|
$type = $this->getTransactionType();
|
|
switch ($type) {
|
|
case PhabricatorPasteTransaction::TYPE_CREATE:
|
|
return pht(
|
|
'%s created %s.',
|
|
$this->renderHandleLink($author_phid),
|
|
$this->renderHandleLink($object_phid));
|
|
break;
|
|
case PhabricatorPasteTransaction::TYPE_TITLE:
|
|
return pht(
|
|
'%s updated the title for %s.',
|
|
$this->renderHandleLink($author_phid),
|
|
$this->renderHandleLink($object_phid));
|
|
break;
|
|
case PhabricatorPasteTransaction::TYPE_LANGUAGE:
|
|
return pht(
|
|
'%s update the language for %s.',
|
|
$this->renderHandleLink($author_phid),
|
|
$this->renderHandleLink($object_phid));
|
|
break;
|
|
}
|
|
|
|
return parent::getTitleForFeed($story);
|
|
}
|
|
|
|
public function getColor() {
|
|
$old = $this->getOldValue();
|
|
$new = $this->getNewValue();
|
|
|
|
switch ($this->getTransactionType()) {
|
|
case PhabricatorPasteTransaction::TYPE_CREATE:
|
|
return PhabricatorTransactions::COLOR_GREEN;
|
|
}
|
|
|
|
return parent::getColor();
|
|
}
|
|
}
|