Path: blob/master/src/applications/auth/controller/PhabricatorAuthInviteController.php
12256 views
<?php12final class PhabricatorAuthInviteController3extends PhabricatorAuthController {45public function shouldRequireLogin() {6return false;7}89public function handleRequest(AphrontRequest $request) {10$viewer = $this->getViewer();1112$engine = id(new PhabricatorAuthInviteEngine())13->setViewer($viewer);1415if ($request->isFormPost()) {16$engine->setUserHasConfirmedVerify(true);17}1819$invite_code = $request->getURIData('code');2021try {22$invite = $engine->processInviteCode($invite_code);23} catch (PhabricatorAuthInviteDialogException $ex) {24$response = $this->newDialog()25->setTitle($ex->getTitle())26->appendParagraph($ex->getBody());2728$submit_text = $ex->getSubmitButtonText();29if ($submit_text) {30$response->addSubmitButton($submit_text);31}3233$submit_uri = $ex->getSubmitButtonURI();34if ($submit_uri) {35$response->setSubmitURI($submit_uri);36}3738$cancel_uri = $ex->getCancelButtonURI();39$cancel_text = $ex->getCancelButtonText();40if ($cancel_uri && $cancel_text) {41$response->addCancelButton($cancel_uri, $cancel_text);42} else if ($cancel_uri) {43$response->addCancelButton($cancel_uri);44}4546return $response;47} catch (PhabricatorAuthInviteRegisteredException $ex) {48// We're all set on processing this invite, just send the user home.49return id(new AphrontRedirectResponse())->setURI('/');50}5152// Give the user a cookie with the invite code and send them through53// normal registration. We'll adjust the flow there.54$request->setCookie(55PhabricatorCookies::COOKIE_INVITE,56$invite_code);5758return id(new AphrontRedirectResponse())->setURI('/auth/start/');59}606162}636465