--- loncom/lti/ltiauth.pm 2018/05/28 23:26:04 1.13 +++ loncom/lti/ltiauth.pm 2018/08/14 21:03:39 1.16 @@ -1,7 +1,7 @@ # The LearningOnline Network # Basic LTI Authentication Module # -# $Id: ltiauth.pm,v 1.13 2018/05/28 23:26:04 raeburn Exp $ +# $Id: ltiauth.pm,v 1.16 2018/08/14 21:03:39 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -57,7 +57,7 @@ sub handler { } } # -# Retrieve data POSTed by LTI Consumer on launch +# Retrieve data POSTed by LTI Consumer on launch # &Apache::lonacc::get_posted_cgi($r); my $params = {}; @@ -205,14 +205,14 @@ sub handler { $mapurl = $tail; } else { $symb = $tail; - $symb =~ s{^/+}{}; + $symb =~ s{^/}{}; } } elsif ($tail =~ m{^/res/(?:$match_domain)/(?:$match_username)/.+\.(?:sequence|page)(|___\d+___.+)$}) { if ($1 eq '') { $mapurl = $tail; } else { $symb = $tail; - $symb =~ s{^/+}{}; + $symb =~ s{^/res/}{}; } } elsif ($tail =~ m{^/($match_domain)/($match_courseid)$}) { ($urlcdom,$urlcnum) = ($1,$2); @@ -435,8 +435,10 @@ sub handler { my (@ltiroles,@lcroles); my @lcroleorder = ('cc','in','ta','ep','st'); - my ($lcrolesref,$ltirolesref) = &LONCAPA::ltiutils::get_lc_roles($params->{'roles'}, - \@lcroleorder); + my ($lcrolesref,$ltirolesref) = + &LONCAPA::ltiutils::get_lc_roles($params->{'roles'}, + \@lcroleorder, + $lti{$itemid}{maproles}); if (ref($lcrolesref) eq 'ARRAY') { @lcroles = @{$lcrolesref}; } @@ -661,15 +663,8 @@ sub lti_enroll { my %coursehash = &Apache::lonnet::coursedescription($cdom.'_'.$cnum); my $start = $coursehash{'default_enrollment_start_date'}; my $end = $coursehash{'default_enrollment_end_date'}; - my $enrollresult = &LONCAPA::ltiutils::enrolluser($role,$cdom,$cnum,$sec,$start,$end); - if ($enrollresult eq 'ok') { - my (%userroles,%newrole,%newgroups); - &Apache::lonnet::standard_roleprivs(\%newrole,$role,$cdom,$spec,$cnum, - $area); - &Apache::lonnet::set_userprivs(\%userroles,\%newrole,\%newgroups); - $userroles{'user.role.'.$spec} = $start.'.'.$end; - &Apache::lonnet::appenv(\%userroles,[$role,'cm']); - } + $enrollresult = &LONCAPA::ltiutils::enrolluser($udom,$uname,$role,$cdom,$cnum,$sec, + $start,$end,1); } } return $enrollresult; @@ -735,7 +730,7 @@ sub lti_session { &Apache::lonauth::success($r,$uname,$udom,$uhome,'noredirect'); if ($symb) { $env{'form.symb'} = $symb; - $env{'request.lti.uri'} = $symb; + $env{'request.lti.uri'} = $tail; } else { if ($mapurl) { $env{'form.origurl'} = $mapurl;