mirror of
https://github.com/e107inc/e107.git
synced 2025-02-22 07:47:10 +01:00
141 lines
2.8 KiB
PHP
141 lines
2.8 KiB
PHP
<?php
|
|
/**
|
|
* HybridAuth
|
|
* http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
|
|
* (c) 2009-2014, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
|
|
*/
|
|
|
|
require_once realpath( dirname( __FILE__ ) ) . "/StorageInterface.php";
|
|
|
|
/**
|
|
* HybridAuth storage manager
|
|
*/
|
|
class Hybrid_Storage implements Hybrid_Storage_Interface
|
|
{
|
|
/**
|
|
* Constructor
|
|
*/
|
|
function __construct()
|
|
{
|
|
if ( ! session_id() ){
|
|
if( ! session_start() ){
|
|
throw new Exception( "Hybridauth requires the use of 'session_start()' at the start of your script, which appears to be disabled.", 1 );
|
|
}
|
|
}
|
|
|
|
$this->config( "php_session_id", session_id() );
|
|
$this->config( "version", Hybrid_Auth::$version );
|
|
}
|
|
|
|
/**
|
|
* Config
|
|
* @param String $key
|
|
* @param String $value
|
|
*/
|
|
public function config($key, $value = null)
|
|
{
|
|
$key = strtolower( $key );
|
|
|
|
if( $value ){
|
|
$_SESSION["HA::CONFIG"][$key] = serialize( $value );
|
|
}
|
|
elseif( isset( $_SESSION["HA::CONFIG"][$key] ) ){
|
|
return unserialize( $_SESSION["HA::CONFIG"][$key] );
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
/**
|
|
* Get a key
|
|
* @param String $key
|
|
*/
|
|
public function get($key)
|
|
{
|
|
$key = strtolower( $key );
|
|
|
|
if( isset( $_SESSION["HA::STORE"], $_SESSION["HA::STORE"][$key] ) ){
|
|
return unserialize( $_SESSION["HA::STORE"][$key] );
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
/**
|
|
* GEt a set of key and value
|
|
* @param String $key
|
|
* @param String $value
|
|
*/
|
|
public function set( $key, $value )
|
|
{
|
|
$key = strtolower( $key );
|
|
|
|
$_SESSION["HA::STORE"][$key] = serialize( $value );
|
|
}
|
|
|
|
/**
|
|
* Clear session storage
|
|
*/
|
|
function clear()
|
|
{
|
|
$_SESSION["HA::STORE"] = ARRAY();
|
|
}
|
|
|
|
/**
|
|
* Delete a specific key
|
|
* @param String $key
|
|
*/
|
|
function delete($key)
|
|
{
|
|
$key = strtolower( $key );
|
|
|
|
if( isset( $_SESSION["HA::STORE"], $_SESSION["HA::STORE"][$key] ) ){
|
|
$f = $_SESSION['HA::STORE'];
|
|
unset($f[$key]);
|
|
$_SESSION["HA::STORE"] = $f;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Delete a set
|
|
* @param String $key
|
|
*/
|
|
function deleteMatch($key)
|
|
{
|
|
$key = strtolower( $key );
|
|
|
|
if( isset( $_SESSION["HA::STORE"] ) && count( $_SESSION["HA::STORE"] ) ) {
|
|
$f = $_SESSION['HA::STORE'];
|
|
foreach( $f as $k => $v ){
|
|
if( strstr( $k, $key ) ){
|
|
unset( $f[ $k ] );
|
|
}
|
|
}
|
|
$_SESSION["HA::STORE"] = $f;
|
|
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get the storage session data into an array
|
|
* @return Array
|
|
*/
|
|
function getSessionData()
|
|
{
|
|
if( isset( $_SESSION["HA::STORE"] ) ){
|
|
return serialize( $_SESSION["HA::STORE"] );
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
/**
|
|
* Restore the storage back into session from an array
|
|
* @param Array $sessiondata
|
|
*/
|
|
function restoreSessionData( $sessiondata = NULL )
|
|
{
|
|
$_SESSION["HA::STORE"] = unserialize( $sessiondata );
|
|
}
|
|
}
|