2014-05-27 07:04:25 +00:00
|
|
|
|
<?php
|
|
|
|
|
namespace Users;
|
|
|
|
|
|
|
|
|
|
use \Helpers\View as view;
|
|
|
|
|
use \Helpers\dbh as dbh;
|
|
|
|
|
use \Users\Account;
|
|
|
|
|
use \Helpers\Table;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
对 \Users\Account 再次进行抽象,满足后台调用的需求,屏蔽一些错误等等
|
|
|
|
|
!!!!important!!!!大部分操作直接来自 \User\Account,慎重修改
|
|
|
|
|
*/
|
|
|
|
|
class Users extends \Zend_Controller_Plugin_Abstract
|
|
|
|
|
{
|
|
|
|
|
private $db;
|
|
|
|
|
protected $events = NULL; //事件
|
|
|
|
|
public $table;
|
|
|
|
|
|
|
|
|
|
public $account;
|
|
|
|
|
|
|
|
|
|
function __construct($accountClass = FALSE,$db = NULL)
|
|
|
|
|
{
|
|
|
|
|
if(empty($db))
|
|
|
|
|
{
|
|
|
|
|
$this->db = \Zend_Registry::get('db');
|
|
|
|
|
}else{
|
|
|
|
|
$this->db = $db;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->table = new Table();
|
|
|
|
|
|
|
|
|
|
$this->config = \Zend_Registry::get('config');
|
|
|
|
|
|
|
|
|
|
if($accountClass === TRUE)
|
|
|
|
|
{
|
|
|
|
|
$this->account = new Account();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-06-05 09:53:18 +00:00
|
|
|
|
//初始化用户类型
|
|
|
|
|
public function initUserType()
|
|
|
|
|
{
|
|
|
|
|
$this->usertype = array(
|
|
|
|
|
'普通会员' => 'member',
|
|
|
|
|
$this->config->auth->groupname => $this->config->auth->indentifier
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取用户类型
|
|
|
|
|
public function getUserType()
|
|
|
|
|
{
|
|
|
|
|
$this->initUserType();
|
|
|
|
|
return $this->usertype;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//通过ID获取User信息
|
|
|
|
|
public function getUser($id)
|
|
|
|
|
{
|
|
|
|
|
$sql="select * from users where id=?";
|
|
|
|
|
$result=$this->db->query($sql,$id);
|
|
|
|
|
$rows = $result->fetch();
|
|
|
|
|
|
|
|
|
|
return $rows;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getUserInfo($id)
|
|
|
|
|
{
|
|
|
|
|
return $this->getUser($id);
|
|
|
|
|
}
|
|
|
|
|
|
2014-05-27 07:04:25 +00:00
|
|
|
|
//通过email地址返回用户信息是否存在
|
|
|
|
|
public function userExists($email = NULL)
|
|
|
|
|
{
|
|
|
|
|
if(empty($email))
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(empty($this->account))
|
|
|
|
|
{
|
|
|
|
|
$account = new Account(FALSE);
|
|
|
|
|
}else{
|
|
|
|
|
$account = $this->account;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$sql = "SELECT * FROM {$account->memberTable} WHERE {$account->FieldEmail}=? LIMIT 1";
|
|
|
|
|
$sth = $this->db->prepare($sql);
|
|
|
|
|
$sth->execute(array($email));
|
|
|
|
|
$row = $sth->fetch();
|
|
|
|
|
|
|
|
|
|
unset($account);
|
|
|
|
|
|
|
|
|
|
if(isset($row['id']) && !empty($row['id']))
|
|
|
|
|
{
|
|
|
|
|
return $row;
|
|
|
|
|
}else{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function storeNewAuthCredential($user)
|
|
|
|
|
{
|
|
|
|
|
if(get_class($user) != 'stdClass')
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$auth = \Zend_Auth::getInstance();
|
|
|
|
|
|
|
|
|
|
if($auth->getStorage()->write($user))
|
|
|
|
|
return true;
|
|
|
|
|
else
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|