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. 20
      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(),
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) {
$complete_user_list_for_dropbox = CourseManager::get_user_list_from_course_code(
$course_info['code'],
api_get_session_id()
api_get_session_id(),
null,
null,
null,
false,
false,
false,
[],
[],
[],
true
);
} else {
$complete_user_list_for_dropbox = CourseManager::get_teacher_list_from_course_code(

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

@ -1313,21 +1313,26 @@ class GroupManager
/**
* Get only students from a group (not tutors).
*
* @param int $group_id iid
* @param int $group_id iid
* @param bool $filterOnlyActive
*
* @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();
$subscriptions = $em
->createQuery('
SELECT gu
FROM ChamiloCourseBundle:CGroupRelUser gu
->createQuery("
SELECT u.id FROM ChamiloUserBundle:User u
INNER JOIN ChamiloCourseBundle:CGroupRelUser gu
WITH u.id = gu.userId
INNER JOIN ChamiloCourseBundle:CGroupInfo g
WITH gu.groupId = g.id AND g.cId = gu.cId
WHERE gu.cId = :course AND g.id = :group
')
$activeCondition
")
->setParameters([
'course' => api_get_course_int_id(),
'group' => intval($group_id),
@ -1336,9 +1341,8 @@ class GroupManager
$users = [];
/** @var CGroupRelUser $subscription */
foreach ($subscriptions as $subscription) {
$users[] = api_get_user_info($subscription->getUserId());
$users[] = api_get_user_info($subscription['id']);
}
return $users;

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

Loading…
Cancel
Save