--- loncom/auth/lonroles.pm 2012/09/04 20:47:46 1.276 +++ loncom/auth/lonroles.pm 2012/12/03 22:59:03 1.277 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.276 2012/09/04 20:47:46 raeburn Exp $ +# $Id: lonroles.pm,v 1.277 2012/12/03 22:59:03 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -595,13 +595,13 @@ ENDENTERKEY if ($env{'request.role.adv'}) { $dest = &Apache::lonenc::unencrypted($dest); if ($destsymb eq '') { - ($destsymb) = ($dest =~ /\?symb=([^\&]*)/); + ($destsymb) = ($dest =~ /(?:\?|\&)symb=([^\&]*)/); $destsymb = &unescape($destsymb); } } } else { if ($destsymb eq '') { - ($destsymb) = ($dest =~ /\?symb=([^\&]+)/); + ($destsymb) = ($dest =~ /(:\?|\&)symb=([^\&]+)/); $destsymb = &unescape($destsymb); } unless ($env{'request.role.adv'}) { @@ -620,7 +620,7 @@ ENDENTERKEY } } } - unless (($dest =~ m{^/enc/}) || ($dest =~ /\?symb=.+___\d+___.+/)) { + unless (($dest =~ m{^/enc/}) || ($dest =~ /(\?|\&)symb=.+___\d+___.+/)) { if (($destsymb ne '') && ($destsymb !~ m{^/enc/})) { my $esc_symb = &escape($destsymb); $dest .= '?symb='.$esc_symb;