Example #1
0
 public function indexAction()
 {
     $limit = $this->request->getQuery('limit', 'int', 25);
     $limit = $limit > 100 ?: $limit;
     $limit = $limit < 10 ?: $limit;
     $order = $this->request->getQuery('order', 'string', '-created_at');
     $query = array('q' => $this->request->getQuery('q', 'string'), 'status' => 'published', 'tid' => $this->request->getQuery('tid', 'int'), 'uid' => $this->request->getQuery('uid', 'int'), 'cid' => $this->request->getQuery('cid', 'int'), 'username' => $this->request->getQuery('username', 'string'), 'order' => $order, 'limit' => $limit, 'page' => $this->request->getQuery('page', 'int', 1));
     if ($query['cid']) {
         $this->view->setVar('category', Category::findFirst($query['cid']));
     }
     if ($query['uid']) {
         $this->view->setVar('author', UserManager::findFirst($query['uid']));
     }
     if ($query['tid']) {
         $this->view->setVar('tag', Tag::findFirst($query['tid']));
     }
     $post = new Post();
     $posts = $post->findPosts($query);
     $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $posts, "limit" => $limit, "page" => $query['page']));
     $paginator->setQuery($query);
     $pager = $paginator->getPaginate();
     $this->view->setVar('pager', $pager);
     $this->view->setVar('query', $query);
     $tag = new Tag();
     $tags = $tag->getPopularTags(6);
     $this->view->setVar('tags', $tags);
 }
Example #2
0
 /**
  * @operationName("Edit User")
  * @operationDescription("Edit User")
  */
 public function editAction()
 {
     $this->view->changeRender('admin/user/create');
     $user = Models\UserManager::findFirst($this->dispatcher->getParam('id'));
     if (!$user) {
     }
     $form = new \Eva\EvaUser\Forms\UserForm();
     $form->setModel($user);
     $form->addForm('profile', 'Eva\\EvaUser\\Forms\\ProfileForm');
     $this->view->setVar('item', $user);
     $this->view->setVar('form', $form);
     if (!$this->request->isPost()) {
         return false;
     }
     $data = $this->request->getPost();
     if (!$form->isFullValid($data)) {
         return $this->showInvalidMessages($form);
     }
     try {
         $form->save();
     } catch (\Exception $e) {
         return $this->showException($e, $form->getModel()->getMessages());
     }
     $this->flashSession->success('SUCCESS_USER_UPDATED');
     return $this->redirectHandler('/admin/user/edit/' . $user->id);
 }
Example #3
0
 /**
  * @operationName("Spam User List")
  * @operationDescription("Spam user list")
  */
 public function indexAction()
 {
     $limit = $this->request->getQuery('limit', 'int', 25);
     $limit = $limit > 100 ? 100 : $limit;
     $limit = $limit < 10 ? 10 : $limit;
     $query = array('status' => $this->request->getQuery('status', 'string', 'spam'), 'uid' => $this->request->getQuery('uid', 'int'), 'cid' => $this->request->getQuery('cid', 'int'), 'username' => $this->request->getQuery('username', 'string'), 'usernameClearly' => $this->request->getQuery('usernameClearly', 'string'), 'email' => $this->request->getQuery('email', 'string'), 'mobile' => $this->request->getQuery('mobile', 'string'), 'screenName' => $this->request->getQuery('screenName', 'string'), 'order' => $this->request->getQuery('order', 'string'), 'limit' => $limit, 'page' => $this->request->getQuery('page', 'int', 1));
     $form = new Forms\FilterForm();
     $form->setValues($this->request->getQuery());
     $this->view->setVar('form', $form);
     $user = new Models\UserManager();
     $users = $user->findUsers($query);
     $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $users, "limit" => $limit, "page" => $query['page']));
     $paginator->setQuery($query);
     $pager = $paginator->getPaginate();
     $this->view->setVar('pager', $pager);
 }
Example #4
0
 /**
  * @operationName("Remove user")
  * @operationDescription("Remove user")
  */
 public function deleteAction()
 {
     if (!$this->request->isDelete()) {
         return $this->showErrorMessageAsJson(405, 'ERR_REQUEST_METHOD_NOT_ALLOW');
     }
     $id = $this->dispatcher->getParam('id');
     $user = Models\UserManager::findFirst($id);
     try {
         if ($user) {
             $user->delete();
         }
     } catch (\Exception $e) {
         return $this->showExceptionAsJson($e, $user->getMessages());
     }
     return $this->response->setJsonContent($user);
 }
Example #5
0
 /**
  * @operationName("Remove user and comments")
  * @operationDescription("Remove user and comments")
  */
 public function deleteUserCommentAction()
 {
     if (!$this->request->isDelete()) {
         return $this->showErrorMessageAsJson(405, 'ERR_REQUEST_METHOD_NOT_ALLOW');
     }
     $userId = $this->dispatcher->getParam('id');
     //删除评论
     $commentModel = new CommentManager();
     try {
         $comments = $commentModel->findCommentsByUserId($userId);
         foreach ($comments as $comment) {
             $commentModel->updateCommentStatus($comment, Comments::STATE_SPAM);
         }
         $commentModel->syncCommentNum();
     } catch (\Exception $e) {
         return $this->showExceptionAsJson($e, $comment->getMessages());
     }
     //删除用户
     $user = Models\UserManager::findFirst($userId);
     if (!$user) {
         return $this->showErrorMessageAsJson(404, 'ERR_USER_NOT_FOUND');
     }
     try {
         $user->status = 'deleted';
         $user->save();
     } catch (\Exception $e) {
         return $this->showExceptionAsJson($e, $user->getMessages());
     }
     $userInfo = $this->getUserInfo();
     $operationData = array('operatorId' => $userInfo['id'], 'subjectUser' => $user);
     $this->getDI()->getEventsManager()->fire('audit:createOperation', $operationData);
     return $this->response->setJsonContent($user);
 }
Example #6
0
 /**
  *
  * @SWG\Api(
  *   path="/admin/users/{userId}",
  *   description="User related api",
  *   produces="['application/json']",
  *   @SWG\Operations(
  *     @SWG\Operation(
  *       method="DELETE",
  *       summary="Delete user by ID",
  *       notes="Returns deleted user",
  *       @SWG\Parameters(
  *         @SWG\Parameter(
  *           name="userId",
  *           description="ID of user",
  *           paramType="path",
  *           required=true,
  *           type="integer"
  *         )
  *       )
  *     )
  *   )
  * )
  * @operationName("删除用户")
  * @operationDescription("删除用户")
  */
 public function deleteAction()
 {
     $id = $this->dispatcher->getParam('id');
     $user = Models\UserManager::findFirst($id);
     if (!$user) {
         throw new Exception\ResourceNotFoundException('Request user not exist');
     }
     $userinfo = $user->dump(Models\UserManager::$defaultDump);
     try {
         $user->removeUser($id);
         return $this->response->setJsonContent($userinfo);
     } catch (\Exception $e) {
         return $this->showExceptionAsJson($e, $user->getMessages());
     }
 }
Example #7
0
 public function loginHistoryAction()
 {
     $limit = $this->request->getQuery('limit', 'int', 25);
     $limit = $limit > 100 ? 100 : $limit;
     $limit = $limit < 10 ? 10 : $limit;
     $query = array('order' => $this->request->getQuery('order', 'string', '-created_at'), 'limit' => $limit, 'page' => $this->request->getQuery('page', 'int', 1), 'source' => $this->request->getQuery('source', 'string'));
     $form = new Forms\FilterForm();
     $form->setValues($this->request->getQuery());
     $this->view->setVar('form', $form);
     $user = new Models\UserManager();
     $users = $user->findLoginedUsers($query);
     $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $users, "limit" => $limit, "page" => $query['page']));
     $paginator->setQuery($query);
     $pager = $paginator->getPaginate();
     $pager = $user->correctPaginator($pager, $users, $limit);
     $this->view->setVar('pager', $pager);
 }