[prev in list] [next in list] [prev in thread] [next in thread]
List: lon-capa-cvs
Subject: [LON-CAPA-cvs] cvs: loncom(version_2_11_X) /auth lonroles.pm
From: raeburn <raeburn () source ! lon-capa ! org>
Date: 2012-09-25 22:51:44
Message-ID: cvsraeburn1348613504 () cvsserver
[Download RAW message or body]
raeburn Tue Sep 25 22:51:44 2012 EDT
Modified files: (Branch: version_2_11_X)
/loncom/auth lonroles.pm
Log:
- For 2.11.
- Backport 1.276.
Index: loncom/auth/lonroles.pm
diff -u loncom/auth/lonroles.pm:1.269.2.2 loncom/auth/lonroles.pm:1.269.2.3
--- loncom/auth/lonroles.pm:1.269.2.2 Mon Aug 27 11:48:24 2012
+++ loncom/auth/lonroles.pm Tue Sep 25 22:51:43 2012
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# User Roles Screen
#
-# $Id: lonroles.pm,v 1.269.2.2 2012/08/27 11:48:24 raeburn Exp $
+# $Id: lonroles.pm,v 1.269.2.3 2012/09/25 22:51:43 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -585,11 +585,52 @@
$furl = "/adm/helper/course.initialization.helper";
# Send the user to the course they selected
} elsif ($env{'request.course.id'}) {
- if ($env{'form.destinationurl'}) {
- my $dest = $env{'form.destinationurl'};
- if ($env{'form.destsymb'} ne '') {
- my $esc_symb = \
&HTML::Entities::encode($env{'form.destsymb'},'"<>&');
- $dest .= '?symb='.$esc_symb;
+ my ($dest,$destsymb,$checkenc);
+ $dest = $env{'form.destinationurl'};
+ $destsymb = $env{'form.destsymb'};
+ if ($dest ne '') {
+ if ($env{'form.switchrole'}) {
+ if ($destsymb ne '') {
+ if ($destsymb !~ m{^/enc/}) {
+ unless \
($env{'request.role.adv'}) { + \
$checkenc = 1; + }
+ }
+ }
+ if ($dest =~ m{^/enc/}) {
+ if ($env{'request.role.adv'}) {
+ $dest = \
&Apache::lonenc::unencrypted($dest); + \
if ($destsymb eq '') { + \
($destsymb) = ($dest =~ /\?symb=([^\&]*)/); + \
$destsymb = &unescape($destsymb); + \
} + }
+ } else {
+ if ($destsymb eq '') {
+ ($destsymb) = ($dest =~ \
/\?symb=([^\&]+)/); + $destsymb = \
&unescape($destsymb); + }
+ unless ($env{'request.role.adv'}) {
+ $checkenc = 1;
+ }
+ }
+ if (($checkenc) && ($destsymb ne '')) {
+ my ($encstate,$unencsymb,$res);
+ my $unencsymb = \
&Apache::lonnet::symbclean($destsymb); + \
(undef,undef,$res) = &Apache::lonnet::decode_symb($unencsymb); + \
&Apache::lonnet::symbverify($unencsymb,$res,\$encstate); + \
if ($encstate) { + if (($dest ne \
'') && ($dest !~ m{^/enc/})) { + \
$dest=&Apache::lonenc::encrypted($dest); + \
} + }
+ }
+ }
+ unless (($dest =~ m{^/enc/}) || ($dest =~ \
/\?symb=.+___\d+___.+/)) { + if \
(($destsymb ne '') && ($destsymb !~ m{^/enc/})) { + \
my $esc_symb = &escape($destsymb); + \
$dest .= '?symb='.$esc_symb; + }
}
&redirect_user($r, &mt('Entering [_1]',
\
$env{'course.'.$courseid.'.description'}),
_______________________________________________
LON-CAPA-cvs mailing list
LON-CAPA-cvs@mail.lon-capa.org
http://mail.lon-capa.org/mailman/listinfo/lon-capa-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic