$pattern = ''; } $users = array(); $userManager = \OC_User::getManager(); if (OC_User::isAdminUser(OC_User::getUser())) { if ($gid !== false) { $batch = OC_Group::displayNamesInGroup($gid, $pattern, $limit, $offset); } else { $batch = OC_User::getDisplayNames($pattern, $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, $pattern, $limit, $offset); foreach ($batch as $uid) { $user = $userManager->get($uid); // Only add the groups, this user is a subadmin of $userGroups = array_intersect(OC_Group::getUserGroups($uid), OC_SubAdmin::getSubAdminsGroups(OC_User::getUser())); $users[] = array('name' => $uid, 'displayname' => $user->getDisplayName(), 'groups' => join(', ', $userGroups), 'quota' => OC_Preferences::getValue($uid, 'files', 'quota', 'default'), 'storageLocation' => $user->getHome(), 'lastLogin' => $user->getLastLogin()); } } OC_JSON::success(array('data' => $users));
// We have some javascript foo! OC_Util::addScript('settings', 'users'); OC_Util::addScript('core', 'multiselect'); OC_Util::addScript('core', 'jquery.inview'); OC_Util::addStyle('settings', 'settings'); OC_App::setActiveNavigationEntry('core_users'); $users = array(); $groups = array(); $isadmin = OC_Group::inGroup(OC_User::getUser(), 'admin') ? true : false; if ($isadmin) { $accessiblegroups = OC_Group::getGroups(); $accessibleusers = OC_User::getUsers('', 30); $subadmins = OC_SubAdmin::getAllSubAdmins(); } else { $accessiblegroups = OC_SubAdmin::getSubAdminsGroups(OC_User::getUser()); $accessibleusers = OC_Group::usersInGroups($accessiblegroups, '', 30); $subadmins = false; } foreach ($accessibleusers as $i) { $users[] = array("name" => $i, "groups" => join(", ", OC_Group::getUserGroups($i)), 'quota' => OC_Preferences::getValue($i, 'files', 'quota', 'default'), 'subadmin' => implode(', ', OC_SubAdmin::getSubAdminsGroups($i))); } foreach ($accessiblegroups as $i) { // Do some more work here soon $groups[] = array("name" => $i); } $quotaPreset = OC_Appconfig::getValue('files', 'quota_preset', 'default,none,1 GB, 5 GB, 10 GB'); $quotaPreset = explode(',', $quotaPreset); foreach ($quotaPreset as &$preset) { $preset = trim($preset); } $defaultQuota = OC_Appconfig::getValue('files', 'default_quota', 'none');
// } // } // } if ($sharePolicy == 'groups_only') { $groups = OC_Group::getUserGroups(OC_User::getUser()); } else { $groups = OC_Group::getGroups(); } $count = 0; $users = array(); $limit = 0; $offset = 0; while ($count < 4 && count($users) == $limit) { $limit = 4 - $count; if ($sharePolicy == 'groups_only') { $users = OC_Group::usersInGroups($groups, $_GET['search'], $limit, $offset); } else { $users = OC_User::getUsers($_GET['search'], $limit, $offset); } $offset += $limit; foreach ($users as $user) { if ((!isset($_GET['itemShares']) || !is_array($_GET['itemShares'][OCP\Share::SHARE_TYPE_USER]) || !in_array($user, $_GET['itemShares'][OCP\Share::SHARE_TYPE_USER])) && $user != OC_User::getUser()) { $shareWith[] = array('label' => $user, 'value' => array('shareType' => OCP\Share::SHARE_TYPE_USER, 'shareWith' => $user)); $count++; } } } $count = 0; foreach ($groups as $group) { if ($count < 4) { if (stripos($group, $_GET['search']) !== false && (!isset($_GET['itemShares']) || !isset($_GET['itemShares'][OCP\Share::SHARE_TYPE_GROUP]) || !is_array($_GET['itemShares'][OCP\Share::SHARE_TYPE_GROUP]) || !in_array($group, $_GET['itemShares'][OCP\Share::SHARE_TYPE_GROUP]))) {
/** * Add a mount point to the filesystem * @param string Mount point * @param string Backend class * @param array Backend parameters for the class * @param string MOUNT_TYPE_GROUP | MOUNT_TYPE_USER * @param string User or group to apply mount to * @param bool Personal or system mount point i.e. is this being called from the personal or admin page * @return bool */ public static function addMountPoint($mountPoint, $class, $classOptions, $mountType, $applicable, $isPersonal = false) { if ($isPersonal) { // Verify that the mount point applies for the current user // Prevent non-admin users from mounting local storage if ($applicable != OCP\User::getUser() || $class == 'OC_Filestorage_Local') { return false; } $view = new OC_FilesystemView('/' . OCP\User::getUser() . '/files'); self::addMountPointDirectory($view, ltrim($mountPoint, '/')); $mountPoint = '/' . $applicable . '/files/' . ltrim($mountPoint, '/'); } else { $view = new OC_FilesystemView('/'); switch ($mountType) { case 'user': if ($applicable == "all") { $users = OCP\User::getUsers(); foreach ($users as $user) { $path = $user . '/files/' . ltrim($mountPoint, '/'); self::addMountPointDirectory($view, $path); } } else { $path = $applicable . '/files/' . ltrim($mountPoint, '/'); self::addMountPointDirectory($view, $path); } break; case 'group': $groupMembers = OC_Group::usersInGroups(array($applicable)); foreach ($groupMembers as $user) { $path = $user . '/files/' . ltrim($mountPoint, '/'); self::addMountPointDirectory($view, $path); } break; } $mountPoint = '/$user/files/' . ltrim($mountPoint, '/'); } $mount = array($applicable => array($mountPoint => array('class' => $class, 'options' => $classOptions))); $mountPoints = self::readData($isPersonal); // Merge the new mount point into the current mount points if (isset($mountPoints[$mountType])) { if (isset($mountPoints[$mountType][$applicable])) { $mountPoints[$mountType][$applicable] = array_merge($mountPoints[$mountType][$applicable], $mount[$applicable]); } else { $mountPoints[$mountType] = array_merge($mountPoints[$mountType], $mount); } } else { $mountPoints[$mountType] = $mount; } self::writeData($isPersonal, $mountPoints); return true; }
public function testUsersInGroup() { OC_Group::useBackend(new OC_Group_Dummy()); $userBackend = new \Test\Util\User\Dummy(); \OC_User::getManager()->registerBackend($userBackend); $group1 = $this->getUniqueID(); $group2 = $this->getUniqueID(); $group3 = $this->getUniqueID(); $user1 = $this->getUniqueID(); $user2 = $this->getUniqueID(); $user3 = $this->getUniqueID(); OC_Group::createGroup($group1); OC_Group::createGroup($group2); OC_Group::createGroup($group3); $userBackend->createUser($user1, ''); $userBackend->createUser($user2, ''); $userBackend->createUser($user3, ''); OC_Group::addToGroup($user1, $group1); OC_Group::addToGroup($user2, $group1); OC_Group::addToGroup($user3, $group1); OC_Group::addToGroup($user3, $group2); $this->assertEquals(array($user1, $user2, $user3), OC_Group::usersInGroups(array($group1, $group2, $group3))); // FIXME: needs more parameter variation }
* * You should have received a copy of the GNU Affero General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * */ 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; } $users = array(); if (OC_User::isAdminUser(OC_User::getUser())) { $batch = OC_User::getDisplayNames('', $limit, $offset); foreach ($batch as $user => $displayname) { $users[] = array('name' => $user, 'displayname' => $displayname, 'groups' => join(', ', OC_Group::getUserGroups($user)), 'subadmin' => join(', ', OC_SubAdmin::getSubAdminsGroups($user)), 'quota' => OC_Preferences::getValue($user, 'files', 'quota', 'default')); } } else { $groups = OC_SubAdmin::getSubAdminsGroups(OC_User::getUser()); $batch = OC_Group::usersInGroups($groups, '', $limit, $offset); foreach ($batch as $user) { $users[] = array('name' => $user, 'displayname' => OC_User::getDisplayName($user), 'groups' => join(', ', OC_Group::getUserGroups($user)), 'quota' => OC_Preferences::getValue($user, 'files', 'quota', 'default')); } } OC_JSON::success(array('data' => $users));
* This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU AFFERO GENERAL PUBLIC LICENSE for more details. * * You should have received a copy of the GNU Affero General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * */ require_once '../../lib/base.php'; OC_JSON::callCheck(); OC_JSON::checkSubAdminUser(); if (isset($_GET['offset'])) { $offset = $_GET['offset']; } else { $offset = 0; } $users = array(); if (OC_Group::inGroup(OC_User::getUser(), 'admin')) { $batch = OC_User::getUsers('', 10, $offset); foreach ($batch as $user) { $users[] = array('name' => $user, 'groups' => join(', ', OC_Group::getUserGroups($user)), 'subadmin' => join(', ', OC_SubAdmin::getSubAdminsGroups($user)), 'quota' => OC_Preferences::getValue($user, 'files', 'quota', 'default')); } } else { $groups = OC_SubAdmin::getSubAdminsGroups(OC_User::getUser()); $batch = OC_Group::usersInGroups($groups, '', 10, $offset); foreach ($batch as $user) { $users[] = array('name' => $user, 'groups' => join(', ', OC_Group::getUserGroups($user)), 'quota' => OC_Preferences::getValue($user, 'files', 'quota', 'default')); } } OC_JSON::success(array('data' => $users));
public function testUsersInGroup() { OC_Group::useBackend(new OC_Group_Dummy()); $group1 = uniqid(); $group2 = uniqid(); $group3 = uniqid(); $user1 = uniqid(); $user2 = uniqid(); $user3 = uniqid(); OC_Group::createGroup($group1); OC_Group::createGroup($group2); OC_Group::createGroup($group3); OC_Group::addToGroup($user1, $group1); OC_Group::addToGroup($user2, $group1); OC_Group::addToGroup($user3, $group1); OC_Group::addToGroup($user3, $group2); $this->assertEqual(array($user1, $user2, $user3), OC_Group::usersInGroups(array($group1, $group2, $group3))); // FIXME: needs more parameter variation }