コード例 #1
0
 function get_records($filter)
 {
     global $USER;
     $sort = optional_param('sort', 'name', PARAM_ALPHA);
     $dir = optional_param('dir', 'ASC', PARAM_ALPHA);
     $pagenum = optional_param('page', 0, PARAM_INT);
     if ($sort == 'name') {
         $sort = 'lastname';
     }
     $extrasql = $filter->get_sql_filter();
     //filter based on cluster role assignments
     $context_set = cm_context_set::for_user_with_capability('cluster', 'block/curr_admin:user:edit', $USER->id);
     // Get list of users
     $items = usermanagement_get_users($sort, $dir, 30 * $pagenum, 30, $extrasql, $context_set);
     $numitems = usermanagement_count_users($extrasql, $context_set);
     return array($items, $numitems);
 }
コード例 #2
0
 function action_default()
 {
     // Get parameters
     $sort = optional_param('sort', 'name', PARAM_ALPHA);
     $dir = optional_param('dir', 'ASC', PARAM_ALPHA);
     $page = optional_param('page', 0, PARAM_INT);
     $perpage = optional_param('perpage', 30, PARAM_INT);
     // how many per page
     // Define columns
     $columns = array('idnumber' => get_string('id', 'block_curr_admin'), 'name' => get_string('name', 'block_curr_admin'), 'country' => get_string('country', 'block_curr_admin'), 'language' => get_string('user_language', 'block_curr_admin'), 'timecreated' => get_string('registered_date', 'block_curr_admin'));
     // Generate SQL filter
     $filter = new cm_user_filtering(null, 'index.php', array('s' => 'usr', 'section' => 'users'));
     $extrasql = $filter->get_sql_filter();
     // Get list of users
     $items = usermanagement_get_users($sort, $dir, $page * $perpage, $perpage, $extrasql, usermanagementpage::get_contexts('block/curr_admin:user:view'));
     $numitems = usermanagement_count_users($extrasql, usermanagementpage::get_contexts('block/curr_admin:user:view'));
     usermanagementpage::get_contexts('block/curr_admin:user:edit');
     usermanagementpage::get_contexts('block/curr_admin:user:delete');
     $this->print_list_view($items, $numitems, $columns, $filter);
 }
コード例 #3
0
 /**
  * Test the basic functionality of the methods for fetching and counting
  * users when applying userset permissions and an appropriate SQL filter
  */
 public function test_usermanagementgetsusersrespectsfilters()
 {
     global $USER, $DB;
     require_once elispm::lib('data/clusterassignment.class.php');
     require_once elispm::lib('data/user.class.php');
     require_once elispm::lib('lib.php');
     // Make sure we don't hit corner-cases with permissions.
     set_config('siteguest', '');
     set_config('siteadmins', '');
     // Prevent accesslib caching.
     accesslib_clear_all_caches(true);
     // Data setup.
     $this->load_csv_data();
     $this->set_up_users();
     // Assign a second user to the user set.
     $secondclusteruser = new user(array('idnumber' => 'secondclusteruser', 'username' => 'secondclusteruser', 'firstname' => 'Secondcluster', 'lastname' => 'User', 'email' => '*****@*****.**', 'country' => 'CA'));
     $secondclusteruser->save();
     $clusterassignment = new clusterassignment(array('clusterid' => 1, 'userid' => $secondclusteruser->id));
     $clusterassignment->save();
     // The context set our user set administrator has access to.
     $contextset = pm_context_set::for_user_with_capability('cluster', 'local/elisprogram:user_edit', $USER->id);
     // Add a filter to filter down to only our first test user.
     $extrasql = array('username = :testusername', array('testusername' => 'clusteruser'));
     // Validate count.
     $count = usermanagement_count_users($extrasql, $contextset);
     $this->assertEquals(1, $count);
     // Validate record.
     $users = usermanagement_get_users('name', 'ASC', 0, 0, $extrasql, $contextset);
     $this->assertEquals(1, count($users));
     $user = reset($users);
     $this->assertEquals('clusteruser', $user->idnumber);
 }