From 47ecd39041440ee75d4b9089b59d6cd9270acc9e Mon Sep 17 00:00:00 2001 From: Alex Jordan Date: Sun, 26 Jul 2026 21:37:01 -0700 Subject: [PATCH] show links to sets even when you are not assigned to those sets --- lib/WeBWorK/ContentGenerator.pm | 10 ++++++++-- templates/ContentGenerator/Base/links.html.ep | 10 +++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/WeBWorK/ContentGenerator.pm b/lib/WeBWorK/ContentGenerator.pm index 2bd7756686..0ce2375bae 100644 --- a/lib/WeBWorK/ContentGenerator.pm +++ b/lib/WeBWorK/ContentGenerator.pm @@ -486,6 +486,7 @@ sub links ($c) { my $setID = $c->stash('setID'); my $problemID = $c->stash('problemID'); my $achievementID = $c->stash('achievementID'); + my $globalSetID = defined $setID ? $setID =~ s/,v\d+$//r : undef; # Determine if navigation is restricted for this user. my $restricted_navigation = $authen->was_verified && !$authz->hasPermissions($userID, 'navigation_allowed'); @@ -500,9 +501,13 @@ sub links ($c) { if ($authen->was_verified) { if (defined $setID && $db->existsUserSet($eUserID, $setID)) { $problemID = undef unless (defined $problemID && $db->existsUserProblem($eUserID, $setID, $problemID)); - } else { + } elsif (defined $globalSetID && $db->existsGlobalSet($globalSetID)) { $setID = undef; $problemID = undef; + } else { + $setID = undef; + $globalSetID = undef; + $problemID = undef; } } @@ -543,7 +548,8 @@ sub links ($c) { eUserID => $eUserID, urlUserID => $c->stash('userID'), setID => $setID, - prettySetID => format_set_name_display($setID // ''), + globalSetID => $globalSetID, + prettySetID => format_set_name_display($setID // $globalSetID // ''), problemID => $problemID, prettyProblemID => $prettyProblemID, achievementID => $achievementID, diff --git a/templates/ContentGenerator/Base/links.html.ep b/templates/ContentGenerator/Base/links.html.ep index 171206b58b..e7cd7431d6 100644 --- a/templates/ContentGenerator/Base/links.html.ep +++ b/templates/ContentGenerator/Base/links.html.ep @@ -125,14 +125,14 @@ % # Sets Manager % # Editor link. Only shown for non-versioned sets - % if (defined $setID && $setID !~ /,v\d+$/) { + % if (defined $globalSetID || defined $setID && $setID !~ /,v\d+$/) {