[LON-CAPA-cvs] cvs: loncom /interface loncommon.pm loncreateuser.pm lonfeedback.pm

raeburn raeburn at source.lon-capa.org
Wed Nov 16 09:24:35 EST 2022


raeburn		Wed Nov 16 14:24:35 2022 EDT

  Modified files:              
    /loncom/interface	lonfeedback.pm loncommon.pm loncreateuser.pm 
  Log:
  - Cache user's aboutme page availability to speed up display of discussion posts.
  
  
Index: loncom/interface/lonfeedback.pm
diff -u loncom/interface/lonfeedback.pm:1.391 loncom/interface/lonfeedback.pm:1.392
--- loncom/interface/lonfeedback.pm:1.391	Mon Nov 14 14:41:40 2022
+++ loncom/interface/lonfeedback.pm	Wed Nov 16 14:24:35 2022
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Feedback
 #
-# $Id: lonfeedback.pm,v 1.391 2022/11/14 14:41:40 raeburn Exp $
+# $Id: lonfeedback.pm,v 1.392 2022/11/16 14:24:35 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1693,9 +1693,8 @@
                                         $$contrib{$idx.':sendername'},
                                         $$contrib{$idx.':senderdomain'});
     $$screenname=$$contrib{$idx.':screenname'};
-    $$showaboutme = &Apache::lonnet::usertools_access($$contrib{$idx.':sendername'},
-                                                      $$contrib{$idx.':senderdomain'},
-                                                      'aboutme');
+    $$showaboutme = &Apache::loncommon::aboutme_on($$contrib{$idx.':sendername'},
+                                                   $$contrib{$idx.':senderdomain'});
     my $sender = $$plainname;
     if ($$showaboutme) {
         $sender = &Apache::loncommon::aboutmewrapper(
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.1395 loncom/interface/loncommon.pm:1.1396
--- loncom/interface/loncommon.pm:1.1395	Sat Oct 29 18:13:28 2022
+++ loncom/interface/loncommon.pm	Wed Nov 16 14:24:35 2022
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.1395 2022/10/29 18:13:28 raeburn Exp $
+# $Id: loncommon.pm,v 1.1396 2022/11/16 14:24:35 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -4283,6 +4283,30 @@
     return qq{<a href="/public/$domain/$coursedir/syllabus">$linktext</a>};
 }
 
+sub aboutme_on {
+    my ($uname,$udom)=@_;
+    unless ($uname) { $uname=$env{'user.name'}; }
+    unless ($udom)  { $udom=$env{'user.domain'}; }
+    return if ($udom eq 'public' && $uname eq 'public');
+    my $hashkey=$uname.':'.$udom;
+    my ($aboutme,$cached)=&Apache::lonnet::is_cached_new('aboutme',$hashkey);
+    if ($cached) {
+        return $aboutme;
+    }
+    $aboutme = &Apache::lonnet::usertools_access($uname,$udom,'aboutme');
+    &Apache::lonnet::do_cache_new('aboutme',$hashkey,$aboutme,3600);
+    return $aboutme;
+}
+
+sub devalidate_aboutme_cache {
+    my ($uname,$udom)=@_;
+    if (!$udom)  { $udom =$env{'user.domain'}; }
+    if (!$uname) { $uname=$env{'user.name'};   }
+    return if ($udom eq 'public' && $uname eq 'public');
+    my $id=$uname.':'.$udom;
+    &Apache::lonnet::devalidate_cache_new('aboutme',$id);
+}
+
 # -----------------------------------------------------------------------------
 
 sub track_student_link {
Index: loncom/interface/loncreateuser.pm
diff -u loncom/interface/loncreateuser.pm:1.462 loncom/interface/loncreateuser.pm:1.463
--- loncom/interface/loncreateuser.pm:1.462	Mon Nov 14 22:33:28 2022
+++ loncom/interface/loncreateuser.pm	Wed Nov 16 14:24:35 2022
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Create a user
 #
-# $Id: loncreateuser.pm,v 1.462 2022/11/14 22:33:28 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.463 2022/11/16 14:24:35 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -296,7 +296,7 @@
             $currdisp,$custdisp,$custradio);
         $cust_off = 'checked="checked" ';
         $tool_on = 'checked="checked" ';
-        $curr_access =  
+        $curr_access =
             &Apache::lonnet::usertools_access($ccuname,$ccdomain,$item,undef,
                                               $context,\%userenv,'',
                                               {'is_adv' => $isadv});
@@ -3427,6 +3427,10 @@
                             &Apache::lonnet::appenv(\%newenvhash);
                         }
                     }
+                    if ($changed{'aboutme'}) {
+                        &Apache::loncommon::devalidate_aboutme_cache($env{'form.ccuname'},
+                                                                     $env{'form.ccdomain'});
+                    }
                 }
             }
             if (keys(%namechanged) > 0) {




More information about the LON-CAPA-cvs mailing list