--- loncom/xml/londefdef.pm 2007/06/19 20:25:45 1.368
+++ loncom/xml/londefdef.pm 2007/06/22 00:11:32 1.369
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Tags Default Definition Module
#
-# $Id: londefdef.pm,v 1.368 2007/06/19 20:25:45 banghart Exp $
+# $Id: londefdef.pm,v 1.369 2007/06/22 00:11:32 albertel Exp $
#
#
# Copyright Michigan State University Board of Trustees
@@ -481,13 +481,21 @@ sub start_accessrule {
('realm',$parstack,$safeeval,undef,1);
my $role=&Apache::lonxml::get_param
('role',$parstack,$safeeval,undef,1);
- $realm=~s/\s+//g;
- $realm=~s/\//\_/g;
- $realm=~s/^\_//;
- $realm=~s/\W/\;/g;
- $role=~s/\s+//g;
- $role=~s/\//\_/g;
- $role=~s/\W/\;/g;
+ my ($dom,$crs,$sec)=split(/\_/,$realm);
+ $dom = &LONCAPA::clean_domain($dom);
+ my $type=&Apache::lonxml::get_param
+ ('type',$parstack,$safeeval,undef,1);
+ if ($type eq 'user') {
+ $crs = &LONCAPA::clean_username($crs);
+ } else {
+ $crs = &LONCAPA::clean_courseid($crs);
+ }
+ $sec =~s/\W//;
+ $realm = $dom;
+ if ($crs =~ /\S/) { $realm .= '_'.$crs; }
+ if ($sec =~ /\S/) { $realm .= '_'.$sec; }
+ $role=~s/\W//g;
+
if ($target eq 'web') {
my $args='';
if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; }
@@ -498,7 +506,7 @@ sub start_accessrule {
}
}
if ($target eq 'meta') {
- $currentstring=''.$eff.':'.$realm.':'.$role.'';
+ $currentstring=''.$eff.':'.$realm.':'.$role.':'.$type.'';
}
return $currentstring;
}