示例#1
0
 /**
  * Renders the user listing page.
  *
  * This page renders a table of users, with dropdown menus for admin actions for each user.
  * Actions typically include: edit user details, activate user, enable/disable user, delete user.
  * This page requires authentication.
  * Request type: GET
  * @param string $primary_group_name optional.  If specified, will only display users in that particular primary group.
  * @param bool $paginate_server_side optional.  Set to true if you want UF to load each page of results via AJAX on demand, rather than all at once.
  * @todo implement interface to modify user-assigned authorization hooks and permissions
  */
 public function pageUsers($primary_group_name = null, $paginate_server_side = true)
 {
     // Optional filtering by primary group
     if ($primary_group_name) {
         $primary_group = GroupLoader::fetch($primary_group_name, 'name');
         if (!$primary_group) {
             $this->_app->notFound();
         }
         // Access-controlled page
         if (!$this->_app->user->checkAccess('uri_group_users', ['primary_group_id' => $primary_group->id])) {
             $this->_app->notFound();
         }
         if (!$paginate_server_side) {
             $users = UserLoader::fetchAll($primary_group->id, 'primary_group_id');
         }
         $name = $primary_group->name;
         $icon = $primary_group->icon;
     } else {
         // Access-controlled page
         if (!$this->_app->user->checkAccess('uri_users')) {
             $this->_app->notFound();
         }
         if (!$paginate_server_side) {
             $user_collection = (new User())->get();
             $user_collection->getRecentEvents('sign_in');
             $user_collection->getRecentEvents('sign_up', 'sign_up_time');
         }
         $name = "Users";
         $icon = "fa fa-users";
     }
     $this->_app->render('users/users.twig', ["box_title" => $name, "icon" => $icon, "primary_group_name" => $primary_group_name, "paginate_server_side" => $paginate_server_side, "users" => isset($user_collection) ? $user_collection->toArray() : []]);
 }
示例#2
0
 /**
  * Renders the user listing page.
  *
  * This page renders a table of users, with dropdown menus for admin actions for each user.
  * Actions typically include: edit user details, activate user, enable/disable user, delete user.
  * This page requires authentication.
  * Request type: GET
  * @param string $primary_group_name optional.  If specified, will only display users in that particular primary group.
  * @todo implement interface to modify user-assigned authorization hooks and permissions
  */
 public function pageUsers($primary_group_name = null)
 {
     // Optional filtering by primary group
     if ($primary_group_name) {
         $primary_group = GroupLoader::fetch($primary_group_name, 'name');
         if (!$primary_group) {
             $this->_app->notFound();
         }
         // Access-controlled page
         if (!$this->_app->user->checkAccess('uri_group_users', ['primary_group_id' => $primary_group->id])) {
             $this->_app->notFound();
         }
         $users = UserLoader::fetchAll($primary_group->id, 'primary_group_id');
         $name = $primary_group->name;
         $icon = $primary_group->icon;
     } else {
         // Access-controlled page
         if (!$this->_app->user->checkAccess('uri_users')) {
             $this->_app->notFound();
         }
         $users = UserLoader::fetchAll();
         $name = "Users";
         $icon = "fa fa-users";
     }
     $this->_app->render('users.html', ['page' => ['author' => $this->_app->site->author, 'title' => $name, 'description' => "A listing of the users for your site.  Provides management tools including the ability to edit user details, manually activate users, enable/disable users, and more.", 'alerts' => $this->_app->alerts->getAndClearMessages()], "box_title" => $name, "icon" => $icon, "users" => $users]);
 }