--- loncom/xml/londefdef.pm 2007/07/04 14:02:14 1.372 +++ loncom/xml/londefdef.pm 2007/07/13 18:35:20 1.373 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Tags Default Definition Module # -# $Id: londefdef.pm,v 1.372 2007/07/04 14:02:14 foxr Exp $ +# $Id: londefdef.pm,v 1.373 2007/07/13 18:35:20 albertel Exp $ # # # Copyright Michigan State University Board of Trustees @@ -475,25 +475,27 @@ sub end_meta { sub start_accessrule { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_; my $currentstring = ''; - my $eff=&Apache::lonxml::get_param - ('effect',$parstack,$safeeval,undef,1); - my $realm=&Apache::lonxml::get_param - ('realm',$parstack,$safeeval,undef,1); - my $role=&Apache::lonxml::get_param - ('role',$parstack,$safeeval,undef,1); - my ($dom,$crs,$sec)=split(/\_/,$realm); - $dom = &LONCAPA::clean_domain($dom); - my $type=&Apache::lonxml::get_param - ('type',$parstack,$safeeval,undef,1); + my $eff =&Apache::lonxml::get_param('effect',$parstack,$safeeval,undef,1); + my $realm=&Apache::lonxml::get_param('realm', $parstack,$safeeval,undef,1); + my $role =&Apache::lonxml::get_param('role', $parstack,$safeeval,undef,1); + my $type =&Apache::lonxml::get_param('type', $parstack,$safeeval,undef,1); + + my ($dom,$crs,$sec,$separator); if ($type eq 'user') { + ($dom,$crs,$sec)=split(m{/},$realm); $crs = &LONCAPA::clean_username($crs); + $separator = '/'; } else { + ($dom,$crs,$sec)=split(/\_/,$realm); $crs = &LONCAPA::clean_courseid($crs); + $separator = '_'; } + $dom = &LONCAPA::clean_domain($dom); + $sec =~s/\W//; $realm = $dom; - if ($crs =~ /\S/) { $realm .= '_'.$crs; } - if ($sec =~ /\S/) { $realm .= '_'.$sec; } + if ($crs =~ /\S/) { $realm .= $separator.$crs; } + if ($sec =~ /\S/) { $realm .= $separator.$sec; } $role=~s/\W//g; if ($target eq 'web') {