. * */ OC_JSON::callCheck(); OC_JSON::checkSubAdminUser(); if (isset($_GET['offset'])) { $offset = $_GET['offset']; } else { $offset = 0; } if (isset($_GET['limit'])) { $limit = $_GET['limit']; } else { $limit = 10; } if (isset($_GET['gid']) && !empty($_GET['gid'])) { $gid = $_GET['gid']; } else { $gid = false; } $users = array(); $userManager = \OC_User::getManager(); if (OC_User::isAdminUser(OC_User::getUser())) { if($gid !== false) { $batch = OC_Group::displayNamesInGroup($gid, '', $limit, $offset); } else { $batch = OC_User::getDisplayNames('', $limit, $offset); } foreach ($batch as $uid => $displayname) { $user = $userManager->get($uid); $users[] = array( 'name' => $uid, 'displayname' => $displayname, 'groups' => join(', ', OC_Group::getUserGroups($uid)), 'subadmin' => join(', ', OC_SubAdmin::getSubAdminsGroups($uid)), 'quota' => OC_Preferences::getValue($uid, 'files', 'quota', 'default'), 'storageLocation' => $user->getHome(), 'lastLogin' => $user->getLastLogin(), ); } } else { $groups = OC_SubAdmin::getSubAdminsGroups(OC_User::getUser()); if($gid !== false && in_array($gid, $groups)) { $groups = array($gid); } elseif($gid !== false) { //don't you try to investigate loops you must not know about $groups = array(); } $batch = OC_Group::usersInGroups($groups, '', $limit, $offset); foreach ($batch as $uid) { $user = $userManager->get($uid); $users[] = array( 'name' => $user, 'displayname' => $user->getDisplayName(), 'groups' => join(', ', OC_Group::getUserGroups($uid)), 'quota' => OC_Preferences::getValue($uid, 'files', 'quota', 'default'), 'storageLocation' => $user->getHome(), 'lastLogin' => $user->getLastLogin(), ); } } OC_JSON::success(array('data' => $users));