Fix tool visibility for general coach see BT#17254

pull/3350/head
Julio Montoya 5 years ago
parent 6564bb8385
commit c04aef4f63
  1. 5
      main/inc/lib/api.lib.php
  2. 16
      main/inc/lib/course_home.lib.php

@ -3442,14 +3442,15 @@ function api_is_allowed_to_edit(
$check_student_view = true $check_student_view = true
) { ) {
$allowSessionAdminEdit = api_get_configuration_value('session_admins_edit_courses_content') === true; $allowSessionAdminEdit = api_get_configuration_value('session_admins_edit_courses_content') === true;
// Admins can edit anything. // Admins can edit anything.
if (api_is_platform_admin($allowSessionAdminEdit)) { if (api_is_platform_admin($allowSessionAdminEdit)) {
//The student preview was on //The student preview was on
if ($check_student_view && api_is_student_view_active()) { if ($check_student_view && api_is_student_view_active()) {
return false; return false;
} else {
return true;
} }
return true;
} }
$sessionId = api_get_session_id(); $sessionId = api_get_session_id();

@ -637,6 +637,7 @@ class CourseHome
return true; return true;
}); });
$isAllowToEdit = api_is_allowed_to_edit(null, true);
foreach ($tools as $temp_row) { foreach ($tools as $temp_row) {
$add = false; $add = false;
if ($check) { if ($check) {
@ -657,7 +658,7 @@ class CourseHome
/** @var CTool $toolObj */ /** @var CTool $toolObj */
$toolObj = Database::getManager()->getRepository('ChamiloCourseBundle:CTool')->findOneBy($criteria); $toolObj = Database::getManager()->getRepository('ChamiloCourseBundle:CTool')->findOneBy($criteria);
if ($toolObj) { if ($toolObj) {
if (api_is_allowed_to_edit() == false && $toolObj->getVisibility() == false) { if ($isAllowToEdit == false && $toolObj->getVisibility() == false) {
continue; continue;
} }
} }
@ -673,7 +674,7 @@ class CourseHome
); );
$path = $lp->get_preview_image_path(ICON_SIZE_BIG); $path = $lp->get_preview_image_path(ICON_SIZE_BIG);
if (api_is_allowed_to_edit(null, true)) { if ($isAllowToEdit) {
$add = true; $add = true;
} else { } else {
$add = learnpath::is_lp_visible_for_student( $add = learnpath::is_lp_visible_for_student(
@ -835,6 +836,7 @@ class CourseHome
$courseInfo = api_get_course_info(); $courseInfo = api_get_course_info();
$allowEditionInSession = api_get_configuration_value('allow_edit_tool_visibility_in_session'); $allowEditionInSession = api_get_configuration_value('allow_edit_tool_visibility_in_session');
if ($session_id == 0) { if ($session_id == 0) {
$is_allowed_to_edit = api_is_allowed_to_edit(null, true) && api_is_course_admin(); $is_allowed_to_edit = api_is_allowed_to_edit(null, true) && api_is_course_admin();
} else { } else {
@ -915,12 +917,14 @@ class CourseHome
'name' => $tool['name'], 'name' => $tool['name'],
'sessionId' => $session_id, 'sessionId' => $session_id,
]; ];
/** @var CTool $tool */ /** @var CTool $tool */
$toolObj = Database::getManager()->getRepository('ChamiloCourseBundle:CTool')->findOneBy($criteria); $toolObj = Database::getManager()->getRepository('ChamiloCourseBundle:CTool')->findOneBy($criteria);
if ($toolObj) { if ($toolObj) {
$visibility = (int) $toolObj->getVisibility(); $visibility = (int) $toolObj->getVisibility();
switch ($visibility) { switch ($visibility) {
case '0': case 0:
$info = pathinfo($tool['image']); $info = pathinfo($tool['image']);
$basename = basename($tool['image'], '.'.$info['extension']); $basename = basename($tool['image'], '.'.$info['extension']);
$tool['image'] = $basename.'_na.'.$info['extension']; $tool['image'] = $basename.'_na.'.$info['extension'];
@ -934,7 +938,7 @@ class CourseHome
$link['cmd'] = 'restore=yes'; $link['cmd'] = 'restore=yes';
$lnk[] = $link; $lnk[] = $link;
break; break;
case '1': case 1:
$link['name'] = Display::return_icon( $link['name'] = Display::return_icon(
'visible.png', 'visible.png',
get_lang('Deactivate'), get_lang('Deactivate'),
@ -1613,10 +1617,8 @@ class CourseHome
public static function getCoachBlocks() public static function getCoachBlocks()
{ {
$blocks = []; $blocks = [];
$my_list = self::get_tools_category(TOOL_STUDENT_VIEW);
$blocks[] = [ $blocks[] = [
'content' => self::show_tools_category($my_list), 'content' => self::show_tools_category(self::get_tools_category(TOOL_STUDENT_VIEW)),
]; ];
$sessionsCopy = api_get_setting('allow_session_course_copy_for_teachers'); $sessionsCopy = api_get_setting('allow_session_course_copy_for_teachers');

Loading…
Cancel
Save