mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-13 10:22:42 +01:00
69cc5df645
Summary: Ref T4712. Thus far, it seems that most "non-standard" things can be done pretty easily in the controller. Aside from deploying, this diff had to fix a few bugs / missing implementations of stuff. (Notably, PhabricatorAuthProviderConfig, HeraldRule, PhabricatorSlowvotePoll, and AlmanacNetwork needed to implement PhabricatorApplicationTransactionInterface, PhabricatorAuthAuthProviderPHIDType had to be added, and a rendering bug in transactions of type PhabricatorOAuth2AuthProvider had to be fixed.) Test Plan: Almanac - looked at binding, device, network, and service view controllers and verified timeline displayed properly. Herald - looked at a rule and verified timeline. Slowvote - looked at a vote and verified timeline. Auth - looked at an auth provider (Facebook) and verified proper display of transactions within timeline. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin, epriestley Maniphest Tasks: T4712 Differential Revision: https://secure.phabricator.com/D10921
154 lines
3.9 KiB
PHP
154 lines
3.9 KiB
PHP
<?php
|
|
|
|
final class PhabricatorAuthProviderConfigTransaction
|
|
extends PhabricatorApplicationTransaction {
|
|
|
|
const TYPE_ENABLE = 'config:enable';
|
|
const TYPE_REGISTRATION = 'config:registration';
|
|
const TYPE_LINK = 'config:link';
|
|
const TYPE_UNLINK = 'config:unlink';
|
|
const TYPE_TRUST_EMAILS = 'config:trustEmails';
|
|
const TYPE_PROPERTY = 'config:property';
|
|
|
|
const PROPERTY_KEY = 'auth:property';
|
|
|
|
private $provider;
|
|
|
|
public function setProvider(PhabricatorAuthProvider $provider) {
|
|
$this->provider = $provider;
|
|
return $this;
|
|
}
|
|
|
|
public function getProvider() {
|
|
return $this->provider;
|
|
}
|
|
|
|
public function getApplicationName() {
|
|
return 'auth';
|
|
}
|
|
|
|
public function getApplicationTransactionType() {
|
|
return PhabricatorAuthAuthProviderPHIDType::TYPECONST;
|
|
}
|
|
|
|
public function getApplicationTransactionCommentObject() {
|
|
return null;
|
|
}
|
|
|
|
public function getIcon() {
|
|
$old = $this->getOldValue();
|
|
$new = $this->getNewValue();
|
|
|
|
switch ($this->getTransactionType()) {
|
|
case self::TYPE_ENABLE:
|
|
if ($new) {
|
|
return 'fa-play';
|
|
} else {
|
|
return 'fa-pause';
|
|
}
|
|
}
|
|
|
|
return parent::getIcon();
|
|
}
|
|
|
|
public function getColor() {
|
|
$old = $this->getOldValue();
|
|
$new = $this->getNewValue();
|
|
|
|
switch ($this->getTransactionType()) {
|
|
case self::TYPE_ENABLE:
|
|
if ($new) {
|
|
return 'green';
|
|
} else {
|
|
return 'red';
|
|
}
|
|
}
|
|
|
|
return parent::getColor();
|
|
}
|
|
|
|
public function getTitle() {
|
|
$author_phid = $this->getAuthorPHID();
|
|
|
|
$old = $this->getOldValue();
|
|
$new = $this->getNewValue();
|
|
|
|
switch ($this->getTransactionType()) {
|
|
case self::TYPE_ENABLE:
|
|
if ($old === null) {
|
|
return pht(
|
|
'%s created this provider.',
|
|
$this->renderHandleLink($author_phid));
|
|
} else if ($new) {
|
|
return pht(
|
|
'%s enabled this provider.',
|
|
$this->renderHandleLink($author_phid));
|
|
} else {
|
|
return pht(
|
|
'%s disabled this provider.',
|
|
$this->renderHandleLink($author_phid));
|
|
}
|
|
break;
|
|
case self::TYPE_REGISTRATION:
|
|
if ($new) {
|
|
return pht(
|
|
'%s enabled registration.',
|
|
$this->renderHandleLink($author_phid));
|
|
} else {
|
|
return pht(
|
|
'%s disabled registration.',
|
|
$this->renderHandleLink($author_phid));
|
|
}
|
|
break;
|
|
case self::TYPE_LINK:
|
|
if ($new) {
|
|
return pht(
|
|
'%s enabled accont linking.',
|
|
$this->renderHandleLink($author_phid));
|
|
} else {
|
|
return pht(
|
|
'%s disabled account linking.',
|
|
$this->renderHandleLink($author_phid));
|
|
}
|
|
break;
|
|
case self::TYPE_UNLINK:
|
|
if ($new) {
|
|
return pht(
|
|
'%s enabled account unlinking.',
|
|
$this->renderHandleLink($author_phid));
|
|
} else {
|
|
return pht(
|
|
'%s disabled account unlinking.',
|
|
$this->renderHandleLink($author_phid));
|
|
}
|
|
break;
|
|
case self::TYPE_TRUST_EMAILS:
|
|
if ($new) {
|
|
return pht(
|
|
'%s enabled email trust.',
|
|
$this->renderHandleLink($author_phid));
|
|
} else {
|
|
return pht(
|
|
'%s disabled email trust.',
|
|
$this->renderHandleLink($author_phid));
|
|
}
|
|
break;
|
|
case self::TYPE_PROPERTY:
|
|
$provider = $this->getProvider();
|
|
if ($provider) {
|
|
$title = $provider->renderConfigPropertyTransactionTitle($this);
|
|
if (strlen($title)) {
|
|
return $title;
|
|
}
|
|
}
|
|
|
|
return pht(
|
|
'%s edited a property of this provider.',
|
|
$this->renderHandleLink($author_phid));
|
|
break;
|
|
}
|
|
|
|
return parent::getTitle();
|
|
}
|
|
|
|
}
|