Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/auth/controller/PhabricatorAuthInviteController.php
12256 views
1
<?php
2
3
final class PhabricatorAuthInviteController
4
extends PhabricatorAuthController {
5
6
public function shouldRequireLogin() {
7
return false;
8
}
9
10
public function handleRequest(AphrontRequest $request) {
11
$viewer = $this->getViewer();
12
13
$engine = id(new PhabricatorAuthInviteEngine())
14
->setViewer($viewer);
15
16
if ($request->isFormPost()) {
17
$engine->setUserHasConfirmedVerify(true);
18
}
19
20
$invite_code = $request->getURIData('code');
21
22
try {
23
$invite = $engine->processInviteCode($invite_code);
24
} catch (PhabricatorAuthInviteDialogException $ex) {
25
$response = $this->newDialog()
26
->setTitle($ex->getTitle())
27
->appendParagraph($ex->getBody());
28
29
$submit_text = $ex->getSubmitButtonText();
30
if ($submit_text) {
31
$response->addSubmitButton($submit_text);
32
}
33
34
$submit_uri = $ex->getSubmitButtonURI();
35
if ($submit_uri) {
36
$response->setSubmitURI($submit_uri);
37
}
38
39
$cancel_uri = $ex->getCancelButtonURI();
40
$cancel_text = $ex->getCancelButtonText();
41
if ($cancel_uri && $cancel_text) {
42
$response->addCancelButton($cancel_uri, $cancel_text);
43
} else if ($cancel_uri) {
44
$response->addCancelButton($cancel_uri);
45
}
46
47
return $response;
48
} catch (PhabricatorAuthInviteRegisteredException $ex) {
49
// We're all set on processing this invite, just send the user home.
50
return id(new AphrontRedirectResponse())->setURI('/');
51
}
52
53
// Give the user a cookie with the invite code and send them through
54
// normal registration. We'll adjust the flow there.
55
$request->setCookie(
56
PhabricatorCookies::COOKIE_INVITE,
57
$invite_code);
58
59
return id(new AphrontRedirectResponse())->setURI('/auth/start/');
60
}
61
62
63
}
64
65