function wikiplugin_memberlist_get_group_details($groups) { global $user, $prefs; $validGroups = array(); foreach ($groups as $groupName) { $perms = Perms::get(array('type' => 'group', 'object' => $groupName)); if ($perms->group_view) { $isMember = in_array($groupName, $perms->getGroups()); $validGroups[$groupName] = array('can_join' => $perms->group_join && !$isMember && $user, 'can_leave' => $perms->group_join && $isMember && $user, 'can_add' => $perms->group_add_member, 'can_remove' => $perms->group_remove_member, 'is_member' => $isMember); if ($perms->group_view_members) { $validGroups[$groupName]['members'] = wikiplugin_memberlist_get_members($groupName); if ($prefs['feature_group_transition']) { require_once 'lib/transitionlib.php'; $transitionlib = new TransitionLib('group'); $validGroups[$groupName]['transitions'] = array(); foreach ($validGroups[$groupName]['members'] as $username) { $validGroups[$groupName]['transitions'][$username] = $transitionlib->getAvailableTransitionsFromState($groupName, $username); } } } } } return $validGroups; }
function wikiplugin_memberlist_get_group_details($groups, $maxRecords = -1, $sort_mode = 'login_asc', $readOnly = false) { global $user, $prefs, $userlib; $validGroups = array(); foreach ($groups as $groupName) { if (!$userlib->group_exists($groupName)) { continue; } $perms = Perms::get(array('type' => 'group', 'object' => $groupName)); if ($perms->group_view) { $isMember = in_array($groupName, $perms->getGroups()); $validGroups[$groupName] = array('can_join' => $perms->group_join && !$isMember && $user && !$readOnly, 'can_leave' => $perms->group_join && $isMember && $user && !$readOnly, 'can_add' => $perms->group_add_member && !$readOnly, 'can_remove' => $perms->group_remove_member && !$readOnly, 'is_member' => $isMember); if ($perms->group_view_members) { $validGroups[$groupName]['members'] = wikiplugin_memberlist_get_members($groupName, $maxRecords, $sort_mode); if ($prefs['feature_group_transition'] == 'y') { require_once 'lib/transitionlib.php'; $transitionlib = new TransitionLib('group'); $validGroups[$groupName]['transitions'] = array(); foreach ($validGroups[$groupName]['members'] as $username) { $validGroups[$groupName]['transitions'][$username] = $transitionlib->getAvailableTransitionsFromState($groupName, $username); } } if (!empty($user)) { $validGroups[$groupName]['isWatching'] = TikiLib::lib('tiki')->user_watches($user, 'user_joins_group', $groupName, 'group') > 0; } else { $validGroups[$groupName]['isWatching'] = false; } } } } return $validGroups; }