84 lines
1.7 KiB
PHP
84 lines
1.7 KiB
PHP
|
<?php
|
|||
|
namespace Open\Handler;
|
|||
|
|
|||
|
use \Helpers\View as view;
|
|||
|
use \Helpers\dbh;
|
|||
|
use \Helpers\Table;
|
|||
|
use \Files\Files;
|
|||
|
use \stdClass;
|
|||
|
use \Users\Users;
|
|||
|
|
|||
|
class ClientHandler implements \Open\Event\ClientEvent
|
|||
|
{
|
|||
|
private $db; //传入PDO对象误
|
|||
|
private $config; //全局配置
|
|||
|
|
|||
|
public $table;
|
|||
|
public $tbl_maillog = ""; //邮件日志表
|
|||
|
|
|||
|
function __construct($db = NULL)
|
|||
|
{
|
|||
|
if(empty($db))
|
|||
|
{
|
|||
|
$this->db = \Zend_Registry::get('db');
|
|||
|
}else{
|
|||
|
$this->db = $db;
|
|||
|
}
|
|||
|
|
|||
|
$this->config = \Zend_Registry::get('config');
|
|||
|
$this->table = new Table();
|
|||
|
}
|
|||
|
|
|||
|
//获得Handler,type必须与 \Open\Source中同步,否则会出现错误
|
|||
|
//
|
|||
|
public function getHandler($type,$data)
|
|||
|
{
|
|||
|
if($type == 'escience')
|
|||
|
{
|
|||
|
return new \Open\Handler\ClientTokenHandler\Escience($data);
|
|||
|
}
|
|||
|
|
|||
|
if($type == 'sina')
|
|||
|
{
|
|||
|
return new \Open\Handler\ClientTokenHandler\Sina($data);
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
//存储token信息
|
|||
|
public function tokenAndDataStorage(\Zend_EventManager_Event $e)
|
|||
|
{
|
|||
|
$type = $e->getParam('type');
|
|||
|
$data = $e->getParam('token');
|
|||
|
|
|||
|
$handler = $this->getHandler($type,$data);
|
|||
|
|
|||
|
if($status = $handler->doit() === true)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}else{
|
|||
|
return $status;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//检查用户账户是否存在
|
|||
|
//存在就返回用户信息,不存在返回false
|
|||
|
//通用事件,通过各个 TokenHandler中内置Listener直接挂载,不需要引入整个ClientListener
|
|||
|
public function userCheck(\Zend_EventManager_Event $e)
|
|||
|
{
|
|||
|
$email = $e->getParam('email');
|
|||
|
|
|||
|
$user = new Users();
|
|||
|
$current = $user->userExists($email);
|
|||
|
|
|||
|
if($current === false)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
return $current;
|
|||
|
}
|
|||
|
|
|||
|
}
|