[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm
raeburn
lon-capa-cvs-allow@mail.lon-capa.org
Tue, 10 Apr 2007 20:29:53 -0000
raeburn Tue Apr 10 16:29:53 2007 EDT
Modified files:
/loncom/lonnet/perl lonnet.pm
Log:
Correction to get_my_roles() - role data stored differently in nohist_userroles.db (for roles for a course) and roles.db for roles for a user.
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.866 loncom/lonnet/perl/lonnet.pm:1.867
--- loncom/lonnet/perl/lonnet.pm:1.866 Thu Apr 5 18:04:49 2007
+++ loncom/lonnet/perl/lonnet.pm Tue Apr 10 16:29:53 2007
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.866 2007/04/05 22:04:49 raeburn Exp $
+# $Id: lonnet.pm,v 1.867 2007/04/10 20:29:53 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2137,7 +2137,12 @@
my %returnhash=();
my $now=time;
foreach my $entry (keys(%dumphash)) {
- my ($tend,$tstart)=split(/\:/,$dumphash{$entry});
+ my ($role,$tend,$tstart);
+ if ($context eq 'userroles') {
+ ($role,$tend,$tstart)=split(/_/,$dumphash{$entry});
+ } else {
+ ($tend,$tstart)=split(/\:/,$dumphash{$entry});
+ }
if (($tstart) && ($tstart<0)) { next; }
my $status = 'active';
if (($tend) && ($tend<$now)) {
@@ -2155,7 +2160,13 @@
next;
}
}
- my ($role,$username,$domain,$section)=split(/\:/,$entry);
+ my ($rolecode,$username,$domain,$section,$area);
+ if ($context eq 'userroles') {
+ ($area,$rolecode) = split(/_/,$entry);
+ (undef,$domain,$username,$section) = split(/\//,$area);
+ } else {
+ ($role,$username,$domain,$section) = split(/\:/,$entry);
+ }
if (ref($roledoms) eq 'ARRAY') {
if (!grep(/^\Q$domain\E$/,@{$roledoms})) {
next;
@@ -2165,7 +2176,7 @@
if (!grep(/^\Q$role\E$/,@{$roles})) {
next;
}
- }
+ }
$returnhash{$username.':'.$domain.':'.$role}=$tstart.':'.$tend;
}
return %returnhash;