236 lines
6.4 KiB
PHP
Executable File
236 lines
6.4 KiB
PHP
Executable File
<?php
|
|
class Admin_UserController extends Zend_Controller_Action
|
|
{
|
|
function preDispatch()
|
|
{
|
|
$this->db=Zend_Registry::get('db');
|
|
$this->view->config = Zend_Registry::get('config');
|
|
$this->messenger=$this->_helper->getHelper('FlashMessenger');
|
|
$this->view->messages = $this->messenger->getMessages();
|
|
}
|
|
function postDispatch()
|
|
{
|
|
$this->view->messages = $this->messenger->getMessages();
|
|
}
|
|
function indexAction()
|
|
{
|
|
$sql="select count(id) as total from users";
|
|
$uq=$this->db->query($sql);
|
|
$row=$uq->fetch();
|
|
|
|
$sqlt="select count(id) as total from users where usertype='administrator'";
|
|
$uqt=$this->db->query($sqlt);
|
|
$adminrow=$uqt->fetch();
|
|
|
|
$this->view->su=$row;
|
|
$this->view->suadmin=$adminrow;
|
|
|
|
}//indexAction
|
|
|
|
function listAction()
|
|
{
|
|
|
|
$select=$this->db->select();
|
|
|
|
|
|
$select->from('users')
|
|
->where('usertype = ?', 'member')
|
|
->order('users.id desc');
|
|
|
|
|
|
$paginator = Zend_Paginator::factory($select);
|
|
$paginator->setCurrentPageNumber($this->_getParam('page'));
|
|
$paginator->setItemCountPerPage(30);
|
|
$paginator->setView($this->view);
|
|
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
|
|
$this->view->paginator=$paginator;
|
|
}//listAction
|
|
|
|
function searchAction()
|
|
{
|
|
$search = $this->_getParam('search');
|
|
$realname = $this->view->realname = $this->_getParam('realname');
|
|
$unit = $this->view->unit = $this->_getParam('unit');
|
|
$project = $this->view->project = $this->_getParam('project');
|
|
|
|
$select=$this->db->select();
|
|
|
|
if(!empty($search) && ( !empty($realname) || !empty($unit) || !empty($project) ))
|
|
{
|
|
$this->messenger->addMessage('搜索结果');
|
|
$select->from('users');
|
|
if(!empty($realname))
|
|
$select->where('realname like ? ', '%'.$realname.'%');
|
|
if(!empty($unit))
|
|
$select->where('unit like ? ', '%'.$unit.'%');
|
|
if(!empty($project))
|
|
$select->where('project like ? ', '%'.$project.'%');
|
|
|
|
$select->order('users.id desc');
|
|
|
|
|
|
|
|
$paginator = Zend_Paginator::factory($select);
|
|
$paginator->setCurrentPageNumber($this->_getParam('page'));
|
|
$paginator->setItemCountPerPage(30);
|
|
$paginator->setView($this->view);
|
|
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
|
|
$this->view->paginator=$paginator;
|
|
$this->_helper->viewRenderer('list');
|
|
|
|
}
|
|
else {
|
|
$this->_redirect("/admin/user/list");
|
|
}
|
|
|
|
|
|
|
|
|
|
}//searchAction
|
|
|
|
function deleteAction()
|
|
{
|
|
$delete=(int)$this->_getParam('id');
|
|
$deletename = $this->_getParam('uname');
|
|
|
|
if (isset($delete))
|
|
{
|
|
$sql="delete from users where id=?";
|
|
try {
|
|
$this->db->query($sql,array($delete));
|
|
$this->messenger->addMessage('您已经成功的删除了用户:'.$deletename);
|
|
} catch (Exception $e) {
|
|
$this->messenger->addMessage($e->getMessage());
|
|
}
|
|
$this->_redirect("/admin/user/list");
|
|
}
|
|
}
|
|
|
|
function adminlistAction()
|
|
{
|
|
$select=$this->db->select();
|
|
$select->from('users')
|
|
->where('usertype = ?', 'administrator')
|
|
->order('users.id desc');
|
|
$paginator = Zend_Paginator::factory($select);
|
|
$paginator->setCurrentPageNumber($this->_getParam('page'));
|
|
$paginator->setItemCountPerPage(30);
|
|
$paginator->setView($this->view);
|
|
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
|
|
$this->view->paginator=$paginator;
|
|
}
|
|
|
|
function showAction()
|
|
{
|
|
$id=(int)$this->_getParam('id');
|
|
if (isset($id))
|
|
{
|
|
try {
|
|
$sql="select * from users where id=?";
|
|
$result=$this->db->query($sql,$id);
|
|
$rows = $result->fetch();
|
|
$this->view->infos=$rows;
|
|
} catch (Exception $e) {
|
|
$this->messenger->addMessage($e->getMessage());
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$this->_redirect("/admin/user/list");
|
|
}
|
|
}
|
|
|
|
function editAction()
|
|
{
|
|
$id=(int)$this->_getParam('id');
|
|
$usertype=$this->_getParam('usertype');
|
|
$newpwd=$this->_getParam('newpwd');
|
|
$cfnewpwd=$this->_getParam('cfnewpwd');
|
|
$sql="";
|
|
$updates=array();
|
|
if (isset($id))
|
|
{
|
|
if(!empty($newpwd)&&!empty($cfnewpwd))
|
|
{
|
|
if($newpwd==$cfnewpwd)
|
|
{
|
|
$password=md5($newpwd);
|
|
$updates[]="password='$password'";
|
|
}
|
|
else
|
|
{
|
|
$this->messenger->addMessage('两次密码不相同');
|
|
$this->_redirect("/admin/user/show/id/$id");
|
|
}
|
|
}
|
|
if(isset($usertype))
|
|
{
|
|
$updates[]="usertype='$usertype'";
|
|
}
|
|
|
|
$update=join(',',$updates);
|
|
$sql="update users set $update where id='$id'";
|
|
|
|
try {
|
|
$this->db->query($sql);
|
|
$this->messenger->addMessage('编辑成功!');
|
|
} catch (Exception $e) {
|
|
$this->messenger->addMessage($e->getMessage());
|
|
}
|
|
$this->_redirect("/admin/user/show/id/$id");
|
|
}
|
|
else {
|
|
$this->_redirect("/admin/user/list");
|
|
}
|
|
|
|
}
|
|
|
|
function fetchpwdAction()
|
|
{
|
|
$id=(int)$this->_getParam('id');
|
|
$email=$this->_getParam('email');
|
|
if (!empty($email))
|
|
{
|
|
try {
|
|
$sql="select * from users where email=?";
|
|
$uq=$this->db->query($sql,$email);
|
|
if ($urow=$uq->fetch())
|
|
{
|
|
//email the url to user
|
|
$username=$urow['username'];
|
|
$sql="update users set activation=? where email=?";
|
|
$uid=uniqid();
|
|
$this->db->query($sql,array($uid,$email));
|
|
$mail=new WestdcMailer($this->view->config->smtp);
|
|
$body="尊敬的西部数据中心用户:
|
|
有人提出了针对此用户名的密码重置请求。
|
|
|
|
用户名:";
|
|
$body.=$username;
|
|
$body.="
|
|
|
|
若想重置您的密码请打开下面的链接,否则请忽略此邮件,一切如常。
|
|
";
|
|
$body.="http://westdc.westgis.ac.cn/account/fetchpwd/".$username."/".$uid;
|
|
$mail->setBodyText($body);
|
|
$mail->setFrom($this->view->config->service->email,'西部数据中心服务组');
|
|
$mail->addTo($email);
|
|
$mail->setSubject('密码已重置');
|
|
$mail->send();
|
|
$this->messenger->addMessage('密码重置成功!');
|
|
}
|
|
} catch (Exception $e) {
|
|
$this->messenger->addMessage($e->getMessage().$email);
|
|
}
|
|
$this->_redirect("/admin/user/show/id/$id");
|
|
}
|
|
else {
|
|
$this->_redirect("/admin/user/list");
|
|
}
|
|
|
|
}
|
|
|
|
//overview
|
|
}
|
|
|