Fix retrieval of users with multiple backends

This commit is contained in:
Arthur Schiwon 2013-04-30 19:51:28 +02:00
parent 4f6565d8e7
commit 9c3b83e28c
2 changed files with 16 additions and 5 deletions

View file

@ -27,9 +27,14 @@ if (isset($_GET['offset'])) {
} else {
$offset = 0;
}
if (isset($_GET['limit'])) {
$limit = $_GET['limit'];
} else {
$limit = 10;
}
$users = array();
if (OC_User::isAdminUser(OC_User::getUser())) {
$batch = OC_User::getDisplayNames('', 10, $offset);
$batch = OC_User::getDisplayNames('', $limit, $offset);
foreach ($batch as $user => $displayname) {
$users[] = array(
'name' => $user,
@ -40,7 +45,7 @@ if (OC_User::isAdminUser(OC_User::getUser())) {
}
} else {
$groups = OC_SubAdmin::getSubAdminsGroups(OC_User::getUser());
$batch = OC_Group::usersInGroups($groups, '', 10, $offset);
$batch = OC_Group::usersInGroups($groups, '', $limit, $offset);
foreach ($batch as $user) {
$users[] = array(
'name' => $user,

View file

@ -19,6 +19,10 @@ function setQuota (uid, quota, ready) {
var UserList = {
useUndo: true,
availableGroups: [],
offset: 30, //The first 30 users are there. No prob, if less in total.
//hardcoded in settings/users.php
usersToLoad: 10, //So many users will be loaded when user scrolls down
/**
* @brief Initiate user deletion process in UI
@ -192,14 +196,17 @@ var UserList = {
return;
}
UserList.updating = true;
$.get(OC.Router.generate('settings_ajax_userlist', { offset: UserList.offset }), function (result) {
$.get(OC.Router.generate('settings_ajax_userlist', { offset: UserList.offset, limit: UserList.usersToLoad }), function (result) {
if (result.status === 'success') {
//The offset does not mirror the amount of users available,
//because it is backend-dependent. For correct retrieval,
//always the limit(requested amount of users) needs to be added.
UserList.offset += UserList.usersToLoad;
$.each(result.data, function (index, user) {
if($('tr[data-uid="' + user.name + '"]').length > 0) {
return true;
}
var tr = UserList.add(user.name, user.displayname, user.groups, user.subadmin, user.quota, false);
UserList.offset++;
if (index == 9) {
$(tr).bind('inview', function (event, isInView, visiblePartX, visiblePartY) {
$(this).unbind(event);
@ -315,7 +322,6 @@ $(document).ready(function () {
UserList.doSort();
UserList.availableGroups = $('#content table').attr('data-groups').split(', ');
UserList.offset = $('tbody tr').length;
$('tbody tr:last').bind('inview', function (event, isInView, visiblePartX, visiblePartY) {
OC.Router.registerLoadedCallback(function () {
UserList.update();