Beispiel #1
0
 /**
  * @operationName("User List")
  * @operationDescription("Get user list")
  */
 public function indexAction()
 {
     $limit = $this->request->getQuery('per_page', 'int', 25);
     $limit = $limit > 100 ? 100 : $limit;
     $limit = $limit < 10 ? 10 : $limit;
     $query = array('status' => $this->request->getQuery('status', 'string'), 'uid' => $this->request->getQuery('uid', 'int'), 'cid' => $this->request->getQuery('cid', 'int'), 'username' => $this->request->getQuery('username', '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);
 }
Beispiel #2
0
 /**
  *
  * @SWG\Api(
  *   path="/admin/users",
  *   description="User manage API",
  *   produces="['application/json']",
  *   @SWG\Operations(
  *     @SWG\Operation(
  *       method="GET",
  *       summary="Get user list",
  *       notes="Returns user list with paginator",
  *       @SWG\Parameters(
  *         @SWG\Parameter(
  *           name="username",
  *           description="Username",
  *           paramType="query",
  *           required=false,
  *           type="string"
  *         ),
  *         @SWG\Parameter(
  *           name="status",
  *           description="Status, allow value : pending | published | deleted | draft",
  *           paramType="query",
  *           required=false,
  *           type="string"
  *         ),
  *         @SWG\Parameter(
  *           name="order",
  *           description="Order, allow value : +-id, +-created_at, default is -created_at",
  *           paramType="query",
  *           required=false,
  *           type="string"
  *         ),
  *         @SWG\Parameter(
  *           name="limit",
  *           description="Limit max:100 | min:3; default is 25",
  *           paramType="query",
  *           required=false,
  *           type="integer"
  *         )
  *       )
  *     )
  *   )
  * )
  * @operationName("用户列表")
  * @operationDescription("用户列表")
  */
 public function indexAction()
 {
     $limit = $this->request->getQuery('limit', 'int', 25);
     $limit = $limit > 100 ? 100 : $limit;
     $limit = $limit < 3 ? 3 : $limit;
     $order = $this->request->getQuery('order', 'string', '-created_at');
     $query = array('q' => $this->request->getQuery('q', 'string'), 'status' => $this->request->getQuery('status', 'string'), '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));
     $form = new Forms\FilterForm();
     $form->setValues($this->request->getQuery());
     $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();
     $userArray = array();
     if ($pager->items) {
         foreach ($pager->items as $key => $user) {
             $userArray[] = $user->dump(Models\UserManager::$defaultDump);
         }
     }
     $data = array('paginator' => $this->getApiPaginator($paginator), 'results' => $userArray);
     return $this->response->setJsonContent($data);
 }
Beispiel #3
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);
 }