diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -1943,6 +1943,7 @@ 'PhabricatorAuthSessionEngineExtension' => 'applications/auth/engine/PhabricatorAuthSessionEngineExtension.php', 'PhabricatorAuthSessionEngineExtensionModule' => 'applications/auth/engine/PhabricatorAuthSessionEngineExtensionModule.php', 'PhabricatorAuthSessionGarbageCollector' => 'applications/auth/garbagecollector/PhabricatorAuthSessionGarbageCollector.php', + 'PhabricatorAuthSessionInfo' => 'applications/auth/data/PhabricatorAuthSessionInfo.php', 'PhabricatorAuthSessionQuery' => 'applications/auth/query/PhabricatorAuthSessionQuery.php', 'PhabricatorAuthSetupCheck' => 'applications/config/check/PhabricatorAuthSetupCheck.php', 'PhabricatorAuthStartController' => 'applications/auth/controller/PhabricatorAuthStartController.php', @@ -6776,6 +6777,7 @@ 'PhabricatorAuthSessionEngineExtension' => 'Phobject', 'PhabricatorAuthSessionEngineExtensionModule' => 'PhabricatorConfigModule', 'PhabricatorAuthSessionGarbageCollector' => 'PhabricatorGarbageCollector', + 'PhabricatorAuthSessionInfo' => 'Phobject', 'PhabricatorAuthSessionQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'PhabricatorAuthSetupCheck' => 'PhabricatorSetupCheck', 'PhabricatorAuthStartController' => 'PhabricatorAuthController', diff --git a/src/applications/auth/data/PhabricatorAuthSessionInfo.php b/src/applications/auth/data/PhabricatorAuthSessionInfo.php new file mode 100644 --- /dev/null +++ b/src/applications/auth/data/PhabricatorAuthSessionInfo.php @@ -0,0 +1,36 @@ +sessionType = $session_type; + return $this; + } + + public function getSessionType() { + return $this->sessionType; + } + + public function setIdentityPHID($identity_phid) { + $this->identityPHID = $identity_phid; + return $this; + } + + public function getIdentityPHID() { + return $this->identityPHID; + } + + public function setIsPartial($is_partial) { + $this->isPartial = $is_partial; + return $this; + } + + public function getIsPartial() { + return $this->isPartial; + } + +} diff --git a/src/applications/auth/engine/PhabricatorAuthSessionEngine.php b/src/applications/auth/engine/PhabricatorAuthSessionEngine.php --- a/src/applications/auth/engine/PhabricatorAuthSessionEngine.php +++ b/src/applications/auth/engine/PhabricatorAuthSessionEngine.php @@ -270,6 +270,16 @@ $log->save(); unset($unguarded); + $info = id(new PhabricatorAuthSessionInfo()) + ->setSessionType($session_type) + ->setIdentityPHID($identity_phid) + ->setIsPartial($partial); + + $extensions = PhabricatorAuthSessionEngineExtension::getAllExtensions(); + foreach ($extensions as $extension) { + $extension->didEstablishSession($info); + } + return $session_key; } @@ -837,6 +847,11 @@ // Switch to the user's translation. PhabricatorEnv::setLocaleCode($user->getTranslation()); + + $extensions = PhabricatorAuthSessionEngineExtension::getAllExtensions(); + foreach ($extensions as $extension) { + $extension->willServeRequestForUser($user); + } } } diff --git a/src/applications/auth/engine/PhabricatorAuthSessionEngineExtension.php b/src/applications/auth/engine/PhabricatorAuthSessionEngineExtension.php --- a/src/applications/auth/engine/PhabricatorAuthSessionEngineExtension.php +++ b/src/applications/auth/engine/PhabricatorAuthSessionEngineExtension.php @@ -16,6 +16,14 @@ abstract public function getExtensionName(); + public function didEstablishSession(PhabricatorAuthSessionInfo $info) { + return; + } + + public function willServeRequestForUser(PhabricatorUser $user) { + return; + } + public function didLogout(PhabricatorUser $user, array $sessions) { return; }