Skip to content

Commit

Permalink
LP: Change LP category visibility see BT#15450
Browse files Browse the repository at this point in the history
  • Loading branch information
jmontoyaa committed Oct 2, 2019
1 parent ad85105 commit 614c7e5
Showing 1 changed file with 33 additions and 26 deletions.
59 changes: 33 additions & 26 deletions main/lp/learnpath.class.php
Expand Up @@ -2380,13 +2380,22 @@ public static function is_lp_visible_for_student(
// @todo remove this query and load the row info as a parameter
$table = Database::get_course_table(TABLE_LP_MAIN);
// Get current prerequisite
$sql = "SELECT id, prerequisite, subscribe_users, publicated_on, expired_on
$sql = "SELECT id, prerequisite, subscribe_users, publicated_on, expired_on, category_id
FROM $table
WHERE iid = $lp_id";
$rs = Database::query($sql);
$now = time();
if (Database::num_rows($rs) > 0) {
$row = Database::fetch_array($rs, 'ASSOC');

if (!empty($row['category_id'])) {
$em = Database::getManager();
$category = $em->getRepository('ChamiloCourseBundle:CLpCategory')->find($row['category_id']);
if (self::categoryIsVisibleForStudent($category, api_get_user_entity($student_id)) === false) {
return false;
}
}

$prerequisite = $row['prerequisite'];
$is_visible = true;

Expand Down Expand Up @@ -4372,24 +4381,9 @@ public static function toggle_visibility($lp_id, $set_visibility = 1)
public static function toggleCategoryVisibility($id, $visibility = 1)
{
$action = 'visible';

if ($visibility != 1) {
$action = 'invisible';
$list = new LearnpathList(
api_get_user_id(),
null,
null,
null,
false,
$id
);

$lpList = $list->get_flat_list();
foreach ($lpList as $lp) {
self::toggle_visibility($lp['iid'], 0);
}

self::toggleCategoryPublish($id, 0);
$action = 'invisible';
}

return api_item_property_update(
Expand Down Expand Up @@ -4545,7 +4539,7 @@ public static function toggleCategoryPublish($id, $setVisibility = 1)
$sessionCondition
")
->setParameters([
'course' => (int) $courseId,
'course' => $courseId,
'link1' => $link,
'link2' => "$link%",
])
Expand Down Expand Up @@ -4614,10 +4608,8 @@ public static function categoryIsVisibleForStudent(
$courseId = 0,
$sessionId = 0
) {
$subscriptionSettings = self::getSubscriptionSettings();

if ($subscriptionSettings['allow_add_users_to_lp_category'] == false) {
return true;
if (empty($category)) {
return false;
}

$isAllowedToEdit = api_is_allowed_to_edit(null, true);
Expand All @@ -4626,19 +4618,34 @@ public static function categoryIsVisibleForStudent(
return true;
}

if (empty($category)) {
$courseId = empty($courseId) ? api_get_course_int_id() : (int) $courseId;
$sessionId = empty($sessionId) ? api_get_session_id() : (int) $sessionId;

$courseInfo = api_get_course_info_by_id($courseId);

$categoryVisibility = api_get_item_visibility(
$courseInfo,
TOOL_LEARNPATH_CATEGORY,
$category->getId(),
$sessionId
);

if ($categoryVisibility !== 1 && $categoryVisibility != -1) {
return false;
}

$subscriptionSettings = self::getSubscriptionSettings();

if ($subscriptionSettings['allow_add_users_to_lp_category'] == false) {
return true;
}

$users = $category->getUsers();

if (empty($users) || !$users->count()) {
return true;
}

$courseId = empty($courseId) ? api_get_course_int_id() : (int) $courseId;
$sessionId = empty($sessionId) ? api_get_session_id() : (int) $sessionId;

if ($category->hasUserAdded($user)) {
return true;
}
Expand Down

0 comments on commit 614c7e5

Please sign in to comment.