Вход Регистрация
Файл: Source/auth/Social/Protocol/Model/Base.php
Строк: 135
<?php
/**
 * Social_Protocol_Model_Base provides oommons abstract class for several Networks
 * e.g. Facebook, Twitter, Google, Yahoo, Linkedin, etc...
 *
 * @author Hüseyin BABAL
 */

abstract class Social_Protocol_Model_Base {

    public 
$network_name;

    public 
$config;

    public 
$params;

    public 
$client;

    public 
$user;

    public 
$api;

    function 
__construct( $network_name, $config, $params = null ) {
        if( ! 
$params ){
            
$this->params = Social_Auth::session()->get( "sa_session.$network_name.network_params" );
        } else {
            
$this->params = $params;
        }

        
$this->network_name = $network_name;

        
$this->client = Social_Auth::session()->get( "sa_session.$network_name.sa_client" );

        
$this->config = $config;

        
$this->user = new Social_User();
        
$this->user->network_name = $network_name;

        
$this->init();

        
Social_Logger::debug( "Social_Protocol_Model_Base initialized for $network_name : ", serialize( $this ) );
    }

    abstract protected function 
init();

    abstract protected function 
startLogin();

    abstract protected function 
finishLogin();

    function 
logout() {
        
Social_Logger::info( "###$this->network_name::logout()" );
        
$this->clearTokens();
        return 
true;
    }

    public function 
disconnectUser() {
        
Social_Logger::info( "###$this->network_name::disconnectUser()" );
        
Social_Auth::session()->set( "sa_session.{$this->network_name}.logged_in", 0 );
    }

    public function 
isUserConnected() {
        return (bool) 
Social_Auth::session()->get( "sa_session.{$this->network_name}.logged_in" );
    }

    public function 
connectUser() {
        
Social_Logger::info( "###$this->network_name::connectUser()" );
        
Social_Auth::session()->set( "sa_session.{$this->network_name}.logged_in", 1 );
    }

    public function 
setToken( $token, $value ) {
        
Social_Auth::session()->set( "sa_session.{$this->network_name}.token.$token", $value );
    }

    public function 
getToken( $token ){
        return 
Social_Auth::session()->get( "sa_session.{$this->network_name}.token.$token" );
    }

    public function 
deleteToken( $token ) {
        
Social_Auth::session()->deleteByKey( "sa_session.{$this->network_name}.token.$token" );
    }

    public function 
clearTokens() {
        
Social_Auth::session()->deleteByNetwork( "sa_session.{$this->network_name}." );
    }


}
Онлайн: 0
Реклама