[LON-CAPA-cvs] cvs: loncom /interface lonaboutme.pm
raeburn
raeburn@source.lon-capa.org
Sun, 26 Sep 2010 02:02:42 -0000
raeburn Sun Sep 26 02:02:42 2010 EDT
Modified files:
/loncom/interface lonaboutme.pm
Log:
- Use lonnet::get_my_roles() when determining if aboutme page is for user
in a course in place of lonnet::dump().
Index: loncom/interface/lonaboutme.pm
diff -u loncom/interface/lonaboutme.pm:1.146 loncom/interface/lonaboutme.pm:1.147
--- loncom/interface/lonaboutme.pm:1.146 Mon Mar 29 12:21:38 2010
+++ loncom/interface/lonaboutme.pm Sun Sep 26 02:02:42 2010
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Personal Information Page
#
-# $Id: lonaboutme.pm,v 1.146 2010/03/29 12:21:38 raeburn Exp $
+# $Id: lonaboutme.pm,v 1.147 2010/09/26 02:02:42 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -452,21 +452,19 @@
$cdom = $env{'course.'.$cid.'.domain'};
$cnum = $env{'course.'.$cid.'.num'};
}
- my %roles = &Apache::lonnet::dump('roles',$udom,$uname);
- my @course_roles = grep(m{^/\Q$cdom\E/\Q$cnum\E[/_]}, keys(%roles));
- return 0 if (!@course_roles);
- return 1 if ($type eq 'any');
- my $now = time();
- foreach my $role (@course_roles) {
- my (undef,$role_end,$role_start)=split(/\_/,$roles{$role});
- my $status = 'active';
- if ($role_start > 0 && $now < $role_start) {
- $status = 'future';
- }
- if ($role_end > 0 && $now > $role_end) {
- $status = 'previous';
- }
- return 1 if ($status eq $type);
+ my $typesref;
+ if ($type eq 'all') {
+ $typesref = ['active','previous','future'];
+ } elsif ($type eq 'previous' || $type eq 'future') {
+ $typesref = [$type];
+ }
+ my %roles = &Apache::lonnet::get_my_roles($uname,$udom,'userroles',
+ $typesref,undef,[$cdom]);
+ my ($tmp) = keys(%roles);
+ return 0 if ($tmp =~ /^(con_lost|error|no_such_host)/i);
+ my @course_roles = grep(/^\Q$cnum\E:\Q$cdom\E:/, keys(%roles));
+ if (@course_roles > 0) {
+ return 1;
}
return 0;
}