179 lines
4.8 KiB
PHP
179 lines
4.8 KiB
PHP
|
<?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()
|
||
|
{
|
||
|
//其他连接
|
||
|
}
|
||
|
|
||
|
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;
|
||
|
}
|
||
|
|
||
|
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
|
||
|
}
|
||
|
|