Users - Allow susbcriptions drh to session and courses, access to see other students reporting - refs BT#20249

pull/4406/head
Christian 3 years ago
parent d25f53fe2a
commit 8e8b6cf1f5
  1. 10
      main/admin/subscribe_user2course.php
  2. 8
      main/admin/user_edit.php
  3. 4
      main/inc/lib/sessionmanager.lib.php
  4. 42
      main/inc/lib/tracking.lib.php
  5. 3
      main/install/configuration.dist.php
  6. 3
      main/mySpace/myStudents.php
  7. 6
      main/mySpace/student.php
  8. 3
      main/mySpace/users.php
  9. 15
      main/session/add_users_to_session.php

@ -92,23 +92,13 @@ if (isset($_POST['form_sent']) && $_POST['form_sent']) {
if (count($users) == 0 || count($courses) == 0) {
echo Display::return_message(get_lang('AtLeastOneUserAndOneCourse'), 'error');
} else {
$errorDrh = 0;
foreach ($courses as $course_code) {
foreach ($users as $user_id) {
$user = api_get_user_info($user_id);
if ($user['status'] != DRH) {
CourseManager::subscribeUser($user_id, $course_code);
} else {
$errorDrh = 1;
}
}
}
if ($errorDrh == 0) {
echo Display::return_message(get_lang('UsersAreSubscibedToCourse'), 'confirm');
} else {
echo Display::return_message(get_lang('HumanResourcesManagerShouldNotBeRegisteredToCourses'), 'error');
}
}
}
}

@ -419,9 +419,6 @@ if ($form->validate()) {
$is_user_subscribed_in_course = CourseManager::is_user_subscribed_in_course($user['user_id']);
if ($user['status'] == DRH && $is_user_subscribed_in_course) {
$error_drh = true;
} else {
$picture_element = $form->getElement('picture');
$picture = $picture_element->getValue();
@ -544,11 +541,6 @@ if ($form->validate()) {
Display::addFlash(Display::return_message($message, 'normal', false));
header('Location: user_list.php');
exit();
}
}
if ($error_drh) {
Display::addFlash(Display::return_message(get_lang('StatusCanNotBeChangedToHumanResourcesManager'), 'error'));
}
$actions = [

@ -6500,9 +6500,9 @@ class SessionManager
) {
$userId = api_get_user_id();
$drhLoaded = false;
$drhCanAccessAllStudents = (api_drh_can_access_all_session_content() || api_get_configuration_value('drh_allow_access_to_all_students'));
if (api_is_drh()) {
if (api_drh_can_access_all_session_content()) {
if ($drhCanAccessAllStudents) {
$count = self::getAllUsersFromCoursesFromAllSessionFromStatus(
'drh_all',
$userId,

@ -2137,31 +2137,9 @@ class Tracking
$courseCount = 0;
$assignedCourseCount = 0;
$checkSessionVisibility = api_get_configuration_value('show_users_in_active_sessions_in_tracking');
$allowDhrAccessToAllStudents = api_get_configuration_value('drh_allow_access_to_all_students');
if (api_is_drh() && api_drh_can_access_all_session_content()) {
$studentList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus(
'drh_all',
$userId,
false,
null,
null,
null,
null,
null,
null,
null,
[],
[],
STUDENT
);
$students = [];
if (is_array($studentList)) {
foreach ($studentList as $studentData) {
$students[] = $studentData['user_id'];
}
}
$studentBossesList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus(
'drh_all',
$userId,
@ -2265,6 +2243,23 @@ class Tracking
null,
false
);
} else {
if (api_is_drh() && $allowDhrAccessToAllStudents) {
$studentList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus(
'drh_all',
$userId,
false,
null,
null,
null,
null,
null,
null,
null,
[],
[],
STUDENT
);
} else {
$studentList = UserManager::getUsersFollowedByUser(
$userId,
@ -2282,6 +2277,7 @@ class Tracking
null,
$checkSessionVisibility
);
}
$students = [];
if (is_array($studentList)) {

@ -2296,6 +2296,9 @@ INSERT INTO `extra_field` (`extra_field_type`, `field_type`, `variable`, `displa
// Disable the possibility for teachers to edit course visibility
//$_configuration['course_visibility_change_only_admin'] = false;
// Allow DRH user to access all students from reporting.
// $_configuration['drh_allow_access_to_all_students'] = false;
// KEEP THIS AT THE END
// -------- Custom DB changes
// Add user activation by confirmation email

@ -681,10 +681,11 @@ while ($row = Database::fetch_array($rs, 'ASSOC')) {
}
$isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(api_get_user_id(), $courseInfo);
$drhCanAccessAllStudents = (api_drh_can_access_all_session_content() || api_get_configuration_value('drh_allow_access_to_all_students'));
if (api_is_drh() && !api_is_platform_admin()) {
if (!empty($student_id)) {
if (api_drh_can_access_all_session_content()) {
if ($drhCanAccessAllStudents) {
} else {
if (!$isDrhOfCourse) {
if (api_is_drh() &&

@ -73,7 +73,8 @@ function get_users($from, $limit, $column, $direction): array
$students = [];
if (api_is_drh()) {
if (api_drh_can_access_all_session_content()) {
$allowDhrAccessToAllStudents = api_get_configuration_value('drh_allow_access_to_all_students');
if (api_drh_can_access_all_session_content() || $allowDhrAccessToAllStudents) {
$students = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus(
'drh_all',
api_get_user_id(),
@ -233,8 +234,9 @@ function get_users($from, $limit, $column, $direction): array
['id' => 'details_'.$student_data['username']]
);
$userIsFollowed = UserManager::is_user_followed_by_drh($student_id, api_get_user_id());
$lostPasswordLink = '';
if (api_is_drh() || api_is_platform_admin()) {
if ((api_is_drh() && $userIsFollowed) || api_is_platform_admin()) {
$lostPasswordLink = ' '.Display::url(
Display::return_icon('edit.png', get_lang('Edit')),
$webCodePath.'mySpace/user_edit.php?user_id='.$student_id

@ -83,9 +83,10 @@ function get_users($from, $limit, $column, $direction)
$is_western_name_order = api_is_western_name_order();
$coach_id = api_get_user_id();
$drhLoaded = false;
$drhCanAccessAllStudents = (api_drh_can_access_all_session_content() || api_get_configuration_value('drh_allow_access_to_all_students'));
if (api_is_drh()) {
if (api_drh_can_access_all_session_content()) {
if ($drhCanAccessAllStudents) {
$students = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus(
'drh_all',
api_get_user_id(),

@ -134,7 +134,6 @@ function search_users($needle, $type)
OR firstname LIKE '$needle%'
)
AND user.status <> 6
AND user.status <> ".DRH."
$order_clause LIMIT 11
";
break;
@ -144,7 +143,6 @@ function search_users($needle, $type)
FROM $tbl_user user
WHERE
lastname LIKE '$needle%'
AND user.status <> ".DRH."
AND user.status <> 6 $cond_user_id
$order_clause
";
@ -156,7 +154,6 @@ function search_users($needle, $type)
LEFT OUTER JOIN $tbl_session_rel_user s ON (s.user_id = user.id)
WHERE
s.user_id IS NULL
AND user.status <> ".DRH."
AND user.status <> 6 $cond_user_id
$order_clause
";
@ -181,8 +178,7 @@ function search_users($needle, $type)
lastname LIKE '$needle%' OR
firstname LIKE '$needle%'
) AND
user.status <> 6 AND
user.status <> ".DRH."
user.status <> 6
$order_clause LIMIT 11
";
break;
@ -194,7 +190,6 @@ function search_users($needle, $type)
WHERE
access_url_id = $access_url_id
AND lastname LIKE '$needle%'
AND user.status <> ".DRH."
AND user.status <> 6 $cond_user_id
$order_clause
";
@ -210,7 +205,6 @@ function search_users($needle, $type)
WHERE
access_url_id = $access_url_id
AND s.user_id IS null
AND user.status <> ".DRH."
AND user.status <> 6 $cond_user_id
$order_clause
";
@ -451,7 +445,6 @@ if ($ajax_search) {
AND su.session_id = $id_session
AND su.relation_type <> ".SESSION_RELATION_TYPE_RRHH."
$where_filter
AND u.status <> ".DRH."
AND u.status <> 6
$order_clause
";
@ -463,7 +456,7 @@ if ($ajax_search) {
ON su.user_id = u.id
AND su.session_id = $id_session
AND su.relation_type <> ".SESSION_RELATION_TYPE_RRHH."
WHERE u.status <> ".DRH." AND u.status <> 6
WHERE u.status <> 6
$order_clause
";
}
@ -481,7 +474,6 @@ if ($ajax_search) {
INNER JOIN $tbl_user_rel_access_url url_user
ON (url_user.user_id = u.id)
WHERE access_url_id = $access_url_id $where_filter
AND u.status <> ".DRH."
AND u.status<>6
$order_clause
";
@ -512,7 +504,7 @@ if ($ajax_search) {
ON $tbl_session_rel_user.user_id = u.id
AND $tbl_session_rel_user.session_id = $id_session
AND $tbl_session_rel_user.relation_type <> ".SESSION_RELATION_TYPE_RRHH."
WHERE u.status <> ".DRH." AND u.status <> 6 $order_clause
WHERE u.status <> 6 $order_clause
";
if (api_is_multiple_url_enabled()) {
@ -528,7 +520,6 @@ if ($ajax_search) {
AND $tbl_session_rel_user.relation_type <> ".SESSION_RELATION_TYPE_RRHH."
INNER JOIN $tbl_user_rel_access_url url_user ON (url_user.user_id = u.id)
WHERE access_url_id = $access_url_id
AND u.status <> ".DRH."
AND u.status <> 6
$order_clause
";

Loading…
Cancel
Save