/** * 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() : []]); }
/** * 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]); }