Avoid send announcement/survey/dropbox to inactive user

pull/2821/head
Angel Fernando Quiroz Campos 7 years ago
parent ff169fc5ea
commit 6ece2b4fb2
  1. 21
      main/dropbox/dropbox_functions.inc.php
  2. 4
      main/inc/lib/AnnouncementManager.php
  3. 18
      main/inc/lib/groupmanager.lib.php
  4. 2
      main/survey/surveyUtil.class.php

@ -564,7 +564,14 @@ function display_add_form($viewReceivedCategory, $viewSentCategory, $view, $id =
api_get_session_id(), api_get_session_id(),
null, null,
null, null,
0 0,
false,
false,
false,
[],
[],
[],
true
); );
} }
@ -602,7 +609,17 @@ function display_add_form($viewReceivedCategory, $viewSentCategory, $view, $id =
if (api_get_setting('dropbox_allow_student_to_student') == 'true' || $_user['status'] != STUDENT) { if (api_get_setting('dropbox_allow_student_to_student') == 'true' || $_user['status'] != STUDENT) {
$complete_user_list_for_dropbox = CourseManager::get_user_list_from_course_code( $complete_user_list_for_dropbox = CourseManager::get_user_list_from_course_code(
$course_info['code'], $course_info['code'],
api_get_session_id() api_get_session_id(),
null,
null,
null,
false,
false,
false,
[],
[],
[],
true
); );
} else { } else {
$complete_user_list_for_dropbox = CourseManager::get_teacher_list_from_course_code( $complete_user_list_for_dropbox = CourseManager::get_teacher_list_from_course_code(

@ -1214,7 +1214,7 @@ class AnnouncementManager
// outputting the name of the groups // outputting the name of the groups
if (is_array($sent_to_array['groups'])) { if (is_array($sent_to_array['groups'])) {
foreach ($sent_to_array['groups'] as $group_id) { foreach ($sent_to_array['groups'] as $group_id) {
$users = GroupManager::getStudents($group_id); $users = GroupManager::getStudents($group_id, true);
$userToArray = []; $userToArray = [];
foreach ($users as $student) { foreach ($users as $student) {
$userToArray[] = $student['complete_name_with_username']; $userToArray[] = $student['complete_name_with_username'];
@ -1249,7 +1249,7 @@ class AnnouncementManager
) { ) {
$group_id = $sent_to_array['groups'][0]; $group_id = $sent_to_array['groups'][0];
$users = GroupManager::getStudents($group_id); $users = GroupManager::getStudents($group_id, true);
$userToArray = []; $userToArray = [];
foreach ($users as $student) { foreach ($users as $student) {
$userToArray[] = $student['complete_name_with_username']; $userToArray[] = $student['complete_name_with_username'];

@ -1314,20 +1314,25 @@ class GroupManager
* Get only students from a group (not tutors). * Get only students from a group (not tutors).
* *
* @param int $group_id iid * @param int $group_id iid
* @param bool $filterOnlyActive
* *
* @return array * @return array
*/ */
public static function getStudents($group_id) public static function getStudents($group_id, $filterOnlyActive = false)
{ {
$activeCondition = $filterOnlyActive ? 'AND u.active = 1' : '';
$em = Database::getManager(); $em = Database::getManager();
$subscriptions = $em $subscriptions = $em
->createQuery(' ->createQuery("
SELECT gu SELECT u.id FROM ChamiloUserBundle:User u
FROM ChamiloCourseBundle:CGroupRelUser gu INNER JOIN ChamiloCourseBundle:CGroupRelUser gu
WITH u.id = gu.userId
INNER JOIN ChamiloCourseBundle:CGroupInfo g INNER JOIN ChamiloCourseBundle:CGroupInfo g
WITH gu.groupId = g.id AND g.cId = gu.cId WITH gu.groupId = g.id AND g.cId = gu.cId
WHERE gu.cId = :course AND g.id = :group WHERE gu.cId = :course AND g.id = :group
') $activeCondition
")
->setParameters([ ->setParameters([
'course' => api_get_course_int_id(), 'course' => api_get_course_int_id(),
'group' => intval($group_id), 'group' => intval($group_id),
@ -1336,9 +1341,8 @@ class GroupManager
$users = []; $users = [];
/** @var CGroupRelUser $subscription */
foreach ($subscriptions as $subscription) { foreach ($subscriptions as $subscription) {
$users[] = api_get_user_info($subscription->getUserId()); $users[] = api_get_user_info($subscription['id']);
} }
return $users; return $users;

@ -2238,7 +2238,7 @@ class SurveyUtil
$users_array = $result['users']; $users_array = $result['users'];
foreach ($groupList as $groupId) { foreach ($groupList as $groupId) {
$userGroupList = GroupManager::getStudents($groupId); $userGroupList = GroupManager::getStudents($groupId, true);
$userGroupIdList = array_column($userGroupList, 'user_id'); $userGroupIdList = array_column($userGroupList, 'user_id');
$users_array = array_merge($users_array, $userGroupIdList); $users_array = array_merge($users_array, $userGroupIdList);

Loading…
Cancel
Save