Example #1
0
    $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));
Example #2
0
// 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');
Example #3
0
 // 						}
 // 					}
 // 				}
 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]))) {
Example #4
0
 /**
  * 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;
 }
Example #5
0
 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
 }
Example #6
0
 *
 * 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));
Example #7
0
 * 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));
Example #8
0
 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
 }