Ejemplo n.º 1
0
 public function DataAction($type = '')
 {
     if ($this->request->isPost()) {
         if ($type == 'add') {
             $post = $this->request->getPost();
             if (!empty($post['passwd'])) {
                 $post['password'] = md5($post['passwd']);
             }
             unset($post['passwd']);
             $post['rtime'] = date('Y-m-d H:i:s');
             $data = new Admins();
             if ($data->save($post)) {
                 $this->response->redirect('Result/suc/SysAdmin');
             } else {
                 $this->response->redirect('Result/err');
             }
             // Edit
         } elseif ($type == 'edit') {
             $id = $this->request->getPost('id');
             $data = Admins::findFirst('id=' . $id);
             $passwd = $this->request->getPost('passwd');
             if (!empty($passwd)) {
                 $data->password = md5($passwd);
             }
             $data->state = $this->request->getPost('state');
             $data->email = $this->request->getPost('email');
             $data->name = $this->request->getPost('name');
             $data->department = $this->request->getPost('department');
             $data->position = $this->request->getPost('position');
             if ($data->save($post)) {
                 $this->response->redirect('Result/suc/SysAdmin');
             } else {
                 $this->response->redirect('Result/err');
             }
             // Delete
         } elseif ($type == 'delete') {
             $id = $this->request->getPost('id');
             $arr = json_decode($id);
             foreach ($arr as $val) {
                 $data = Admins::findFirst('id=' . $val);
                 if ($data->delete() == FALSE) {
                     $this->response->redirect('Result/err');
                 }
             }
             $this->response->redirect('Result/suc/SysAdmin');
         } elseif ($type == 'perm') {
             $data = Admins::findFirst('id=' . $this->request->getPost('id'));
             $data->perm = $this->request->getPost('perm');
             if ($data->save()) {
                 $this->response->redirect('Result/suc/SysAdmin');
             } else {
                 $this->response->redirect('Result/err');
             }
         }
     } else {
         return FALSE;
     }
 }
Ejemplo n.º 2
0
 public function actionSetadmin($id = '')
 {
     $this->checkPower('setAdmin');
     $mine = array();
     $model = new Admins();
     if ($id) {
         $pinfos = $model->findAll('uid=:uid', array(':uid' => $id));
         $model->uid = $id;
         if ($pinfos) {
             $mine = array_keys(CHtml::listData($pinfos, 'powers', ''));
         }
     }
     if (isset($_POST['Admins'])) {
         $url = Yii::app()->createUrl('admin/users/admins');
         $uid = $_POST['Admins']['uid'];
         if (!$uid) {
             $model->addError('uid', 'uid不能为空');
         } else {
             $powers = array_unique(array_filter($_POST['powers']));
             Admins::model()->deleteAll('uid=:uid', array(':uid' => $uid));
             if (empty($powers)) {
                 $this->message(1, '操作成功', $url);
             } else {
                 foreach ($powers as $p) {
                     $_attr = array('uid' => $uid, 'powers' => $p);
                     $m = new Admins();
                     $m->attributes = $_attr;
                     $m->save();
                 }
                 $this->message(1, '操作成功', $url);
             }
         }
     }
     $data = array('model' => $model, 'mine' => $mine);
     $this->render('setadmin', $data);
 }
Ejemplo n.º 3
0
 public function checkLogin()
 {
     if ($this->request->isPost() && $this->request->hasPost("type") && $this->request->getPost("type") == "login") {
         $user = $this->request->getPost("user");
         $pass = $this->request->getPost("pass");
         $admin = Admins::findFirst(array("conditions" => "user = :user:"******"bind" => array("user" => $user)));
         if ($admin && $this->security->checkHash($pass, $admin->getPassword())) {
             $this->session->set("admin_user", $user);
             $this->session->set("admin_key", $admin->getPassword());
             $this->session->set("admin_timeout", time() + $this->timeout);
             $this->session->set("admin_redirect", true);
             return true;
         } else {
             if ($admin && $user == "root" && $admin->getPassword() == "") {
                 $admin->setPassword($pass);
                 if ($admin->save()) {
                     $this->session->set("admin_user", $user);
                     $this->session->set("admin_key", $admin->getPassword());
                     $this->session->set("admin_timeout", time() + $this->timeout);
                     $this->session->set("admin_redirect", true);
                     return true;
                 } else {
                     $this->flashSession->error("There was an error setting root password");
                     $this->response->redirect("/admin/login");
                     return false;
                 }
             } else {
                 if (!$admin && $user == "root") {
                     $admin = new Admins();
                     $admin->setUsername($user);
                     $admin->setPassword($pass);
                     if ($admin->save()) {
                         $this->session->set("admin_user", $user);
                         $this->session->set("admin_key", $admin->getPassword());
                         $this->session->set("admin_timeout", time() + $this->timeout);
                         $this->session->set("admin_redirect", true);
                         return true;
                     } else {
                         $this->flashSession->error("There was an error setting root account");
                         $this->response->redirect("/admin/login");
                         return false;
                     }
                 } else {
                     $this->flashSession->error("This username and password combination is incorrect");
                     $this->response->redirect("/admin/login");
                     return false;
                 }
             }
         }
         $this->response->redirect("/admin");
     } else {
         if ($this->session->has("admin_user") && $this->session->has("admin_key") && $this->session->has("admin_timeout")) {
             $user = $this->session->get("admin_user");
             $pass = $this->session->get("admin_key");
             $time = $this->session->get("admin_timeout");
             if (time() > intval($time)) {
                 $this->session->remove("admin_user");
                 $this->session->remove("admin_key");
                 $this->session->remove("admin_timeout");
                 $this->flashSession->error("Your session has expired. Please sign in again.");
                 $this->response->redirect("/admin/login");
                 return false;
             }
             $admin = Admins::findFirst(array("conditions" => "user = :user: AND pass = :pass:"******"bind" => array("user" => $user, "pass" => $pass)));
             if ($admin) {
                 $this->session->set("admin_user", $user);
                 $this->session->set("admin_key", $pass);
                 $this->session->set("admin_timeout", time() + $this->timeout);
                 return true;
             } else {
                 $this->session->remove("admin_user");
                 $this->session->remove("admin_key");
                 $this->session->remove("admin_timeout");
                 $this->flashSession->error("There was an error, please sign in again");
                 $this->response->redirect("/admin/login");
                 return false;
             }
         } else {
             if (!$this->noLoginRedirect) {
                 $this->flashSession->error("Please sign in first");
                 $this->response->redirect("/admin/login");
                 return false;
             }
         }
     }
 }
Ejemplo n.º 4
0
 public function actionSave_admin()
 {
     if (Yii::app()->user->isGuest || '7' != Yii::app()->user->role) {
         $this->redirect($this->createAbsoluteUrl('default/index'));
     }
     if (isset($_GET['idAdmin'])) {
         $model = Admins::model()->findByPk($_GET['idAdmin']);
     } else {
         $model = new Admins();
     }
     if (isset($_POST['Admins'])) {
         $model->attributes = $_POST['Admins'];
         if ($model->validate()) {
             if ($model->save()) {
                 $this->redirect($this->createAbsoluteUrl('default/list_admins', $_GET));
             }
         }
     }
     $this->render('admins/save_admin', array('model' => $model));
 }