--- loncom/auth/lonroles.pm 2014/02/23 19:06:18 1.296 +++ loncom/auth/lonroles.pm 2014/02/23 20:50:37 1.297 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.296 2014/02/23 19:06:18 raeburn Exp $ +# $Id: lonroles.pm,v 1.297 2014/02/23 20:50:37 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -591,13 +591,8 @@ ENDENTERKEY } else { # Check to see if the user is a CC entering a course # for the first time - my (undef, undef, $role, $courseid) = split(/\./, $envkey); - if (substr($courseid, 0, 1) eq '/') { - $courseid = substr($courseid, 1); - } - $courseid =~ s/\//_/; if ((($role eq 'cc') || ($role eq 'co')) - && ($env{'course.' . $courseid .'.course.helper.not.run'})) { + && ($env{'course.'.$cdom.'_'.$cnum.'.course.helper.not.run'})) { $furl = "/adm/helper/course.initialization.helper"; # Send the user to the course they selected } elsif ($env{'request.course.id'}) { @@ -649,7 +644,7 @@ ENDENTERKEY } } &redirect_user($r, &mt('Entering [_1]', - $env{'course.'.$courseid.'.description'}), + $env{'course.'.$cdom.'_'.$cnum.'.description'}), $dest, $msg); return OK; } @@ -659,10 +654,10 @@ ENDENTERKEY $env{'request.course.id'}.'/' .$env{'request.course.sec'}) ) { - my $startpage = &courseloadpage($courseid); + my $startpage = &courseloadpage($env{'request.course.id'}); unless ($startpage eq 'firstres') { $msg = &mt('Entering [_1] ...', - $env{'course.'.$courseid.'.description'}); + $env{'course.'.$env{'request.course.id'}.'.description'}); &redirect_user($r, &mt('New in course'), '/adm/whatsnew?refpage=start', $msg); return OK; @@ -675,9 +670,9 @@ ENDENTERKEY $furl=&Apache::lonpageflip::first_accessible_resource(); } $msg = &mt('Entering [_1] ...', - $env{'course.'.$courseid.'.description'}); + $env{'course.'.$cdom.'_'.$cnum.'.description'}); &redirect_user($r, &mt('Entering [_1]', - $env{'course.'.$courseid.'.description'}), + $env{'course.'.$cdom.'_'.$cnum.'.description'}), $furl, $msg); } return OK; @@ -1604,24 +1599,6 @@ sub build_roletext { return ($roletext,$roletext_end); } -sub check_needs_switchserver { - my ($possiblerole) = @_; - my $needs_switchserver; - my ($role,$where) = split(/\./,$possiblerole,2); - my (undef,$tdom,$twho) = split(/\//,$where); - my ($server_status,$home); - if (($role eq 'ca') || ($role eq 'aa')) { - ($server_status,$home) = &check_author_homeserver($twho,$tdom); - } else { - ($server_status,$home) = &check_author_homeserver($env{'user.name'}, - $env{'user.domain'}); - } - if ($server_status eq 'switchserver') { - $needs_switchserver = 1; - } - return $needs_switchserver; -} - sub check_author_homeserver { my ($uname,$udom)=@_; if (($uname eq '') || ($udom eq '')) { @@ -1687,7 +1664,7 @@ sub adhoc_course_role { } } if ($setprivs) { - if ($env{'form.switchrole'} =~ m-^(in|ta|ep|ad|st|cr)([\w/]*)\./\Q$cdom\E/\Q$cnum\E/?(\w*)$-) { + if ($env{'form.switchrole'} =~ m-^(in|ta|ep|ad|st|cr)(.*?)\./\Q$cdom\E/\Q$cnum\E/?(\w*)$-) { my $role = $1; my $custom_role = $2; my $usec = $3; @@ -2233,7 +2210,8 @@ sub update_session_roles { my $status_in_env = &curr_role_status($currstart,$currend,$refresh,$update); my ($rolekey) = ($envkey =~ /^user\.role\.(.+)$/); - my ($role,$rest)=split(/\./,$rolekey,2); + my ($role,$rest)=split(m{\./},$rolekey,2); + $rest = '/'.$rest; if (&Apache::lonnet::delenv($envkey,undef,[$role])) { if ($status_in_env eq 'active') { if ($role eq 'gr') { @@ -2762,7 +2740,7 @@ sub get_queued { $env{'user.name'},'^status:'); foreach my $key (keys(%statusinfo)) { next unless (($statusinfo{$key} eq 'approval') || ($statusinfo{$key} eq 'pending')); - (undef,my($cdom,$cnum)) = split(':',$key); + (undef,my($cdom,$cnum)) = split(/:/,$key); my $requestkey = $cdom.'_'.$cnum; if ($requestkey =~ /^($match_domain)_($match_courseid)$/) { my %history = &Apache::lonnet::restore($requestkey,'courserequests',