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); }
/** * @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); }
/** * @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); }
/** * @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); }
/** * @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); }
/** * * @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()); } }
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); }