diff --git a/main/announcements/announcements.php b/main/announcements/announcements.php
index fa9e852bab..66c8712b61 100755
--- a/main/announcements/announcements.php
+++ b/main/announcements/announcements.php
@@ -436,7 +436,7 @@ switch ($action) {
$element = CourseManager::addUserGroupMultiSelect($form, array());
} else {
- $element = CourseManager::addGroupMultiSelect($form, $group_properties['iid'], array());
+ $element = CourseManager::addGroupMultiSelect($form, $group_properties, array());
}
$form->addHtml('');
diff --git a/main/calendar/agenda_js.php b/main/calendar/agenda_js.php
index 941af60be8..487bbedae1 100755
--- a/main/calendar/agenda_js.php
+++ b/main/calendar/agenda_js.php
@@ -55,7 +55,7 @@ $courseId = api_get_course_int_id();
if (!empty($group_id)) {
$group_properties = GroupManager::get_group_properties($group_id);
- $is_group_tutor = GroupManager::is_tutor_of_group(api_get_user_id(), $group_properties['iid']);
+ $is_group_tutor = GroupManager::is_tutor_of_group(api_get_user_id(), $group_properties);
$interbreadcrumb[] = array(
"url" => api_get_path(WEB_CODE_PATH)."group/group.php?".api_get_cidreq(),
"name" => get_lang('Groups')
diff --git a/main/document/document.php b/main/document/document.php
index 7eeb68a256..b97836e253 100755
--- a/main/document/document.php
+++ b/main/document/document.php
@@ -160,7 +160,7 @@ if (!empty($groupId)) {
$groupIid = isset($group_properties['iid']) ? $group_properties['iid'] : 0;
$isTutorGroup = GroupManager::is_tutor_of_group(
$userId,
- $group_properties['iid'],
+ $group_properties,
$courseId
);
$groupMemberWithEditRights = $isAllowedToEdit || $isTutorGroup;
@@ -170,7 +170,7 @@ if (!empty($groupId)) {
if ($group_properties['doc_state'] == 2) {
// Documents are private
- if ($isAllowedToEdit || GroupManager::is_user_in_group($userId, $group_properties['iid'])) {
+ if ($isAllowedToEdit || GroupManager::is_user_in_group($userId, $group_properties)) {
// Only courseadmin or group members (members + tutors) allowed
$interbreadcrumb[] = array(
'url' => api_get_path(WEB_CODE_PATH).'group/group.php?'.api_get_cidreq(),
@@ -198,8 +198,8 @@ if (!empty($groupId)) {
// Allowed to upload?
if ($isAllowedToEdit ||
- GroupManager::is_subscribed($userId, $group_properties['iid']) ||
- GroupManager::is_tutor_of_group($userId, $group_properties['iid'], $courseId)
+ GroupManager::is_subscribed($userId, $group_properties) ||
+ GroupManager::is_tutor_of_group($userId, $group_properties, $courseId)
) {
// Only course admin or group members can upload
$group_member_with_upload_rights = true;
@@ -1975,7 +1975,7 @@ if (!$is_certificate_mode && !isset($_GET['move'])) {
$selector = DocumentManager::build_directory_selector(
$folders,
$document_id,
- (isset($group_properties['directory']) ? $group_properties['directory'] : array())
+ (isset($group_properties['directory']) ? $group_properties['directory'] : array())
);
}
diff --git a/main/document/edit_document.php b/main/document/edit_document.php
index c2191659fa..7b98c00c40 100755
--- a/main/document/edit_document.php
+++ b/main/document/edit_document.php
@@ -425,7 +425,7 @@ if ($owner_id == api_get_user_id() ||
api_is_platform_admin() ||
$is_allowed_to_edit || GroupManager:: is_user_in_group(
api_get_user_id(),
- $groupInfo['iid']
+ $groupInfo
)
) {
$action = api_get_self().'?id='.$document_data['id'].'&'.api_get_cidreq();
diff --git a/main/document/upload.php b/main/document/upload.php
index a37eccd57e..5a6777e6d5 100755
--- a/main/document/upload.php
+++ b/main/document/upload.php
@@ -112,7 +112,7 @@ if (!empty($groupId)) {
$groupIid = $group_properties['iid'];
// Only courseadmin or group members allowed
- if ($is_allowed_to_edit || GroupManager::is_user_in_group(api_get_user_id(), $group_properties['iid'])) {
+ if ($is_allowed_to_edit || GroupManager::is_user_in_group(api_get_user_id(), $group_properties)) {
$interbreadcrumb[] = array(
'url' => api_get_path(WEB_CODE_PATH).'group/group_space.php?'.api_get_cidreq(),
'name' => get_lang('GroupSpace'),
diff --git a/main/forum/editpost.php b/main/forum/editpost.php
index 3fbf83f307..45b094aac3 100755
--- a/main/forum/editpost.php
+++ b/main/forum/editpost.php
@@ -165,7 +165,7 @@ $group_id = api_get_group_id();
if (!api_is_allowed_to_edit(null, true) &&
$current_forum['allow_edit'] == 0 &&
- !GroupManager::is_tutor_of_group(api_get_user_id(), $group_properties['iid'])
+ !GroupManager::is_tutor_of_group(api_get_user_id(), $group_properties)
) {
api_not_allowed(true);
}
diff --git a/main/forum/forumfunction.inc.php b/main/forum/forumfunction.inc.php
index 644c6df4b7..7df01fe5a2 100755
--- a/main/forum/forumfunction.inc.php
+++ b/main/forum/forumfunction.inc.php
@@ -1817,12 +1817,18 @@ function get_threads($forum_id, $courseId = null, $sessionId = null)
$courseId = $courseId !== null ? intval($courseId) : api_get_course_int_id();
$groupInfo = GroupManager::get_group_properties($groupId);
$groupCondition = '';
+
if (!empty($groupInfo)) {
$groupIid = $groupInfo['iid'];
$groupCondition = " AND item_properties.to_group_id = '$groupIid' ";
}
- $sessionCondition = api_get_session_condition($sessionId, true, false, 'item_properties.session_id');
+ $sessionCondition = api_get_session_condition(
+ $sessionId,
+ true,
+ false,
+ 'item_properties.session_id'
+ );
// important note: it might seem a little bit awkward that we have 'thread.locked as locked' in the sql statement
// because we also have thread.* in it. This is because thread has a field locked and post also has the same field
@@ -1874,6 +1880,7 @@ function get_threads($forum_id, $courseId = null, $sessionId = null)
thread.forum_id = ".intval($forum_id)." AND
thread.c_id = $courseId
ORDER BY thread.thread_sticky DESC, thread.thread_date DESC";
+
}
$result = Database::query($sql);
$list = array();
@@ -1964,7 +1971,7 @@ function getPosts(
$filterModerated = false;
}
} else {
- if (GroupManager::is_tutor_of_group(api_get_user_id(), $groupInfo['iid']) || api_is_allowed_to_edit(false, true)) {
+ if (GroupManager::is_tutor_of_group(api_get_user_id(), $groupInfo) || api_is_allowed_to_edit(false, true)) {
$filterModerated = false;
}
}
@@ -4915,14 +4922,14 @@ function delete_attachment($post_id, $id_attach = 0, $display = true)
*
* @todo this is basically the same code as the get_forums function. Consider merging the two.
*/
-function get_forums_of_group($groupId)
+function get_forums_of_group($groupInfo)
{
$table_forums = Database :: get_course_table(TABLE_FORUM);
$table_threads = Database :: get_course_table(TABLE_FORUM_THREAD);
$table_posts = Database :: get_course_table(TABLE_FORUM_POST);
$table_item_property = Database :: get_course_table(TABLE_ITEM_PROPERTY);
$course_id = api_get_course_int_id();
- $groupId = (int) $groupId;
+ $groupId = (int) $groupInfo['id'];
// Student
// Select all the forum information of all forums (that are visible to students).
diff --git a/main/forum/viewforum.php b/main/forum/viewforum.php
index c3cf31da14..ea5f188c64 100755
--- a/main/forum/viewforum.php
+++ b/main/forum/viewforum.php
@@ -47,8 +47,7 @@ $sessionId = api_get_session_id();
$groupId = api_get_group_id();
$courseId = api_get_course_int_id();
$groupInfo = GroupManager::get_group_properties($groupId);
-
-$isTutor = GroupManager::is_tutor_of_group($userId, $groupInfo['iid'], $courseId);
+$isTutor = GroupManager::is_tutor_of_group($userId, $groupInfo, $courseId);
/* MAIN DISPLAY SECTION */
@@ -83,7 +82,7 @@ if (!empty($groupId)) {
);
$is_group_tutor = GroupManager::is_tutor_of_group(
api_get_user_id(),
- $group_properties['iid']
+ $group_properties
);
// Course
@@ -440,6 +439,7 @@ echo '
';
if (is_array($threads)) {
$html = '';
$count = 1;
+
foreach ($threads as $row) {
// Thread who have no replies yet and the only post is invisible should not be displayed to students.
if (api_is_allowed_to_edit(false, true) ||
diff --git a/main/forum/viewthread.php b/main/forum/viewthread.php
index 6adafe20dc..5e7a4705db 100755
--- a/main/forum/viewthread.php
+++ b/main/forum/viewthread.php
@@ -139,14 +139,14 @@ if (
isset($_GET['content']) &&
isset($_GET['id']) &&
(api_is_allowed_to_edit(false, true) ||
- (isset($group_properties['iid']) && GroupManager::is_tutor_of_group(api_get_user_id(), $group_properties['iid'])))
+ (isset($group_properties['iid']) && GroupManager::is_tutor_of_group(api_get_user_id(), $group_properties)))
) {
$message = delete_post($_GET['id']);
}
if (($my_action == 'invisible' || $my_action == 'visible') &&
isset($_GET['id']) &&
(api_is_allowed_to_edit(false, true) ||
- (isset($group_properties['iid']) && GroupManager::is_tutor_of_group(api_get_user_id(), $group_properties['iid'])))
+ (isset($group_properties['iid']) && GroupManager::is_tutor_of_group(api_get_user_id(), $group_properties)))
) {
$message = approve_post($_GET['id'], $_GET['action']);
}
diff --git a/main/forum/viewthread_flat.inc.php b/main/forum/viewthread_flat.inc.php
index 82e8c7ccde..29f4319b98 100755
--- a/main/forum/viewthread_flat.inc.php
+++ b/main/forum/viewthread_flat.inc.php
@@ -163,7 +163,7 @@ if (isset($current_thread['thread_id'])) {
// this in the properties of the forum
// The course admin him/herself can do this off course always
$groupInfo = GroupManager::get_group_properties($groupId);
- if ((isset($groupInfo['iid']) && GroupManager::is_tutor_of_group($userId, $groupInfo['iid'])) ||
+ if ((isset($groupInfo['iid']) && GroupManager::is_tutor_of_group($userId, $groupInfo)) ||
($current_forum['allow_edit'] == 1 && $row['user_id'] == $_user['user_id']) ||
(
api_is_allowed_to_edit(false, true) &&
@@ -181,7 +181,7 @@ if (isset($current_thread['thread_id'])) {
}
if ($origin != 'learnpath') {
- if (GroupManager::is_tutor_of_group($userId, $groupInfo['iid']) ||
+ if (GroupManager::is_tutor_of_group($userId, $groupInfo) ||
api_is_allowed_to_edit(false, true) &&
!(api_is_course_coach() && $current_forum['session_id'] != $sessionId)
) {
@@ -207,7 +207,7 @@ if (isset($current_thread['thread_id'])) {
}
if (
- GroupManager::is_tutor_of_group($userId, $groupInfo['iid']) ||
+ GroupManager::is_tutor_of_group($userId, $groupInfo) ||
(api_is_allowed_to_edit(false, true) &&
!(api_is_course_coach() && $current_forum['session_id'] != $sessionId)
)
diff --git a/main/forum/viewthread_nested.inc.php b/main/forum/viewthread_nested.inc.php
index e9cc3d714a..efbbfded39 100755
--- a/main/forum/viewthread_nested.inc.php
+++ b/main/forum/viewthread_nested.inc.php
@@ -113,7 +113,7 @@ foreach ($rows as $post) {
// The user who posted it can edit his thread only if the course admin allowed this in the properties of the forum
// The course admin him/herself can do this off course always
- $tutorGroup = GroupManager::is_tutor_of_group(api_get_user_id(), $groupInfo['iid']);
+ $tutorGroup = GroupManager::is_tutor_of_group(api_get_user_id(), $groupInfo);
if ((isset($groupInfo['iid']) && $tutorGroup) ||
($current_forum['allow_edit'] == 1 && $post['user_id'] == $userId) ||
diff --git a/main/forum/viewthread_threaded.inc.php b/main/forum/viewthread_threaded.inc.php
index e3dd721c68..de1e8b7759 100755
--- a/main/forum/viewthread_threaded.inc.php
+++ b/main/forum/viewthread_threaded.inc.php
@@ -237,7 +237,7 @@ $groupInfo = GroupManager::get_group_properties($groupId);
// The user who posted it can edit his thread only if the course admin allowed this in the properties of the forum
// The course admin him/herself can do this off course always
if (
-(isset($groupInfo['iid']) && GroupManager::is_tutor_of_group(api_get_user_id(), $groupInfo['iid'])) || (
+(isset($groupInfo['iid']) && GroupManager::is_tutor_of_group(api_get_user_id(), $groupInfo)) || (
$current_forum['allow_edit'] == 1 &&
$row['user_id'] == $_user['user_id']
) || (
@@ -277,7 +277,7 @@ if (!empty($my_post) && is_array($my_post)) {
}
if (
- (isset($groupInfo['iid']) && GroupManager::is_tutor_of_group(api_get_user_id(), $groupInfo['iid'])) ||
+ (isset($groupInfo['iid']) && GroupManager::is_tutor_of_group(api_get_user_id(), $groupInfo)) ||
api_is_allowed_to_edit(false, true) &&
!(api_is_course_coach() && $current_forum['session_id'] != $sessionId)
) {
diff --git a/main/group/group.php b/main/group/group.php
index 3fc3e5d292..5612e9d05f 100755
--- a/main/group/group.php
+++ b/main/group/group.php
@@ -72,8 +72,8 @@ if (isset($_GET['action']) && $is_allowed_in_course) {
}
break;
case 'self_reg':
- if (GroupManager::is_self_registration_allowed($userId, $groupInfo['iid'])) {
- GroupManager::subscribe_users($userId, $groupInfo['iid']);
+ if (GroupManager::is_self_registration_allowed($userId, $groupInfo)) {
+ GroupManager::subscribe_users($userId, $groupInfo);
Display::addFlash(Display::return_message(get_lang('GroupNowMember')));
header("Location: $currentUrl");
exit;
@@ -84,9 +84,8 @@ if (isset($_GET['action']) && $is_allowed_in_course) {
}
break;
case 'self_unreg':
- if (GroupManager::is_self_unregistration_allowed($userId, $groupInfo['iid'])) {
- GroupManager::unsubscribe_users($userId, $groupInfo['iid']);
-
+ if (GroupManager::is_self_unregistration_allowed($userId, $groupInfo)) {
+ GroupManager::unsubscribe_users($userId, $groupInfo);
Display::addFlash(Display::return_message(get_lang('StudentDeletesHimself')));
header("Location: $currentUrl");
exit;
@@ -107,7 +106,7 @@ if (api_is_allowed_to_edit(false, true)) {
if (is_array($_POST['group'])) {
foreach ($_POST['group'] as $myGroupId) {
$groupInfo = GroupManager::get_group_properties($myGroupId);
- GroupManager::delete_groups($groupInfo['iid']);
+ GroupManager::delete_groups($groupInfo);
}
Display::addFlash(Display::return_message(get_lang('SelectedGroupsDeleted')));
@@ -119,7 +118,7 @@ if (api_is_allowed_to_edit(false, true)) {
if (is_array($_POST['group'])) {
foreach ($_POST['group'] as $myGroupId) {
$groupInfo = GroupManager::get_group_properties($myGroupId);
- GroupManager :: unsubscribe_all_users($groupInfo['iid']);
+ GroupManager :: unsubscribe_all_users($groupInfo);
}
Display::addFlash(Display::return_message(get_lang('SelectedGroupsEmptied')));
@@ -131,7 +130,7 @@ if (api_is_allowed_to_edit(false, true)) {
if (is_array($_POST['group'])) {
foreach ($_POST['group'] as $myGroupId) {
$groupInfo = GroupManager::get_group_properties($myGroupId);
- GroupManager:: fill_groups($groupInfo['iid']);
+ GroupManager:: fill_groups($groupInfo);
}
Display::addFlash(Display::return_message(get_lang('SelectedGroupsFilled')));
header("Location: $currentUrl");
@@ -152,14 +151,14 @@ if (api_is_allowed_to_edit(false, true)) {
break;
case 'delete_one':
$groupInfo = GroupManager::get_group_properties($my_get_id);
- GroupManager :: delete_groups($groupInfo['iid']);
+ GroupManager :: delete_groups($groupInfo);
Display::addFlash(Display::return_message(get_lang('GroupDel')));
header("Location: $currentUrl");
exit;
break;
case 'fill_one':
$groupInfo = GroupManager::get_group_properties($my_get_id);
- GroupManager :: fill_groups($groupInfo['iid']);
+ GroupManager :: fill_groups($groupInfo);
Display::addFlash(Display::return_message(get_lang('GroupFilledGroups')));
header("Location: $currentUrl");
exit;
diff --git a/main/group/group_creation.php b/main/group/group_creation.php
index 93bd4addd0..7385ef6e84 100755
--- a/main/group/group_creation.php
+++ b/main/group/group_creation.php
@@ -246,7 +246,7 @@ EOT;
$base_group_options = array();
$groups = GroupManager :: get_group_list();
foreach ($groups as $index => $group) {
- $number_of_students = GroupManager :: number_of_students($group['iid']);
+ $number_of_students = GroupManager :: number_of_students($group['id']);
if ($number_of_students > 0) {
$base_group_options[$group['id']] = $group['name'].' ('.$number_of_students.' '.get_lang('Users').')';
}
diff --git a/main/group/group_edit.php b/main/group/group_edit.php
index b01079861e..acf0c83213 100755
--- a/main/group/group_edit.php
+++ b/main/group/group_edit.php
@@ -25,7 +25,7 @@ $nameTools = get_lang('EditGroup');
$interbreadcrumb[] = array ('url' => 'group.php?'.api_get_cidreq(), 'name' => get_lang('Groups'));
$interbreadcrumb[] = array ('url' => 'group_space.php?'.api_get_cidreq(), 'name' => $current_group['name']);
-$is_group_member = GroupManager :: is_tutor_of_group(api_get_user_id(), $current_group['iid']);
+$is_group_member = GroupManager :: is_tutor_of_group(api_get_user_id(), $current_group);
if (!api_is_allowed_to_edit(false, true) && !$is_group_member) {
api_not_allowed(true);
@@ -132,7 +132,7 @@ $form->addText('name', get_lang('GroupName'));
// Description
$form->addElement('textarea', 'description', get_lang('Description'), array ('rows' => 6));
-$complete_user_list = GroupManager :: fill_groups_list($current_group['iid']);
+$complete_user_list = GroupManager :: fill_groups_list($current_group);
usort($complete_user_list, 'sort_users');
$possible_users = array();
@@ -141,7 +141,7 @@ foreach ($complete_user_list as $index => $user) {
}
// Group tutors
-$group_tutor_list = GroupManager :: get_subscribed_tutors($current_group['iid']);
+$group_tutor_list = GroupManager :: get_subscribed_tutors($current_group);
$selected_users = array();
$selected_tutors = array();
foreach ($group_tutor_list as $index => $user) {
@@ -157,7 +157,7 @@ $group_tutors_element = $form->addElement(
);
// Group members
-$group_member_list = GroupManager::get_subscribed_users($current_group['iid']);
+$group_member_list = GroupManager::get_subscribed_users($current_group);
$selected_users = array ();
foreach ($group_member_list as $index => $user) {
@@ -335,13 +335,13 @@ if ($form->validate()) {
// Storing the tutors (we first remove all the tutors and then add only those who were selected)
GroupManager :: unsubscribe_all_tutors($current_group['iid']);
if (isset($_POST['group_tutors']) && count($_POST['group_tutors']) > 0) {
- GroupManager :: subscribe_tutors($values['group_tutors'], $current_group['iid']);
+ GroupManager :: subscribe_tutors($values['group_tutors'], $current_group);
}
// Storing the users (we first remove all users and then add only those who were selected)
- GroupManager :: unsubscribe_all_users($current_group['iid']);
+ GroupManager :: unsubscribe_all_users($current_group);
if (isset($_POST['group_members']) && count($_POST['group_members']) > 0) {
- GroupManager :: subscribe_users($values['group_members'], $current_group['iid']);
+ GroupManager :: subscribe_users($values['group_members'], $current_group);
}
// Returning to the group area (note: this is inconsistent with the rest of chamilo)
diff --git a/main/group/group_space.php b/main/group/group_space.php
index 44c3f997f0..06d72c7d2f 100755
--- a/main/group/group_space.php
+++ b/main/group/group_space.php
@@ -33,7 +33,7 @@ $interbreadcrumb[] = array('url' => 'group.php?'.api_get_cidreq(), 'name' => get
/* Ensure all private groups // Juan Carlos RaƱa Trabado */
-$forums_of_groups = get_forums_of_group($current_group['iid']);
+$forums_of_groups = get_forums_of_group($current_group);
if (!GroupManager::userHasAccessToBrowse($user_id, $current_group, api_get_session_id())) {
api_not_allowed(true);
@@ -50,9 +50,9 @@ Display::display_introduction_section(TOOL_GROUP);
* User wants to register in this group
*/
if (!empty($_GET['selfReg']) &&
- GroupManager :: is_self_registration_allowed($user_id, $current_group['iid'])
+ GroupManager :: is_self_registration_allowed($user_id, $current_group)
) {
- GroupManager :: subscribe_users($user_id, $current_group['iid']);
+ GroupManager :: subscribe_users($user_id, $current_group);
Display :: display_normal_message(get_lang('GroupNowMember'));
}
@@ -60,9 +60,9 @@ if (!empty($_GET['selfReg']) &&
* User wants to unregister from this group
*/
if (!empty($_GET['selfUnReg']) &&
- GroupManager :: is_self_unregistration_allowed($user_id, $current_group['iid'])
+ GroupManager :: is_self_unregistration_allowed($user_id, $current_group)
) {
- GroupManager::unsubscribe_users($user_id, $current_group['iid']);
+ GroupManager::unsubscribe_users($user_id, $current_group);
Display::display_normal_message(get_lang('StudentDeletesHimself'));
}
@@ -75,7 +75,7 @@ echo '
'.
* Register to group
*/
$subscribe_group = '';
-if (GroupManager :: is_self_registration_allowed($user_id, $current_group['iid'])) {
+if (GroupManager :: is_self_registration_allowed($user_id, $current_group)) {
$subscribe_group = ''.
get_lang("RegIntoGroup").'';
}
@@ -84,7 +84,7 @@ if (GroupManager :: is_self_registration_allowed($user_id, $current_group['iid']
* Unregister from group
*/
$unsubscribe_group = '';
-if (GroupManager :: is_self_unregistration_allowed($user_id, $current_group['iid'])) {
+if (GroupManager :: is_self_unregistration_allowed($user_id, $current_group)) {
$unsubscribe_group = '
'.
get_lang("StudentUnsubscribe").'';
}
@@ -94,7 +94,7 @@ echo '
';
$edit_url = '';
if (api_is_allowed_to_edit(false, true) ||
- GroupManager::is_tutor_of_group(api_get_user_id(), $current_group['iid'])
+ GroupManager::is_tutor_of_group(api_get_user_id(), $current_group)
) {
$edit_url = ''.
Display::return_icon('edit.png', get_lang('EditGroup'), '', ICON_SIZE_SMALL).'';
@@ -111,13 +111,14 @@ if (!empty($current_group['description'])) {
/*
* Group Tools
*/
+
// If the user is subscribed to the group or the user is a tutor of the group then
if (api_is_allowed_to_edit(false, true) ||
- GroupManager::is_user_in_group(api_get_user_id(), $current_group['iid'])
+ GroupManager::is_user_in_group(api_get_user_id(), $current_group)
) {
$actions_array = array();
// Link to the forum of this group
- $forums_of_groups = get_forums_of_group($current_group['iid']);
+ $forums_of_groups = get_forums_of_group($current_group);
if (is_array($forums_of_groups)) {
if ($current_group['forum_state'] != GroupManager::TOOL_NOT_AVAILABLE) {
@@ -222,7 +223,7 @@ if (api_is_allowed_to_edit(false, true) ||
$actions_array = array();
// Link to the forum of this group
- $forums_of_groups = get_forums_of_group($current_group['iid']);
+ $forums_of_groups = get_forums_of_group($current_group);
if (is_array($forums_of_groups)) {
if ($current_group['forum_state'] == GroupManager::TOOL_PUBLIC) {
@@ -300,7 +301,7 @@ if (api_is_allowed_to_edit(false, true) ||
/*
* List all the tutors of the current group
*/
-$tutors = GroupManager::get_subscribed_tutors($current_group['iid']);
+$tutors = GroupManager::get_subscribed_tutors($current_group);
$tutor_info = '';
if (count($tutors) == 0) {
@@ -425,6 +426,7 @@ function get_group_user_data($from, $number_of_items, $column, $direction)
// Database table definition
$table_group_user = Database:: get_course_table(TABLE_GROUP_USER);
$table_user = Database:: get_main_table(TABLE_MAIN_USER);
+ $tableGroup = Database:: get_course_table(TABLE_GROUP);
// Query
if (api_get_setting('show_email_addresses') === 'true') {
@@ -437,12 +439,14 @@ function get_group_user_data($from, $number_of_items, $column, $direction)
user.firstname AS col2,"
)."
user.email AS col3
- FROM $table_user user,
+ FROM $table_user user INNER JOIN
$table_group_user group_rel_user
+ ON (group_rel_user.user_id = user.id)
+ INNER JOIN $tableGroup g
+ ON (group_rel_user.group_id = g.id)
WHERE
group_rel_user.c_id = $course_id AND
- group_rel_user.user_id = user.id AND
- group_rel_user.group_id = '".$groupInfo['iid']."'
+ g.iid = '".$groupInfo['iid']."'
ORDER BY col$column $direction
LIMIT $from, $number_of_items";
} else {
@@ -458,8 +462,12 @@ function get_group_user_data($from, $number_of_items, $column, $direction)
u.email AS col3
FROM $table_user u
INNER JOIN $table_group_user gu
- ON (gu.user_id = u.id) AND gu.c_id = $course_id
- WHERE gu.group_id = '".$groupInfo['iid']."'
+ ON (gu.user_id = u.id)
+ INNER JOIN $tableGroup g
+ ON (gu.group_id = g.id)
+ WHERE
+ g.iid = '".$groupInfo['iid']."' AND
+ gu.c_id = $course_id
ORDER BY col$column $direction
LIMIT $from, $number_of_items";
} else {
@@ -472,11 +480,16 @@ function get_group_user_data($from, $number_of_items, $column, $direction)
"user.lastname AS col1,
user.firstname AS col2 "
)."
- FROM $table_user user, $table_group_user group_rel_user
+ FROM $table_user user
+ INNER JOIN $table_group_user group_rel_user
+ ON (group_rel_user.user_id = user.id)
+ INNER JOIN $tableGroup g
+ ON (group_rel_user.group_id = g.id)
WHERE
+ g.iid = '".$groupInfo['iid']."' AND
group_rel_user.c_id = $course_id AND
group_rel_user.user_id = user.id AND
- group_rel_user.group_id = '".$groupInfo['iid']."'
+ g.iid = '".$groupInfo['iid']."'
ORDER BY col$column $direction
LIMIT $from, $number_of_items";
}
diff --git a/main/group/member_settings.php b/main/group/member_settings.php
index e92a9e805f..b28b592dbc 100755
--- a/main/group/member_settings.php
+++ b/main/group/member_settings.php
@@ -25,7 +25,7 @@ $nameTools = get_lang('EditGroup');
$interbreadcrumb[] = array('url' => 'group.php', 'name' => get_lang('Groups'));
$interbreadcrumb[] = array('url' => 'group_space.php?'.api_get_cidreq(), 'name' => $current_group['name']);
-$is_group_member = GroupManager::is_tutor_of_group(api_get_user_id(), $current_group['iid']);
+$is_group_member = GroupManager::is_tutor_of_group(api_get_user_id(), $current_group);
if (!api_is_allowed_to_edit(false, true) && !$is_group_member) {
api_not_allowed(true);
@@ -125,8 +125,8 @@ $(document).ready( function() {
$form = new FormValidator('group_edit', 'post', api_get_self().'?'.api_get_cidreq());
$form->addElement('hidden', 'action');
$form->addElement('hidden', 'max_student', $current_group['max_student']);
-$complete_user_list = GroupManager::fill_groups_list($current_group['iid']);
-$subscribedTutors = GroupManager::getTutors($current_group['iid']);
+$complete_user_list = GroupManager::fill_groups_list($current_group);
+$subscribedTutors = GroupManager::getTutors($current_group);
if ($subscribedTutors) {
$subscribedTutors = array_column($subscribedTutors, 'user_id');
}
@@ -165,7 +165,7 @@ if (!empty($complete_user_list)) {
}
// Group members
-$group_member_list = GroupManager::get_subscribed_users($current_group['iid']);
+$group_member_list = GroupManager::get_subscribed_users($current_group);
$selected_users = array();
if (!empty($group_member_list)) {
@@ -190,12 +190,12 @@ if ($form->validate()) {
$values = $form->exportValues();
// Storing the users (we first remove all users and then add only those who were selected)
- GroupManager:: unsubscribe_all_users($current_group['iid']);
+ GroupManager:: unsubscribe_all_users($current_group);
if (isset($_POST['group_members']) && count($_POST['group_members']) > 0) {
GroupManager:: subscribe_users(
$values['group_members'],
- $current_group['iid']
+ $current_group
);
}
@@ -218,7 +218,7 @@ $action = isset($_GET['action']) ? $_GET['action'] : null;
switch ($action) {
case 'empty':
if (api_is_allowed_to_edit(false, true)) {
- GroupManager:: unsubscribe_all_users($current_group['iid']);
+ GroupManager:: unsubscribe_all_users($current_group);
Display :: display_confirmation_message(get_lang('GroupEmptied'));
}
break;
diff --git a/main/group/settings.php b/main/group/settings.php
index 8b79669f9e..dc87ae1090 100755
--- a/main/group/settings.php
+++ b/main/group/settings.php
@@ -23,7 +23,7 @@ $current_group = GroupManager::get_group_properties($group_id);
$nameTools = get_lang('EditGroup');
$interbreadcrumb[] = array('url' => 'group.php?'.api_get_cidreq(), 'name' => get_lang('Groups'));
$interbreadcrumb[] = array('url' => 'group_space.php?'.api_get_cidreq(), 'name' => $current_group['name']);
-$is_group_member = GroupManager::is_tutor_of_group(api_get_user_id(), $current_group['iid']);
+$is_group_member = GroupManager::is_tutor_of_group(api_get_user_id(), $current_group);
if (!api_is_allowed_to_edit(false, true) && !$is_group_member) {
api_not_allowed(true);
diff --git a/main/group/tutor_settings.php b/main/group/tutor_settings.php
index 943936db1f..972d769774 100755
--- a/main/group/tutor_settings.php
+++ b/main/group/tutor_settings.php
@@ -25,7 +25,7 @@ $nameTools = get_lang('EditGroup');
$interbreadcrumb[] = array('url' => 'group.php?'.api_get_cidreq(), 'name' => get_lang('Groups'));
$interbreadcrumb[] = array('url' => 'group_space.php?'.api_get_cidreq(), 'name' => $current_group['name']);
-$is_group_member = GroupManager::is_tutor_of_group(api_get_user_id(), $current_group['iid']);
+$is_group_member = GroupManager::is_tutor_of_group(api_get_user_id(), $current_group);
if (!api_is_allowed_to_edit(false, true) && !$is_group_member) {
api_not_allowed(true);
@@ -110,18 +110,18 @@ $form = new FormValidator('group_edit', 'post', api_get_self().'?'.api_get_cidre
$form->addElement('hidden', 'action');
// Group tutors
-$group_tutor_list = GroupManager :: get_subscribed_tutors($current_group['iid']);
+$group_tutor_list = GroupManager::get_subscribed_tutors($current_group);
$selected_tutors = array();
foreach ($group_tutor_list as $index => $user) {
$selected_tutors[] = $user['user_id'];
}
-$complete_user_list = GroupManager::fill_groups_list($current_group['iid']);
+$complete_user_list = GroupManager::fill_groups_list($current_group);
$possible_users = array();
$userGroup = new UserGroup();
-$subscribedUsers = GroupManager::get_subscribed_users($current_group['iid']);
+$subscribedUsers = GroupManager::get_subscribed_users($current_group);
if ($subscribedUsers) {
$subscribedUsers = array_column($subscribedUsers, 'user_id');
}
@@ -130,7 +130,6 @@ $orderUserListByOfficialCode = api_get_setting('order_user_list_by_official_code
if (!empty($complete_user_list)) {
usort($complete_user_list, 'sort_users');
foreach ($complete_user_list as $index => $user) {
-
if (in_array($user['user_id'], $subscribedUsers)) {
continue;
}
@@ -181,7 +180,7 @@ if ($form->validate()) {
// Storing the tutors (we first remove all the tutors and then add only those who were selected)
GroupManager :: unsubscribe_all_tutors($current_group['iid']);
if (isset($_POST['group_tutors']) && count($_POST['group_tutors']) > 0) {
- GroupManager::subscribe_tutors($values['group_tutors'], $current_group['iid']);
+ GroupManager::subscribe_tutors($values['group_tutors'], $current_group);
}
// Returning to the group area (note: this is inconsistent with the rest of chamilo)
diff --git a/main/inc/ajax/document.ajax.php b/main/inc/ajax/document.ajax.php
index 37d9f8a828..7cfb01c874 100755
--- a/main/inc/ajax/document.ajax.php
+++ b/main/inc/ajax/document.ajax.php
@@ -39,7 +39,7 @@ switch ($action) {
if (api_get_group_id()) {
$groupInfo = GroupManager::get_group_properties(api_get_group_id());
// Only course admin or group members allowed
- if ($is_allowed_to_edit || GroupManager::is_user_in_group(api_get_user_id(), $groupInfo['iid'])) {
+ if ($is_allowed_to_edit || GroupManager::is_user_in_group(api_get_user_id(), $groupInfo)) {
} else {
exit;
}
diff --git a/main/inc/ajax/forum.ajax.php b/main/inc/ajax/forum.ajax.php
index 891bf4f58f..a28c0c2ab3 100644
--- a/main/inc/ajax/forum.ajax.php
+++ b/main/inc/ajax/forum.ajax.php
@@ -136,7 +136,7 @@ if (!empty($action)) {
$groupInfo = GroupManager::get_group_properties($group_id);
if (!api_is_allowed_to_edit(null, true) &&
$current_forum['allow_edit'] == 0 &&
- ($group_id && !GroupManager::is_tutor_of_group(api_get_user_id(), $groupInfo['iid']))
+ ($group_id && !GroupManager::is_tutor_of_group(api_get_user_id(), $groupInfo))
) {
$json['errorMessage'] = '4. if editing of replies is not allowed';
break;
diff --git a/main/inc/lib/agenda.lib.php b/main/inc/lib/agenda.lib.php
index fd569b123e..339e7b45f4 100644
--- a/main/inc/lib/agenda.lib.php
+++ b/main/inc/lib/agenda.lib.php
@@ -85,7 +85,7 @@ class Agenda
) &&
GroupManager::is_tutor_of_group(
api_get_user_id(),
- $groupInfo['iid']
+ $groupInfo
);
if ($isGroupAccess) {
$isAllowToEdit = true;
@@ -2955,16 +2955,14 @@ class Agenda
$form = '';
if (api_is_allowed_to_edit(false, true) ||
- (api_get_course_setting(
- 'allow_user_edit_agenda'
- ) && !api_is_anonymous()) &&
+ (api_get_course_setting('allow_user_edit_agenda') && !api_is_anonymous()) &&
api_is_allowed_to_session_edit(false, true) ||
(GroupManager::user_has_access(
api_get_user_id(),
$groupIid,
GroupManager::GROUP_TOOL_CALENDAR
) &&
- GroupManager::is_tutor_of_group(api_get_user_id(), $groupIid))
+ GroupManager::is_tutor_of_group(api_get_user_id(), $groupInfo))
) {
$actionsLeft .= Display::url(
Display::return_icon(
diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php
index dd31400159..8615e5f3fa 100755
--- a/main/inc/lib/course.lib.php
+++ b/main/inc/lib/course.lib.php
@@ -2163,7 +2163,7 @@ class CourseManager
$result = Database::query($sql);
while ($group_data = Database::fetch_array($result)) {
- $group_data['userNb'] = GroupManager::number_of_students($group_data['iid'], $course_id);
+ $group_data['userNb'] = GroupManager::number_of_students($group_data['id'], $course_id);
$group_list[$group_data['id']] = $group_data;
}
return $group_list;
@@ -2252,11 +2252,9 @@ class CourseManager
// Cleaning groups
$groups = GroupManager::get_groups($courseId);
if (!empty($groups)) {
- $groupList = array_column($groups, 'iid');
- foreach ($groupList as $groupId) {
- GroupManager::delete_groups($groupId, $course['code']);
+ foreach ($groups as $group) {
+ GroupManager::delete_groups($group, $course['code']);
}
-
}
// Cleaning c_x tables
@@ -5755,12 +5753,12 @@ class CourseManager
/**
* Shows the form for sending a message to a specific group or user.
* @param FormValidator $form
- * @param int $group_id iid
+ * @param int $group_id id
* @param array $to
*/
- public static function addGroupMultiSelect($form, $group_id, $to = array())
+ public static function addGroupMultiSelect($form, $groupInfo, $to = array())
{
- $group_users = GroupManager::get_subscribed_users($group_id);
+ $group_users = GroupManager::get_subscribed_users($groupInfo);
$array = self::buildSelectOptions(null, $group_users, $to);
$result = array();
diff --git a/main/inc/lib/groupmanager.lib.php b/main/inc/lib/groupmanager.lib.php
index dfa4606423..5fbdbaa79b 100755
--- a/main/inc/lib/groupmanager.lib.php
+++ b/main/inc/lib/groupmanager.lib.php
@@ -131,7 +131,7 @@ class GroupManager
$groups = array();
while ($thisGroup = Database::fetch_array($groupList)) {
- $thisGroup['number_of_members'] = count(self::get_subscribed_users($thisGroup['iid']));
+ $thisGroup['number_of_members'] = count(self::get_subscribed_users($thisGroup));
if ($thisGroup['session_id'] != 0) {
$sql = 'SELECT name FROM '.Database::get_main_table(TABLE_MAIN_SESSION).'
WHERE id='.$thisGroup['session_id'];
@@ -330,11 +330,13 @@ class GroupManager
$members = array();
foreach ($users as $index => $user_id) {
+ $groupId = $group_ids[$index % $number_of_groups];
+ $groupInfo = self::get_group_properties($groupId);
self::subscribe_users(
$user_id,
- $group_ids[$index % $number_of_groups]
+ $groupInfo
);
- $members[$group_ids[$index % $number_of_groups]]++;
+ $members[$group_ids[$groupId]]++;
}
foreach ($members as $group_id => $places) {
@@ -363,7 +365,8 @@ class GroupManager
0,
count($users_ids)
);
- self::subscribe_users($users_ids, $group_id);
+ $groupInfo = self::get_group_properties($group_id);
+ self::subscribe_users($users_ids, $groupInfo);
$group_ids[] = $group_id;
}
return $group_ids;
@@ -374,11 +377,11 @@ class GroupManager
* @author Christophe Gesche
* @author Hugues Peeters
* @author Bart Mollet
- * @param int $groupId iid
+ * @param array $groupInfo iid
* @param string $course_code Default is current course
* @return integer - number of groups deleted.
*/
- public static function delete_groups($groupId, $course_code = null)
+ public static function delete_groups($groupInfo, $course_code = null)
{
$course_info = api_get_course_info($course_code);
$course_id = $course_info['real_id'];
@@ -386,26 +389,26 @@ class GroupManager
// Database table definitions
$group_table = Database:: get_course_table(TABLE_GROUP);
$forum_table = Database:: get_course_table(TABLE_FORUM);
- $groupId = (int) $groupId;
-
- $sql = "SELECT id, iid, secret_directory, session_id
- FROM $group_table
- WHERE c_id = $course_id AND iid = $groupId";
- $db_result = Database::query($sql);
-
- $group = Database::fetch_object($db_result);
- if ($group) {
+ $groupInfo = self::get_group_properties($groupInfo['iid'], true);
+ if ($groupInfo) {
+ $groupIid = $groupInfo['iid'];
+ $groupId = $groupInfo['id'];
+ $directory = $groupInfo['secret_directory'];
// Unsubscribe all users
- self::unsubscribe_all_users($groupId);
- self::unsubscribe_all_tutors($groupId);
+ self::unsubscribe_all_users($groupInfo);
+ self::unsubscribe_all_tutors($groupInfo);
// move group-documents to garbage
- $source_directory = api_get_path(SYS_COURSE_PATH).$course_info['path']."/document".$group->secret_directory;
+ $source_directory = api_get_path(SYS_COURSE_PATH).$course_info['path']."/document".$directory;
// File to renamed
- $destination_dir = api_get_path(SYS_COURSE_PATH).$course_info['path']."/document".$group->secret_directory.'_DELETED_'.$group->id;
+ $destination_dir = api_get_path(SYS_COURSE_PATH).$course_info['path']."/document".$directory.'_DELETED_'.$groupInfo['id'];
- if (!empty($group->secret_directory)) {
+ if (!empty($directory)) {
//Deleting from document tool
- DocumentManager::delete_document($course_info, $group->secret_directory, $source_directory);
+ DocumentManager::delete_document(
+ $course_info,
+ $directory,
+ $source_directory
+ );
if (file_exists($source_directory)) {
if (api_get_setting('permanently_remove_deleted_files') === 'true') {
@@ -430,7 +433,7 @@ class GroupManager
// delete the groups
$sql = "DELETE FROM $group_table
- WHERE c_id = $course_id AND iid = $groupId ";
+ WHERE c_id = $course_id AND iid = $groupIid ";
Database::query($sql);
}
@@ -440,6 +443,7 @@ class GroupManager
/**
* Get group properties
* @param int $group_id The group from which properties are requested.
+ * @param bool $useIid
* @return array All properties. Array-keys are:
* name, tutor_id, description, maximum_number_of_students,
* directory and visibility of tools
@@ -483,10 +487,10 @@ class GroupManager
$result['self_registration_allowed'] = $db_object->self_registration_allowed;
$result['self_unregistration_allowed'] = $db_object->self_unregistration_allowed;
$result['count_users'] = count(
- self::get_subscribed_users($db_object->iid)
+ self::get_subscribed_users($result)
);
$result['count_tutor'] = count(
- self::get_subscribed_tutors($db_object->iid)
+ self::get_subscribed_tutors($result)
);
$result['count_all'] = $result['count_users'] + $result['count_tutor'];
}
@@ -775,7 +779,8 @@ class GroupManager
$res = Database::query($sql);
if (Database::num_rows($res) > 0) {
while ($group = Database::fetch_object($res)) {
- self::delete_groups($group->iid, $course_code);
+ $groupInfo = self::get_group_properties($group->iid, true);
+ self::delete_groups($groupInfo, $course_code);
}
}
$sql = "DELETE FROM $table_group_cat
@@ -948,7 +953,7 @@ class GroupManager
*/
public static function get_current_max_groups_per_user($category_id = null, $course_code = null)
{
- $course_info = api_get_course_info ($course_code);
+ $course_info = api_get_course_info($course_code);
$group_table = Database::get_course_table(TABLE_GROUP);
$group_user_table = Database::get_course_table(TABLE_GROUP_USER);
$sql = 'SELECT COUNT(gu.group_id) AS current_max
@@ -1018,7 +1023,6 @@ class GroupManager
$group_user_table = Database::get_course_table(TABLE_GROUP_USER);
$groupTable = Database::get_course_table(TABLE_GROUP);
$user_table = Database::get_main_table(TABLE_MAIN_USER);
-
$group_id = intval($group_id);
if (empty($courseId)) {
@@ -1071,7 +1075,7 @@ class GroupManager
}
/**
- * @param int $group_id
+ * @param int $group_id id
* @return array
*/
public static function getStudentsAndTutors($group_id)
@@ -1109,21 +1113,21 @@ class GroupManager
/**
* Get only tutors from a group
- * @param int $group_id iid
+ * @param array $groupInfo
* @return array
*/
- public static function getTutors($group_id)
+ public static function getTutors($groupInfo)
{
$groupTable = Database::get_course_table(TABLE_GROUP);
$tutor_user_table = Database::get_course_table(TABLE_GROUP_TUTOR);
$course_id = api_get_course_int_id();
- $group_id = intval($group_id);
+ $group_id = intval($groupInfo['iid']);
$sql = "SELECT user_id
FROM $tutor_user_table gu
INNER JOIN $groupTable g
ON (gu.group_id = g.id and g.c_id = gu.c_id)
- WHERE gu.c_id = $course_id AND g.id = $group_id";
+ WHERE gu.c_id = $course_id AND g.iid = $group_id";
$res = Database::query($sql);
$users = array();
@@ -1209,25 +1213,30 @@ class GroupManager
* ywarnier:> Now the course_id has been removed (25/1/2005)
* The databases are als very inconsistent in this.
*
- * @param int $groupId iid
+ * @param array $groupInfo
* @author Chrisptophe Gesche ,
* Hugues Peeters - original version
* @author Roan Embrechts - virtual course support, code cleaning
* @author Bart Mollet - code cleaning, use other GroupManager-functions
* @return void
*/
- public static function fill_groups($groupId)
+ public static function fill_groups($groupInfo)
{
$_course = api_get_course_info();
- $groupId = (int) $groupId;
+ $groupIid = $groupInfo['iid'];
+ $groupId = $groupInfo['id'];
- $category = self::get_category_from_group($groupId);
+ $category = self::get_category_from_group($groupIid);
$groups_per_user = isset($category['groups_per_user']) ? $category['groups_per_user'] : self::GROUP_PER_MEMBER_NO_LIMIT;
$group_table = Database:: get_course_table(TABLE_GROUP);
$group_user_table = Database:: get_course_table(TABLE_GROUP_USER);
$session_id = api_get_session_id();
- $complete_user_list = CourseManager::get_real_and_linked_user_list($_course['code'], true, $session_id);
+ $complete_user_list = CourseManager::get_real_and_linked_user_list(
+ $_course['code'],
+ true,
+ $session_id
+ );
$number_groups_per_user = $groups_per_user == self::GROUP_PER_MEMBER_NO_LIMIT ? self::INFINITE : $groups_per_user;
/*
@@ -1241,9 +1250,9 @@ class GroupManager
LEFT JOIN $group_user_table ug ON
g.c_id = $course_id AND
ug.c_id = $course_id AND
- g.iid = ug.group_id
+ g.id = ug.group_id
WHERE
- g.iid = $groupId
+ g.id = $groupId
GROUP BY (g.iid)
HAVING (nbPlaces > 0 OR g.max_student = ".self::MEMBER_PER_GROUP_NO_LIMIT.")
ORDER BY nbPlaces DESC";
@@ -1267,7 +1276,6 @@ class GroupManager
$complete_user_list[$i]['number_groups_left'] = $number_groups_per_user - $number_of_groups;
}
-
//first sort by user_id to filter out duplicates
$complete_user_list = TableSort::sort_table($complete_user_list, 'user_id');
$complete_user_list = self::filter_duplicates($complete_user_list, 'user_id');
@@ -1291,11 +1299,12 @@ class GroupManager
reset($userToken);
arsort($userToken);
- foreach ($group_available_place as $group_id => $place) {
+ foreach ($group_available_place as $groupIid => $place) {
foreach ($userToken as $user_id => $places) {
- if (self::can_user_subscribe($user_id, $group_id)) {
- self::subscribe_users($user_id, $group_id);
- $group_available_place[$group_id]--;
+ $groupInfo = self::get_group_properties($groupIid, true);
+ if (self::can_user_subscribe($user_id, $groupInfo)) {
+ self::subscribe_users($user_id, $groupInfo);
+ $group_available_place[$groupIid]--;
unset($userToken[$user_id]);
$changed = true;
break;
@@ -1310,7 +1319,7 @@ class GroupManager
/**
* Get the number of students in a group.
- * @param int $group_id iid
+ * @param int $group_id id
* @return int Number of students in the given group.
*/
public static function number_of_students($group_id, $course_id = null)
@@ -1322,7 +1331,7 @@ class GroupManager
} else {
$course_id = intval($course_id);
}
- $sql = "SELECT COUNT(*) AS number_of_students
+ $sql = "SELECT COUNT(*) AS number_of_students
FROM $table_group_user
WHERE c_id = $course_id AND group_id = $group_id";
$result = Database::query($sql);
@@ -1385,30 +1394,31 @@ class GroupManager
/**
* Is sef-registration allowed?
* @param int $user_id
- * @param int $group_id iid
+ * @param array $groupInfo
* @return bool TRUE if self-registration is allowed in the given group.
*/
- public static function is_self_registration_allowed($user_id, $group_id)
+ public static function is_self_registration_allowed($user_id, $groupInfo)
{
$course_id = api_get_course_int_id();
if (!$user_id > 0) {
return false;
}
+ $groupIid = $groupInfo['iid'];
+ $groupId = $groupInfo['id'];
+
$table_group = Database::get_course_table(TABLE_GROUP);
- $group_id = intval($group_id);
if (isset($group_id)) {
$sql = "SELECT status, self_registration_allowed
FROM $table_group
- WHERE c_id = $course_id AND iid = $group_id";
+ WHERE c_id = $course_id AND iid = $groupIid";
$result = Database::query($sql);
$group = Database::fetch_object($result);
if ($group->status == 0 || $group->self_registration_allowed != 1) {
-
return false;
}
- return self::can_user_subscribe($user_id, $group_id);
+ return self::can_user_subscribe($user_id, $groupInfo);
} else {
return false;
}
@@ -1417,46 +1427,45 @@ class GroupManager
/**
* Is sef-unregistration allowed?
* @param int $user_id
- * @param int $group_id iid
+ * @param array $groupInfo
* @return bool TRUE if self-unregistration is allowed in the given group.
*/
- public static function is_self_unregistration_allowed($user_id, $group_id)
+ public static function is_self_unregistration_allowed($user_id, $groupInfo)
{
- if (!$user_id > 0) {
+ if (!$user_id > 0 || empty($groupInfo)) {
return false;
}
+ $groupIid = $groupInfo['iid'];
$table_group = Database::get_course_table(TABLE_GROUP);
- $group_id = intval($group_id);
$course_id = api_get_course_int_id();
$sql = "SELECT status, self_unregistration_allowed
FROM $table_group
- WHERE c_id = $course_id AND iid = $group_id";
+ WHERE c_id = $course_id AND iid = $groupIid";
$result = Database::query($sql);
$group = Database::fetch_object($result);
if ($group->status == 0 || $group->self_unregistration_allowed != 1) {
-
return false;
}
- return self::is_subscribed($user_id, $group_id);
+ return self::is_subscribed($user_id, $groupInfo);
}
/**
* Is user subscribed in group?
* @param int $user_id
- * @param int $group_id iid
+ * @param array $groupInfo
* @return bool TRUE if given user is subscribed in given group
*/
- public static function is_subscribed($user_id, $group_id)
+ public static function is_subscribed($user_id, $groupInfo)
{
$course_id = api_get_course_int_id();
if (empty($user_id) || empty($group_id) || empty($course_id)) {
return false;
}
$table_group_user = Database::get_course_table(TABLE_GROUP_USER);
- $group_id = intval($group_id);
+ $group_id = intval($groupInfo['id']);
$user_id = intval($user_id);
$sql = "SELECT 1 FROM $table_group_user
@@ -1473,39 +1482,41 @@ class GroupManager
/**
* Can a user subscribe to a specified group in a course
* @param int $user_id
- * @param int $group_id iid
+ * @param array $groupInfo
* @param bool $checkMaxNumberStudents
*
* @return bool TRUE if given user can be subscribed in given group
*/
- public static function can_user_subscribe($user_id, $group_id, $checkMaxNumberStudents = true)
+ public static function can_user_subscribe($user_id, $groupInfo, $checkMaxNumberStudents = true)
{
+ $group_id = $groupInfo['id'];
+ $groupIid = $groupInfo['iid'];
if ($checkMaxNumberStudents) {
- $category = self:: get_category_from_group($group_id);
+ $category = self::get_category_from_group($groupIid);
if ($category) {
if ($category['groups_per_user'] == self::GROUP_PER_MEMBER_NO_LIMIT) {
$category['groups_per_user'] = self::INFINITE;
}
- $result = self:: user_in_number_of_groups($user_id, $category['id'] ) < $category['groups_per_user'];
+ $result = self:: user_in_number_of_groups($user_id, $category['id']) < $category['groups_per_user'];
if ($result == false) {
return false;
}
}
- $result = self:: number_of_students($group_id) < self:: maximum_number_of_students($group_id);
+ $result = self::number_of_students($group_id) < self:: maximum_number_of_students($groupIid);
if ($result == false) {
return false;
}
}
- $result = self::is_tutor_of_group($user_id, $group_id);
+ $result = self::is_tutor_of_group($user_id, $groupInfo);
if ($result) {
return false;
}
- $result = self::is_subscribed($user_id, $group_id);
+ $result = self::is_subscribed($user_id, $groupInfo);
if ($result) {
return false;
@@ -1516,11 +1527,11 @@ class GroupManager
/**
* Get all subscribed users (members) from a group
- * @param int $group_id (iid)
+ * @param array $groupInfo
* @return array An array with information of all users from the given group.
* (user_id, firstname, lastname, email)
*/
- public static function get_subscribed_users($group_id)
+ public static function get_subscribed_users($groupInfo)
{
$table_user = Database::get_main_table(TABLE_MAIN_USER);
$table_group_user = Database::get_course_table(TABLE_GROUP_USER);
@@ -1530,18 +1541,28 @@ class GroupManager
$order_clause = " ORDER BY u.official_code, u.firstname, u.lastname";
}
+ $group_id = intval($groupInfo['id']);
+
if (empty($group_id)) {
return array();
}
- $group_id = intval($group_id);
+
$course_id = api_get_course_int_id();
- $sql = "SELECT ug.id, u.user_id, u.lastname, u.firstname, u.email, u.username
- FROM $table_user u INNER JOIN $table_group_user ug
+ $sql = "SELECT
+ ug.id,
+ u.user_id,
+ u.lastname,
+ u.firstname,
+ u.email,
+ u.username
+ FROM $table_user u
+ INNER JOIN $table_group_user ug
ON (ug.user_id = u.user_id)
WHERE ug.c_id = $course_id AND
ug.group_id = $group_id
$order_clause";
+
$db_result = Database::query($sql);
$users = array();
while ($user = Database::fetch_object($db_result)) {
@@ -1560,11 +1581,11 @@ class GroupManager
/**
* @author Patrick Cool , Ghent University
* Get all subscribed tutors of a group
- * @param int $group_id (iid)
+ * @param array $groupInfo
* @return array An array with information of all users from the given group.
* (user_id, firstname, lastname, email)
*/
- public static function get_subscribed_tutors($group_id, $id_only = false)
+ public static function get_subscribed_tutors($groupInfo, $id_only = false)
{
$table_user = Database::get_main_table(TABLE_MAIN_USER);
$table_group_tutor = Database::get_course_table(TABLE_GROUP_TUTOR);
@@ -1575,7 +1596,7 @@ class GroupManager
$order_clause = " ORDER BY u.official_code, u.firstname, u.lastname";
}
- $group_id = intval($group_id);
+ $group_id = intval($groupInfo['id']);
$course_id = api_get_course_int_id();
$sql = "SELECT tg.id, u.user_id, u.lastname, u.firstname, u.email
@@ -1606,20 +1627,20 @@ class GroupManager
/**
* Subscribe user(s) to a specified group in current course (as a student)
* @param mixed $user_ids Can be an array with user-id's or a single user-id
- * @param int $group_id iid
+ * @param array $groupInfo
* @param int $course_id
* @return bool TRUE if successful
*/
- public static function subscribe_users($user_ids, $group_id, $course_id = null)
+ public static function subscribe_users($user_ids, $groupInfo, $course_id = null)
{
$user_ids = is_array($user_ids) ? $user_ids : array($user_ids);
$course_id = isset($course_id) && !empty($course_id) ? intval($course_id) : api_get_course_int_id();
- $group_id = intval($group_id);
+ $group_id = $groupInfo['id'];
$table_group_user = Database::get_course_table(TABLE_GROUP_USER);
if (!empty($user_ids)) {
foreach ($user_ids as $user_id) {
- if (self::can_user_subscribe($user_id, $group_id)) {
+ if (self::can_user_subscribe($user_id, $groupInfo)) {
$user_id = intval($user_id);
$sql = "INSERT INTO ".$table_group_user." (c_id, user_id, group_id)
VALUES ('$course_id', '".$user_id."', '".$group_id."')";
@@ -1634,24 +1655,24 @@ class GroupManager
/**
* Subscribe tutor(s) to a specified group in current course
* @param mixed $user_ids Can be an array with user-id's or a single user-id
- * @param int $group_id iid
+ * @param int $group_id id
* @param int $course_id
*
* @author Patrick Cool , Ghent University
* @see subscribe_users. This function is almost an exact copy of that function.
* @return bool TRUE if successful
*/
- public static function subscribe_tutors($user_ids, $groupId, $course_id = null)
+ public static function subscribe_tutors($user_ids, $groupInfo, $course_id = null)
{
$user_ids = is_array($user_ids) ? $user_ids : array($user_ids);
$result = true;
$course_id = isset($course_id) && !empty($course_id) ? intval($course_id) : api_get_course_int_id();
$table_group_tutor = Database::get_course_table(TABLE_GROUP_TUTOR);
- $groupId = (int) $groupId;
+ $groupId = (int) $groupInfo['id'];
foreach ($user_ids as $user_id) {
$user_id = intval($user_id);
- if (self::can_user_subscribe($user_id, $groupId, false)) {
+ if (self::can_user_subscribe($user_id, $groupInfo, false)) {
$sql = "INSERT INTO " . $table_group_tutor . " (c_id, user_id, group_id)
VALUES ('$course_id', '" . $user_id . "', '" . $groupId . "')";
$result = Database::query($sql);
@@ -1664,14 +1685,14 @@ class GroupManager
/**
* Unsubscribe user(s) from a specified group in current course
* @param mixed $user_ids Can be an array with user-id's or a single user-id
- * @param int $group_id iid
+ * @param array $groupInfo
* @return bool TRUE if successful
*/
- public static function unsubscribe_users($user_ids, $group_id)
+ public static function unsubscribe_users($user_ids, $groupInfo)
{
$user_ids = is_array($user_ids) ? $user_ids : array ($user_ids);
$table_group_user = Database::get_course_table(TABLE_GROUP_USER);
- $group_id = intval($group_id);
+ $group_id = intval($groupInfo['id']);
$course_id = api_get_course_int_id();
$sql = 'DELETE FROM '.$table_group_user.'
WHERE
@@ -1684,15 +1705,13 @@ class GroupManager
/**
* Unsubscribe all users from one or more groups
- * @param int $group_id iid
+ * @param array $groupInfo
* @return bool TRUE if successful
*/
- public static function unsubscribe_all_users($groupId)
+ public static function unsubscribe_all_users($groupInfo)
{
$course_id = api_get_course_int_id();
- //api_is_element_in_the_session(TOOL_GROUP, $group_ids[$i])
-
- $groupId = (int) $groupId;
+ $groupId = (int) $groupInfo['id'];
if (empty($course_id) || empty($groupId)) {
return false;
}
@@ -1736,16 +1755,20 @@ class GroupManager
/**
* Is the user a tutor of this group?
* @param int $user_id the id of the user
- * @param int $group_id the iid of the group
+ * @param array $groupInfo
* @return boolean true/false
* @todo use the function user_has_access that includes this function
* @author Patrick Cool , Ghent University
*/
- public static function is_tutor_of_group($user_id, $group_id)
+ public static function is_tutor_of_group($user_id, $groupInfo)
{
+ if (empty($groupInfo)) {
+ return false;
+ }
$table_group_tutor = Database::get_course_table(TABLE_GROUP_TUTOR);
$user_id = intval($user_id);
- $group_id = intval($group_id);
+ $group_id = intval($groupInfo['id']);
+
$course_id = api_get_course_int_id();
$sql = "SELECT * FROM $table_group_tutor
@@ -1769,14 +1792,14 @@ class GroupManager
* 1. a member of the group OR
* 2. a tutor of the group. This function combines both
* @param int $user_id the id of the user
- * @param int $group_id the iid of the group
+ * @param array $groupInfo
* @return boolean true/false
* @author Patrick Cool , Ghent University
*/
- public static function is_user_in_group($user_id, $group_id)
+ public static function is_user_in_group($user_id, $groupInfo)
{
- $member = self::is_subscribed($user_id, $group_id);
- $tutor = self::is_tutor_of_group($user_id, $group_id);
+ $member = self::is_subscribed($user_id, $groupInfo);
+ $tutor = self::is_tutor_of_group($user_id, $groupInfo);
if ($member || $tutor) {
return true;
} else {
@@ -1946,7 +1969,7 @@ class GroupManager
return true;
break;
case self::TOOL_PRIVATE:
- $userIsInGroup = self::is_user_in_group($user_id, $groupInfo['iid']);
+ $userIsInGroup = self::is_user_in_group($user_id, $groupInfo);
if ($userIsInGroup) {
return true;
}
@@ -1978,7 +2001,7 @@ class GroupManager
}
$groupId = $groupInfo['iid'];
- $tutors = self::get_subscribed_tutors($groupId, true);
+ $tutors = self::get_subscribed_tutors($groupInfo, true);
if (in_array($userId, $tutors)) {
return true;
@@ -2072,19 +2095,23 @@ class GroupManager
* Fill the groups with students.
*
* note : optimize fill_groups_list <--> fill_groups
- * @param int $groupId (group iid)
+ * @param array $groupInfo
* @return array|bool
*/
- public static function fill_groups_list($groupId)
+ public static function fill_groups_list($groupInfo)
{
- $groupId = (int) $groupId;
- $_course = api_get_course_info();
+ if (empty($groupInfo)) {
+ return [];
+ }
+ $groupIid = (int) $groupInfo['iid'];
+ $groupId = (int) $groupInfo['id'];
+ $_course = api_get_course_info();
if (empty($_course) || empty($groupId)) {
return [];
}
- $category = self::get_category_from_group($groupId);
+ $category = self::get_category_from_group($groupIid);
$number_groups_per_user = self::GROUP_PER_MEMBER_NO_LIMIT;
$categoryId = 0;
if ($category) {
@@ -2107,7 +2134,7 @@ class GroupManager
for ($i = 0; $i < count($complete_user_list); $i ++) {
// find # of groups the user is enrolled in
$number_of_groups = self:: user_in_number_of_groups(
- $complete_user_list[$i]["user_id"],
+ $complete_user_list[$i]['user_id'],
$categoryId
);
// add # of groups to user list
@@ -2145,8 +2172,8 @@ class GroupManager
$session_img = api_get_session_image($this_group['session_id'], $user_info['status']);
// All the tutors of this group
- $tutorsids_of_group = self::get_subscribed_tutors($this_group['iid'], true);
- $isMember = self::is_subscribed($user_id, $this_group['iid']);
+ $tutorsids_of_group = self::get_subscribed_tutors($this_group, true);
+ $isMember = self::is_subscribed($user_id, $this_group);
// Create a new table-row
$row = array();
@@ -2225,9 +2252,9 @@ class GroupManager
// Self-registration / unregistration
if (!api_is_allowed_to_edit(false, true)) {
- if (self::is_self_registration_allowed($user_id, $this_group['iid'])) {
+ if (self::is_self_registration_allowed($user_id, $this_group)) {
$row[] = ''.get_lang('GroupSelfRegInf').'';
- } elseif (self::is_self_unregistration_allowed($user_id, $this_group['iid'])) {
+ } elseif (self::is_self_unregistration_allowed($user_id, $this_group)) {
$row[] = ''.get_lang('GroupSelfUnRegInf').'';
} else {
$row[] = '-';
@@ -2426,6 +2453,7 @@ class GroupManager
$data['group_id'] = $groupId;
$result['added']['group'][] = $data;
}
+ $groupInfo = self::get_group_properties($groupId, true);
} else {
// Update
$groupId = $groupInfo['id'];
@@ -2448,8 +2476,11 @@ class GroupManager
$data['group_id'] = $groupId;
$result['updated']['group'][] = $data;
+ $groupInfo = self::get_group_properties($groupId);
}
+
+
$students = isset($data['students']) ? explode(',', $data['students']) : [];
if (!empty($students)) {
$studentUserIdList = array();
@@ -2457,7 +2488,7 @@ class GroupManager
$userInfo = api_get_user_info_from_username($student);
$studentUserIdList[] = $userInfo['user_id'];
}
- self::subscribe_users($studentUserIdList, $groupId);
+ self::subscribe_users($studentUserIdList, $groupInfo);
}
$tutors = isset($data['tutors']) ? explode(',', $data['tutors']) : [];
@@ -2467,7 +2498,7 @@ class GroupManager
$userInfo = api_get_user_info_from_username($tutor);
$tutorIdList[] = $userInfo['user_id'];
}
- self::subscribe_tutors($tutorIdList, $groupId);
+ self::subscribe_tutors($tutorIdList, $groupInfo);
}
$elementsFound['groups'][] = $groupId;
@@ -2488,7 +2519,7 @@ class GroupManager
$groups = self::get_groups();
foreach ($groups as $group) {
if (!in_array($group['iid'], $elementsFound['groups'])) {
- self::delete_groups($group['iid']);
+ self::delete_groups($group);
$group['group'] = $group['name'];
$result['deleted']['group'][] = $group;
}
@@ -2573,7 +2604,7 @@ class GroupManager
$userList[] = $user['username'];
}
- $tutors = self::getTutors($groupInfo['iid']);
+ $tutors = self::getTutors($groupInfo);
$tutorList = array();
foreach ($tutors as $user) {
$user = api_get_user_info($user['user_id']);
@@ -2696,7 +2727,7 @@ class GroupManager
foreach ($groups as $group) {
$content .= '';
$content .= Display::tag('h3', Security::remove_XSS($group['name']));
- $users = self::getTutors($group['iid']);
+ $users = self::getTutors($group);
if (!empty($users)) {
$content .= '';
$content .= "- ".Display::tag('h4', get_lang('Tutors'))."
";
diff --git a/main/inc/lib/javascript/svgedit/extensions/imagelib/groups.php b/main/inc/lib/javascript/svgedit/extensions/imagelib/groups.php
index 380890740d..9eb5128878 100644
--- a/main/inc/lib/javascript/svgedit/extensions/imagelib/groups.php
+++ b/main/inc/lib/javascript/svgedit/extensions/imagelib/groups.php
@@ -68,7 +68,7 @@ echo ''.get_lang('GroupSingle').': '.$group_properties['name'].'
';
if ((
$group_properties['doc_state'] == 2 &&
- ($is_allowed_to_edit || GroupManager :: is_user_in_group($_user['user_id'], $group_properties['iid']))) ||
+ ($is_allowed_to_edit || GroupManager :: is_user_in_group($_user['user_id'], $group_properties))) ||
$group_properties['doc_state'] == 1
){
diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php
index 6802250479..73cb86c953 100755
--- a/main/inc/lib/sessionmanager.lib.php
+++ b/main/inc/lib/sessionmanager.lib.php
@@ -4962,9 +4962,10 @@ class SessionManager
!empty($groupBackup['user'][$teacherToAdd][$course_code])
) {
foreach ($groupBackup['user'][$teacherToAdd][$course_code] as $data) {
+ $groupInfo = GroupManager::get_group_properties($data['group_id']);
GroupManager::subscribe_users(
$teacherToAdd,
- $data['group_id'],
+ $groupInfo,
$data['c_id']
);
}
@@ -4975,9 +4976,10 @@ class SessionManager
!empty($groupBackup['tutor'][$teacherToAdd][$course_code])
) {
foreach ($groupBackup['tutor'][$teacherToAdd][$course_code] as $data) {
+ $groupInfo = GroupManager::get_group_properties($data['group_id']);
GroupManager::subscribe_tutors(
$teacherToAdd,
- $data['group_id'],
+ $groupInfo,
$data['c_id']
);
}
@@ -5083,9 +5085,10 @@ class SessionManager
!empty($groupBackup['user'][$teacherId][$course_code])
) {
foreach ($groupBackup['user'][$teacherId][$course_code] as $data) {
+ $groupInfo = GroupManager::get_group_properties($data['group_id']);
GroupManager::subscribe_users(
$teacherId,
- $data['group_id'],
+ $groupInfo,
$data['c_id']
);
}
@@ -5096,9 +5099,10 @@ class SessionManager
!empty($groupBackup['tutor'][$teacherId][$course_code])
) {
foreach ($groupBackup['tutor'][$teacherId][$course_code] as $data) {
+ $groupInfo = GroupManager::get_group_properties($data['group_id']);
GroupManager::subscribe_tutors(
$teacherId,
- $data['group_id'],
+ $groupInfo,
$data['c_id']
);
}
diff --git a/main/inc/lib/svg-edit/extensions/imagelib/groups.php b/main/inc/lib/svg-edit/extensions/imagelib/groups.php
index 837022e34a..b407ce9651 100755
--- a/main/inc/lib/svg-edit/extensions/imagelib/groups.php
+++ b/main/inc/lib/svg-edit/extensions/imagelib/groups.php
@@ -71,7 +71,7 @@ echo ''.get_lang('GroupSingle').': '.$group_properties['name'].'
';
if ((
$group_properties['doc_state'] == 2 &&
- ($is_allowed_to_edit || GroupManager :: is_user_in_group($_user['user_id'], $group_properties['iid']))) || $group_properties['doc_state'] == 1
+ ($is_allowed_to_edit || GroupManager :: is_user_in_group($_user['user_id'], $group_properties))) || $group_properties['doc_state'] == 1
){
if (!empty($png_svg_files)) {
diff --git a/main/social/profile.php b/main/social/profile.php
index d71ef03019..4f8587bd66 100755
--- a/main/social/profile.php
+++ b/main/social/profile.php
@@ -219,7 +219,6 @@ $_SESSION['social_user_id'] = intval($user_id);
// Setting some course info
$my_user_id = isset($_GET['u']) ? intval($_GET['u']) : api_get_user_id();
$personal_course_list = UserManager::get_personal_session_course_list($my_user_id, 50);
-
$course_list_code = array();
$i = 1;
$list = [];
diff --git a/main/wiki/index.php b/main/wiki/index.php
index 185ce2fef8..fe30b0bf24 100755
--- a/main/wiki/index.php
+++ b/main/wiki/index.php
@@ -74,7 +74,7 @@ if ($groupId) {
api_not_allowed();
} elseif ($group_properties['wiki_state'] == 2) {
if (!api_is_allowed_to_edit(false, true) and
- !GroupManager :: is_user_in_group(api_get_user_id(), $group_properties['iid'])
+ !GroupManager :: is_user_in_group(api_get_user_id(), $group_properties)
) {
api_not_allowed();
}
diff --git a/main/wiki/wiki.inc.php b/main/wiki/wiki.inc.php
index 2d41271ddf..450b881892 100755
--- a/main/wiki/wiki.inc.php
+++ b/main/wiki/wiki.inc.php
@@ -939,7 +939,7 @@ class Wiki
if ($row['content'] == '' && $row['title'] == '' && $page == 'index') {
if (api_is_allowed_to_edit(false, true) ||
api_is_platform_admin() ||
- GroupManager::is_user_in_group(api_get_user_id(), $groupInfo['iid']) ||
+ GroupManager::is_user_in_group(api_get_user_id(), $groupInfo) ||
api_is_allowed_in_course()
) {
//Table structure for better export to pdf
@@ -1002,7 +1002,7 @@ class Wiki
$actionsLeft .= $editLink;
} else {
if ((api_is_allowed_in_course() ||
- GroupManager::is_user_in_group(api_get_user_id(), $groupInfo['iid']))
+ GroupManager::is_user_in_group(api_get_user_id(), $groupInfo))
) {
$actionsLeft .= $editLink;
} else {
@@ -1063,7 +1063,7 @@ class Wiki
// Only available if row['id'] is set
if ($row['id']) {
if (api_is_allowed_to_session_edit(false, true) && api_is_allowed_to_edit() ||
- GroupManager::is_user_in_group(api_get_user_id(), $groupInfo['iid'])
+ GroupManager::is_user_in_group(api_get_user_id(), $groupInfo)
) {
// menu discuss page
$actionsRight .= ''.
@@ -2122,8 +2122,8 @@ class Wiki
}
} else {
//extract group members
- $subscribed_users = GroupManager::get_subscribed_users($groupInfo['iid']);
- $subscribed_tutors = GroupManager::get_subscribed_tutors($groupInfo['iid']);
+ $subscribed_users = GroupManager::get_subscribed_users($groupInfo);
+ $subscribed_tutors = GroupManager::get_subscribed_tutors($groupInfo);
$a_users_to_add_with_duplicates = array_merge($subscribed_users, $subscribed_tutors);
//remove duplicates
$a_users_to_add = $a_users_to_add_with_duplicates;
@@ -2171,15 +2171,15 @@ class Wiki
$name = api_get_person_name($o_user_to_add['firstname'], $o_user_to_add['lastname'])." . ".$username;
$photo= '
';
- $is_tutor_of_group = GroupManager::is_tutor_of_group($assig_user_id, $groupInfo['iid']); //student is tutor
- $is_tutor_and_member = GroupManager::is_tutor_of_group($assig_user_id, $groupInfo['iid']) &&
- GroupManager::is_subscribed($assig_user_id, $groupInfo['iid']);
+ $is_tutor_of_group = GroupManager::is_tutor_of_group($assig_user_id, $groupInfo); //student is tutor
+ $is_tutor_and_member = GroupManager::is_tutor_of_group($assig_user_id, $groupInfo) &&
+ GroupManager::is_subscribed($assig_user_id, $groupInfo);
// student is tutor and member
if ($is_tutor_and_member) {
$status_in_group=get_lang('GroupTutorAndMember');
} else {
- if($is_tutor_of_group) {
+ if ($is_tutor_of_group) {
$status_in_group=get_lang('GroupTutor');
} else {
$status_in_group=" "; //get_lang('GroupStandardMember')
@@ -3498,7 +3498,7 @@ class Wiki
';//prevent double post ?>
-
+
@@ -3528,7 +3528,7 @@ class Wiki
echo '';// must pass a default value to avoid rate automatically
}
?>
-
+