/**
  * @api {get} /admin/user 获得全部用户信息
  * @apiHeader {String} Accept=api-version=1.0 api版本
  * @apiHeaderExample {String} Header-Example:
  *     {
  *       "Accept": "api-version=1.0"
  *       "token": xxx
  *     }
  * @apiName getUser
  * @apiGroup Admin
  * @apiVersion 1.0.0
  *
  * @apiSuccess {Array} users 该用户的信息
  *     HTTP/1.1 200 OK
  *       {
  *           "users": [
  *                       {
  *                           "id": "1",
  *                           "username": "******",
  *                           "name": "Edvard",
  *                           "organization": null,
  *                           "title": "Software Enginner",
  *                           "email": "*****@*****.**"
  *                       },
  *                       {
  *                           "id": "2",
  *                           "username": "******",
  *                           "name": "Lucky",
  *                           "organization": "WTF",
  *                           "title": null,
  *                           "email": null
  *                       }
  *           ],
  *           "total_pages": 1,
  *           "total_items": 2,
  *           "current": 1,
  *           "prev": "/admin/user?p=1",
  *           "next": "/admin/user?p=2",
  *           "perpage": 10
  *       }
  *
  * @apiUse errorExample
  */
 public function getUsers()
 {
     $userModel = new User();
     $p = $this->request->get('p');
     if (!empty($p) && !is_numeric($p)) {
         return parent::invalid('p', $p);
     }
     $perpage = $this->request->get('perpage');
     if (!empty($p) && !is_numeric($perpage)) {
         return parent::invalid('perpage', $perpage);
     }
     $page = $userModel->page('User', 'id,username, name, organization, title, email', 'isdeleted=0', 'created_time desc');
     $items['users'] = $page->items->toArray();
     return parent::success($userModel->commonPageField($items, $page, $p, $this->request->get('_url')));
 }
 public function publishLookupTables()
 {
     $ucv = new UserCanView();
     SimpleQuery::create('TRUNCATE ' . $ucv->tableName());
     $ucv->clearQueryCache();
     $user = new User();
     $cont = true;
     $num = 1;
     while ($cont) {
         try {
             $users = $user->page($num, 10)->objects();
             $num++;
             foreach ($users as $user) {
                 $entry = new Entry();
                 $cont_entry = true;
                 $entry_num = 1;
                 while ($cont_entry) {
                     try {
                         $entries = $entry->page($entry_num, 10)->objects();
                         $entry_num++;
                         foreach ($entries as $entry) {
                             if (LogbookAccess::userCanDoAction($user, $entry, LogbookAccess::VIEW)) {
                                 $ucv = new UserCanView();
                                 $ucv->construct($entry->get('author_id'), $entry->id(), $user->id());
                                 $ucv->save();
                             }
                         }
                     } catch (Exception $exc) {
                         $cont_entry = false;
                     }
                 }
             }
         } catch (Exception $exc) {
             $cont = false;
         }
     }
 }