|
@@ -1433,12 +1433,30 @@ class Agenda
|
|
|
|
|
|
if (!empty($groupId)) {
|
|
|
if (!api_is_allowed_to_edit()) {
|
|
|
+ $user_id = api_get_user_id();
|
|
|
+ $group_memberships = GroupManager::get_group_ids(
|
|
|
+ $course_id,
|
|
|
+ $user_id
|
|
|
+ );
|
|
|
+ } else {
|
|
|
$group_memberships = GroupManager::get_group_ids(
|
|
|
$course_id,
|
|
|
- api_get_user_id()
|
|
|
+ $user_id
|
|
|
);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // if no group was defined but I am a student reviewing his agenda,
|
|
|
+ // group events should show, so we should fetch those groups to which
|
|
|
+ // I belong
|
|
|
+ if (!api_is_allowed_to_edit()) {
|
|
|
$user_id = api_get_user_id();
|
|
|
+ $group_memberships = GroupManager::get_group_ids(
|
|
|
+ $course_id,
|
|
|
+ $user_id
|
|
|
+ );
|
|
|
} else {
|
|
|
+ // If no group was defined and I am a teacher/admin reviewing
|
|
|
+ // someone else's agenda, we should fetch this person's groups
|
|
|
$group_memberships = GroupManager::get_group_ids(
|
|
|
$course_id,
|
|
|
$user_id
|
|
@@ -1459,15 +1477,16 @@ class Agenda
|
|
|
$where_condition = "( ip.to_group_id IN (".implode(", ", $group_memberships).") ) ";
|
|
|
} else {
|
|
|
if (!empty($user_id)) {
|
|
|
- $where_condition = "( ip.to_user_id = $user_id OR (ip.to_group_id IS NULL OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).")) ) ";
|
|
|
+ $where_condition = "( ip.to_user_id = $user_id OR ip.to_user_id IS NULL OR (ip.to_group_id IN (0, ".implode(", ", $group_memberships).")) ) ";
|
|
|
} else {
|
|
|
- $where_condition = "( ip.to_group_id IS NULL OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).") ) ";
|
|
|
+ $where_condition = "( ip.to_group_id IN (0, ".implode(", ", $group_memberships).") ) ";
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- $where_condition = "( ip.to_user_id = $user_id OR (ip.to_group_id IS NULL OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).")) ) ";
|
|
|
+ $where_condition = "( ip.to_user_id = $user_id OR ip.to_user_id IS NULL OR (ip.to_group_id IN (0, ".implode(", ", $group_memberships).")) ) ";
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ $sessionCondition = '';
|
|
|
if (empty($session_id)) {
|
|
|
$sessionCondition = "
|
|
|
(
|
|
@@ -1481,8 +1500,6 @@ class Agenda
|
|
|
ip.session_id = $session_id
|
|
|
) ";
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
|
|
|
$sql = "SELECT DISTINCT
|
|
|
agenda.*,
|
|
@@ -1499,16 +1516,18 @@ class Agenda
|
|
|
$where_condition AND
|
|
|
ip.visibility = '1' AND
|
|
|
agenda.c_id = $course_id AND
|
|
|
- ip.c_id = agenda.c_id $sessionCondition
|
|
|
+ ip.c_id = agenda.c_id AND
|
|
|
+ $sessionCondition
|
|
|
";
|
|
|
} else {
|
|
|
$visibilityCondition = " ip.visibility='1' AND ";
|
|
|
+ $sessionCondition = '';
|
|
|
|
|
|
if (api_is_allowed_to_edit()) {
|
|
|
if ($user_id == 0) {
|
|
|
$where_condition = "";
|
|
|
} else {
|
|
|
- $where_condition = " (ip.to_user_id = ".$user_id.") OR ";
|
|
|
+ $where_condition = " (ip.to_user_id = ".$user_id." OR ip.to_user_id IS NULL) AND ip.to_group_id IS NULL AND ";
|
|
|
}
|
|
|
$visibilityCondition = " (ip.visibility IN ('1', '0')) AND ";
|
|
|
} else {
|