diff --git a/application/admin/controllers/UserController.php b/application/admin/controllers/UserController.php new file mode 100755 index 00000000..00e23b70 --- /dev/null +++ b/application/admin/controllers/UserController.php @@ -0,0 +1,178 @@ +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 +} + diff --git a/application/admin/views/scripts/header.phtml b/application/admin/views/scripts/header.phtml index fcb15a78..02566463 100755 --- a/application/admin/views/scripts/header.phtml +++ b/application/admin/views/scripts/header.phtml @@ -8,8 +8,7 @@
用户名 | +电子邮箱 | +用户类型 | +真实姓名 | +电话 | +操作 | +
= $item['username']?> | += $item['email']; ?> | += $item['usertype']; ?> | += $item['realname']; ?> | += $item['phone']; ?> | ++'>查看详细 + | +
msg; ?>
+messages): foreach($this->messages as $msg): ?> + + +用户名 | +电子邮箱 | +用户类型 | +真实姓名 | +操作 | +
= $item['username']?> | += $item['email']; ?> | += $item['usertype']; ?> | += $item['realname']; ?> | ++/uname/= $item['username'];?>' onclick="return confirm('确定将此记录删除?')">删除 +'>查看详细 +/id/= $item['id'];?>' onclick="return confirm('是否确定为他重置密码?')">重置密码 + | +