1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-30 18:52:42 +01:00
phorge-phorge/src/applications/auth/exception/PhabricatorAuthInviteDialogException.php
epriestley 2a0af8e299 Add email invites to Phabricator (logic only)
Summary:
Ref T7152. This builds the core of email invites and implements all the hard logic for them, covering it with a pile of tests.

There's no UI to create these yet, so users can't actually get invites (and administrators can't send them).

This stuff is a complicated mess because there are so many interactions between accounts, email addresses, email verification, email primary-ness, and user verification. However, I think I got it right and got test coverage everwhere.

The degree to which this is exception-driven is a little icky, but I think it's a reasonable way to get the testability we want while still making it hard for callers to get the flow wrong. In particular, I expect there to be at least two callers (one invite flow in the upstream, and one derived invite flow in Instances) so I believe there is merit in burying as much of this logic inside the Engine as is reasonably possible.

Test Plan: Unit tests only.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T7152

Differential Revision: https://secure.phabricator.com/D11723
2015-02-09 16:12:36 -08:00

63 lines
1.4 KiB
PHP

<?php
abstract class PhabricatorAuthInviteDialogException
extends PhabricatorAuthInviteException {
private $title;
private $body;
private $submitButtonText;
private $submitButtonURI;
private $cancelButtonText;
private $cancelButtonURI;
public function __construct($title, $body) {
$this->title = $title;
$this->body = $body;
parent::__construct(pht('%s: %s', $title, $body));
}
public function getTitle() {
return $this->title;
}
public function getBody() {
return $this->body;
}
public function setSubmitButtonText($submit_button_text) {
$this->submitButtonText = $submit_button_text;
return $this;
}
public function getSubmitButtonText() {
return $this->submitButtonText;
}
public function setSubmitButtonURI($submit_button_uri) {
$this->submitButtonURI = $submit_button_uri;
return $this;
}
public function getSubmitButtonURI() {
return $this->submitButtonURI;
}
public function setCancelButtonText($cancel_button_text) {
$this->cancelButtonText = $cancel_button_text;
return $this;
}
public function getCancelButtonText() {
return $this->cancelButtonText;
}
public function setCancelButtonURI($cancel_button_uri) {
$this->cancelButtonURI = $cancel_button_uri;
return $this;
}
public function getCancelButtonURI() {
return $this->cancelButtonURI;
}
}