westdc-zf1/application/module/Users/Users.php

117 lines
2.2 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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();
}
}
//初始化用户类型
public function initUserType()
{
$this->usertype = array(
'普通会员' => 'member',
$this->config->auth->groupname => $this->config->auth->identifier
);
}
//获取用户类型
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);
}
//通过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;
}
}