Fix retrieval of users with multiple backends
This commit is contained in:
parent
4f6565d8e7
commit
9c3b83e28c
2 changed files with 16 additions and 5 deletions
|
@ -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,
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue