From 62894c17bf7cc16d1346dcbe840c83dea63386ed Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Tue, 25 Sep 2018 11:20:34 +0200 Subject: [PATCH] If announcement is in a group avoid loading other groups BT#14824 --- main/announcements/announcements.php | 2 +- main/inc/lib/AnnouncementManager.php | 6 +++++- main/inc/lib/course.lib.php | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/main/announcements/announcements.php b/main/announcements/announcements.php index 35e37b680b..8b228ceaff 100755 --- a/main/announcements/announcements.php +++ b/main/announcements/announcements.php @@ -474,7 +474,7 @@ switch ($action) { $announcementInfo = AnnouncementManager::get_by_id($courseId, $id); if (isset($announcementInfo) && !empty($announcementInfo)) { - $to = AnnouncementManager::load_edit_users('announcement', $id); + $to = AnnouncementManager::loadEditUsers('announcement', $id); $defaults = [ 'title' => $announcementInfo['title'], diff --git a/main/inc/lib/AnnouncementManager.php b/main/inc/lib/AnnouncementManager.php index 62b6183a72..594bb46591 100755 --- a/main/inc/lib/AnnouncementManager.php +++ b/main/inc/lib/AnnouncementManager.php @@ -1122,12 +1122,13 @@ class AnnouncementManager * * @return array */ - public static function load_edit_users($tool, $id) + public static function loadEditUsers($tool, $id) { $table = Database::get_course_table(TABLE_ITEM_PROPERTY); $tool = Database::escape_string($tool); $id = (int) $id; $courseId = api_get_course_int_id(); + $groupId = api_get_group_id(); $sql = "SELECT to_user_id, to_group_id FROM $table WHERE c_id = $courseId AND tool='$tool' AND ref = $id"; @@ -1137,6 +1138,9 @@ class AnnouncementManager while ($row = Database::fetch_array($result)) { // This is the iid of c_group_info $toGroup = $row['to_group_id']; + if (!empty($groupId) && $groupId != $toGroup) { + continue; + } switch ($toGroup) { // it was send to one specific user case null: diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index d966a89ba7..2184c28e0a 100755 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -6050,8 +6050,8 @@ class CourseManager */ public static function addGroupMultiSelect($form, $groupInfo, $to = []) { - $group_users = GroupManager::get_subscribed_users($groupInfo); - $array = self::buildSelectOptions([$groupInfo], $group_users, $to); + $groupUsers = GroupManager::get_subscribed_users($groupInfo); + $array = self::buildSelectOptions([$groupInfo], $groupUsers, $to); $result = []; foreach ($array as $content) {