[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Sun, 23 Mar 2003 09:00:51 -0000
albertel Sun Mar 23 04:00:51 2003 EDT
Modified files:
/loncom/lonnet/perl lonnet.pm
Log:
- fixes BUG#591, loncreateuser uses the user.priv.cm (cumlative role permissions)
entry existense to guess what courses are available to show, this code was
generating cumulative role entries for roles that had no cm, like ca, thus
one was given the option to create cc roles for normal user accounts
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.346 loncom/lonnet/perl/lonnet.pm:1.347
--- loncom/lonnet/perl/lonnet.pm:1.346 Sat Mar 22 20:46:51 2003
+++ loncom/lonnet/perl/lonnet.pm Sun Mar 23 04:00:51 2003
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.346 2003/03/23 01:46:51 www Exp $
+# $Id: lonnet.pm,v 1.347 2003/03/23 09:00:51 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1718,42 +1718,54 @@
}
}
if (($area ne '') && ($trole ne '')) {
- my $spec=$trole.'.'.$area;
- my ($tdummy,$tdomain,$trest)=split(/\//,$area);
- if ($trole =~ /^cr\//) {
- my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$trole);
- my $homsvr=homeserver($rauthor,$rdomain);
- if ($hostname{$homsvr} ne '') {
- my $roledef=
- reply("get:$rdomain:$rauthor:roles:rolesdef_$rrole",
- $homsvr);
- if (($roledef ne 'con_lost') && ($roledef ne '')) {
- my ($syspriv,$dompriv,$coursepriv)=
- split(/\_/,unescape($roledef));
- $allroles{'cm./'}.=':'.$syspriv;
- $allroles{$spec.'./'}.=':'.$syspriv;
- if ($tdomain ne '') {
- $allroles{'cm./'.$tdomain.'/'}.=':'.$dompriv;
- $allroles{$spec.'./'.$tdomain.'/'}.=':'.$dompriv;
- if ($trest ne '') {
- $allroles{'cm.'.$area}.=':'.$coursepriv;
- $allroles{$spec.'.'.$area}.=':'.$coursepriv;
- }
- }
- }
- }
- } else {
- $allroles{'cm./'}.=':'.$pr{$trole.':s'};
- $allroles{$spec.'./'}.=':'.$pr{$trole.':s'};
- if ($tdomain ne '') {
- $allroles{'cm./'.$tdomain.'/'}.=':'.$pr{$trole.':d'};
- $allroles{$spec.'./'.$tdomain.'/'}.=':'.$pr{$trole.':d'};
- if ($trest ne '') {
- $allroles{'cm.'.$area}.=':'.$pr{$trole.':c'};
- $allroles{$spec.'.'.$area}.=':'.$pr{$trole.':c'};
- }
- }
- }
+ my $spec=$trole.'.'.$area;
+ my ($tdummy,$tdomain,$trest)=split(/\//,$area);
+ if ($trole =~ /^cr\//) {
+ my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$trole);
+ my $homsvr=homeserver($rauthor,$rdomain);
+ if ($hostname{$homsvr} ne '') {
+ my $roledef=
+ reply("get:$rdomain:$rauthor:roles:rolesdef_$rrole",
+ $homsvr);
+ if (($roledef ne 'con_lost') && ($roledef ne '')) {
+ my ($syspriv,$dompriv,$coursepriv)=
+ split(/\_/,unescape($roledef));
+ if (defined($syspriv)) {
+ $allroles{'cm./'}.=':'.$syspriv;
+ $allroles{$spec.'./'}.=':'.$syspriv;
+ }
+ if ($tdomain ne '') {
+ if (defined($dompriv)) {
+ $allroles{'cm./'.$tdomain.'/'}.=':'.$dompriv;
+ $allroles{$spec.'./'.$tdomain.'/'}.=':'.$dompriv;
+ }
+ if ($trest ne '') {
+ if (defined($coursepriv)) {
+ $allroles{'cm.'.$area}.=':'.$coursepriv;
+ $allroles{$spec.'.'.$area}.=':'.$coursepriv;
+ }
+ }
+ }
+ }
+ }
+ } else {
+ if (defined($pr{$trole.':s'})) {
+ $allroles{'cm./'}.=':'.$pr{$trole.':s'};
+ $allroles{$spec.'./'}.=':'.$pr{$trole.':s'};
+ }
+ if ($tdomain ne '') {
+ if (defined($pr{$trole.':d'})) {
+ $allroles{'cm./'.$tdomain.'/'}.=':'.$pr{$trole.':d'};
+ $allroles{$spec.'./'.$tdomain.'/'}.=':'.$pr{$trole.':d'};
+ }
+ if ($trest ne '') {
+ if (defined($pr{$trole.':c'})) {
+ $allroles{'cm.'.$area}.=':'.$pr{$trole.':c'};
+ $allroles{$spec.'.'.$area}.=':'.$pr{$trole.':c'};
+ }
+ }
+ }
+ }
}
}
}