[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;
 }