Path: blob/master/src/applications/auth/controller/mfa/PhabricatorAuthChallengeStatusController.php
12262 views
<?php12final class PhabricatorAuthChallengeStatusController3extends PhabricatorAuthController {45public function shouldAllowPartialSessions() {6// We expect that users may request the status of an MFA challenge when7// they hit the session upgrade gate on login.8return true;9}1011public function handleRequest(AphrontRequest $request) {12$viewer = $this->getViewer();13$id = $request->getURIData('id');14$now = PhabricatorTime::getNow();1516$result = new PhabricatorAuthChallengeUpdate();1718$challenge = id(new PhabricatorAuthChallengeQuery())19->setViewer($viewer)20->withIDs(array($id))21->withUserPHIDs(array($viewer->getPHID()))22->withChallengeTTLBetween($now, null)23->executeOne();24if ($challenge) {25$config = id(new PhabricatorAuthFactorConfigQuery())26->setViewer($viewer)27->withPHIDs(array($challenge->getFactorPHID()))28->executeOne();29if ($config) {30$provider = $config->getFactorProvider();31$factor = $provider->getFactor();3233$result = $factor->newChallengeStatusView(34$config,35$provider,36$viewer,37$challenge);38}39}4041return id(new AphrontAjaxResponse())42->setContent($result->newContent());43}4445}464748