mirror of
https://we.phorge.it/source/phorge.git
synced 2025-03-28 12:08:14 +01:00
Add session and request hooks to PhabricatorAuthSessionEngine
Summary: This supports doing a bunch of sales funnel tracking on Phacility. Test Plan: See next diff. Reviewers: chad Reviewed By: chad Differential Revision: https://secure.phabricator.com/D16890
This commit is contained in:
parent
79132311f4
commit
2befd239a8
4 changed files with 61 additions and 0 deletions
|
@ -1943,6 +1943,7 @@ phutil_register_library_map(array(
|
|||
'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 @@ phutil_register_library_map(array(
|
|||
'PhabricatorAuthSessionEngineExtension' => 'Phobject',
|
||||
'PhabricatorAuthSessionEngineExtensionModule' => 'PhabricatorConfigModule',
|
||||
'PhabricatorAuthSessionGarbageCollector' => 'PhabricatorGarbageCollector',
|
||||
'PhabricatorAuthSessionInfo' => 'Phobject',
|
||||
'PhabricatorAuthSessionQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
'PhabricatorAuthSetupCheck' => 'PhabricatorSetupCheck',
|
||||
'PhabricatorAuthStartController' => 'PhabricatorAuthController',
|
||||
|
|
36
src/applications/auth/data/PhabricatorAuthSessionInfo.php
Normal file
36
src/applications/auth/data/PhabricatorAuthSessionInfo.php
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
final class PhabricatorAuthSessionInfo extends Phobject {
|
||||
|
||||
private $sessionType;
|
||||
private $identityPHID;
|
||||
private $isPartial;
|
||||
|
||||
public function setSessionType($session_type) {
|
||||
$this->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;
|
||||
}
|
||||
|
||||
}
|
|
@ -270,6 +270,16 @@ final class PhabricatorAuthSessionEngine extends Phobject {
|
|||
$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 @@ final class PhabricatorAuthSessionEngine extends Phobject {
|
|||
|
||||
// Switch to the user's translation.
|
||||
PhabricatorEnv::setLocaleCode($user->getTranslation());
|
||||
|
||||
$extensions = PhabricatorAuthSessionEngineExtension::getAllExtensions();
|
||||
foreach ($extensions as $extension) {
|
||||
$extension->willServeRequestForUser($user);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -16,6 +16,14 @@ abstract class PhabricatorAuthSessionEngineExtension
|
|||
|
||||
abstract public function getExtensionName();
|
||||
|
||||
public function didEstablishSession(PhabricatorAuthSessionInfo $info) {
|
||||
return;
|
||||
}
|
||||
|
||||
public function willServeRequestForUser(PhabricatorUser $user) {
|
||||
return;
|
||||
}
|
||||
|
||||
public function didLogout(PhabricatorUser $user, array $sessions) {
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue