PATH:
home
/
letacommog
/
newrdv1
/
wp-content
/
plugins
/
wordpress-social-login
/
hybridauth
/
Hybrid
<?php /** * HybridAuth * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth * (c) 2009-2014, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html */ /** * Hybrid_Provider_Model provide a common interface for supported IDps on HybridAuth. * * Basically, each provider adapter has to define at least 4 methods: * Hybrid_Providers_{provider_name}::initialize() * Hybrid_Providers_{provider_name}::loginBegin() * Hybrid_Providers_{provider_name}::loginFinish() * Hybrid_Providers_{provider_name}::getUserProfile() * * HybridAuth also come with three others models * Class Hybrid_Provider_Model_OpenID for providers that uses the OpenID 1 and 2 protocol. * Class Hybrid_Provider_Model_OAuth1 for providers that uses the OAuth 1 protocol. * Class Hybrid_Provider_Model_OAuth2 for providers that uses the OAuth 2 protocol. */ abstract class Hybrid_Provider_Model { /** * IDp ID (or unique name) * @var Numeric/String */ public $providerId = NULL; /** * specific provider adapter config * @var array */ public $config = NULL; /** * provider extra parameters * @var array */ public $params = NULL; /** * Endpoint URL for that provider * @var String */ public $endpoint = NULL; /** * Hybrid_User obj, represents the current loggedin user * @var object */ public $user = NULL; /** * the provider api client (optional) * @var object */ public $api = NULL; /** * Common providers adapter constructor * @param Numeric/String $providerId * @param Array $config * @param Array $params */ function __construct( $providerId, $config, $params = NULL ) { # init the IDp adapter parameters, get them from the cache if possible if( ! $params ){ $this->params = Hybrid_Auth::storage()->get( "hauth_session.$providerId.id_provider_params" ); } else{ $this->params = $params; } // idp id $this->providerId = $providerId; // set HybridAuth endpoint for this provider $this->endpoint = Hybrid_Auth::storage()->get( "hauth_session.$providerId.hauth_endpoint" ); // idp config $this->config = $config; // new user instance $this->user = new Hybrid_User(); $this->user->providerId = $providerId; // initialize the current provider adapter $this->initialize(); } // -------------------------------------------------------------------- /** * IDp wrappers initializer * * The main job of wrappers initializer is to performs (depend on the IDp api client it self): * - include some libs needed by this provider, * - check IDp key and secret, * - set some needed parameters (stored in $this->params) by this IDp api client * - create and setup an instance of the IDp api client on $this->api */ abstract protected function initialize(); // -------------------------------------------------------------------- /** * begin login */ abstract protected function loginBegin(); // -------------------------------------------------------------------- /** * finish login */ abstract protected function loginFinish(); // -------------------------------------------------------------------- /** * generic logout, just erase current provider adapter stored data to let Hybrid_Auth all forget about it */ function logout() { $this->clearTokens(); return TRUE; } // -------------------------------------------------------------------- /** * grab the user profile from the IDp api client */ function getUserProfile() { throw new Exception( "Provider does not support this feature.", 8 ); } // -------------------------------------------------------------------- /** * load the current logged in user contacts list from the IDp api client */ function getUserContacts() { throw new Exception( "Provider does not support this feature.", 8 ); } // -------------------------------------------------------------------- /** * return the user activity stream */ function getUserActivity( $stream ) { throw new Exception( "Provider does not support this feature.", 8 ); } // -------------------------------------------------------------------- /** * set user status */ function setUserStatus( $status ) { throw new Exception( "Provider does not support this feature.", 8 ); } /** * return the user status */ function getUserStatus( $statusid ) { throw new Exception( "Provider does not support this feature.", 8 ); } // -------------------------------------------------------------------- /** * return true if the user is connected to the current provider */ public function isUserConnected() { return (bool) Hybrid_Auth::storage()->get( "hauth_session.{$this->providerId}.is_logged_in" ); } // -------------------------------------------------------------------- /** * set user to connected */ public function setUserConnected() { Hybrid_Auth::storage()->set( "hauth_session.{$this->providerId}.is_logged_in", 1 ); } // -------------------------------------------------------------------- /** * set user to unconnected */ public function setUserUnconnected() { Hybrid_Auth::storage()->set( "hauth_session.{$this->providerId}.is_logged_in", 0 ); } // -------------------------------------------------------------------- /** * get or set a token */ public function token( $token, $value = NULL ) { if( $value === NULL ){ return Hybrid_Auth::storage()->get( "hauth_session.{$this->providerId}.token.$token" ); } else{ Hybrid_Auth::storage()->set( "hauth_session.{$this->providerId}.token.$token", $value ); } } // -------------------------------------------------------------------- /** * delete a stored token */ public function deleteToken( $token ) { Hybrid_Auth::storage()->delete( "hauth_session.{$this->providerId}.token.$token" ); } // -------------------------------------------------------------------- /** * clear all existent tokens for this provider */ public function clearTokens() { Hybrid_Auth::storage()->deleteMatch( "hauth_session.{$this->providerId}." ); } }
[+]
..
[+]
resources
[-] User_Activity.php
[edit]
[+]
thirdparty
[-] Storage.php
[edit]
[-] Endpoint.php
[edit]
[-] index.html
[edit]
[-] Provider_Model_OAuth1.php
[edit]
[-] Provider_Model_OAuth2.php
[edit]
[-] User.php
[edit]
[-] Error.php
[edit]
[-] User_Contact.php
[edit]
[-] User_Profile.php
[edit]
[-] Auth.php
[edit]
[+]
Providers
[-] Exception.php
[edit]
[-] Provider_Model_OpenID.php
[edit]
[-] Provider_Model.php
[edit]
[-] Provider_Adapter.php
[edit]