3 final class PhortuneExternalUnsubscribeController
4 extends PhortuneExternalController
{
6 protected function handleExternalRequest(AphrontRequest
$request) {
7 $xviewer = $this->getExternalViewer();
8 $email = $this->getAccountEmail();
9 $account = $email->getAccount();
11 $email_uri = $email->getExternalURI();
13 if ($request->isFormOrHisecPost()) {
16 $xactions[] = $email->getApplicationTransactionTemplate()
18 PhortuneAccountEmailStatusTransaction
::TRANSACTIONTYPE
)
19 ->setNewValue(PhortuneAccountEmailStatus
::STATUS_UNSUBSCRIBED
);
21 $email->getApplicationTransactionEditor()
23 ->setActingAsPHID($email->getPHID())
24 ->setContentSourceFromRequest($request)
25 ->setContinueOnMissingFields(true)
26 ->setContinueOnNoEffect(true)
27 ->setCancelURI($email_uri)
28 ->applyTransactions($email, $xactions);
30 return id(new AphrontRedirectResponse())->setURI($email_uri);
33 $email_display = phutil_tag(
36 $email->getAddress());
38 $account_display = phutil_tag(
44 'Permanently Unsubscribe (%s)',
45 $email->getAddress());
47 return $this->newDialog()
48 ->setTitle(pht('Permanently Unsubscribe'))
51 'Permanently unsubscribe this email address (%s) from this '.
52 'payment account (%s)?',
57 'You will no longer receive email and access links will no longer '.
61 'This action is permanent and can not be undone.'))
62 ->addCancelButton($email_uri)
63 ->addSubmitButton($submit);