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

raeburn raeburn@source.lon-capa.org
Sun, 08 Feb 2009 20:01:54 -0000


raeburn		Sun Feb  8 20:01:54 2009 EDT

  Modified files:              
    /loncom/interface	loncreateuser.pm 
  Log:
  Work on ability of individual users to request creation of (a) official courses,
   and (b) unofficial courses.
  "requestcourse" switched to "requestcourses" for consistency.
  
  - When setting availability to default, need to call lonnet::usertools_access() with $action set to 'reload' to get value to set $env{'environment.canrequest.$type} to.
    - Same applies to 'availabletools for portfolio, blog, aboutme.
  
  
Index: loncom/interface/loncreateuser.pm
diff -u loncom/interface/loncreateuser.pm:1.278 loncom/interface/loncreateuser.pm:1.279
--- loncom/interface/loncreateuser.pm:1.278	Thu Feb  5 17:15:04 2009
+++ loncom/interface/loncreateuser.pm	Sun Feb  8 20:01:54 2009
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Create a user
 #
-# $Id: loncreateuser.pm,v 1.278 2009/02/05 17:15:04 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.279 2009/02/08 20:01:54 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -227,9 +227,9 @@
                    'official'   => 'Can request creation of official courses',
                    'unofficial' => 'Can request creation of unofficial courses',  
     );
-    if ($context eq 'requestcourse') {
+    if ($context eq 'requestcourses') {
         %userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname,
-                      'requestcourse.official','requestcourse.unofficial');
+                      'requestcourses.official','requestcourses.unofficial');
         @usertools = ('official','unofficial');
     } else {
         %userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname,
@@ -870,7 +870,7 @@
         if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) {
             $r->print('<h3>'.&mt('User Can Request Creation of Courses?').'</h3>'.
                       &Apache::loncommon::start_data_table().
-                      &build_tools_display($ccuname,$ccdomain,'requestcourse').
+                      &build_tools_display($ccuname,$ccdomain,'requestcourses').
                       &Apache::loncommon::end_data_table());
         }
         $r->print('</div>');
@@ -1851,12 +1851,10 @@
                                                  \%changeHash,'tools');
                 }
             }
-            if (&Apache::lonnet::allowed('ccc',$env{'request.domain'})) {
-                foreach my $item (@requestcourses) {
-                    $newcustom{$item} = $env{'form.requestcourse_'.$item};
-                    $changed{$item} = &tool_admin($item,$newcustom{$item},
-                                                  \%changeHash,'requestcourse');
-                }
+            foreach my $item (@requestcourses) {
+                $newcustom{$item} = $env{'form.requestcourses_'.$item};
+                $changed{$item} = &tool_admin($item,$newcustom{$item},
+                                              \%changeHash,'requestcourses');
             }
             if (keys(%changed)) {
                 $changeHash{'firstname'}  = $env{'form.cfirstname'};
@@ -1902,8 +1900,8 @@
         my %userenv = &Apache::lonnet::get
             ('environment',['firstname','middlename','lastname','generation',
              'id','permanentemail','portfolioquota','inststatus','tools.aboutme',
-             'tools.blog','tools.portfolio','requestcourse.official',
-             'requestcourse.unofficial'],
+             'tools.blog','tools.portfolio','requestcourses.official',
+             'requestcourses.unofficial'],
               $env{'form.ccdomain'},$env{'form.ccuname'});
         my ($tmp) = keys(%userenv);
         if ($tmp =~ /^(con_lost|error)/i) { 
@@ -2084,7 +2082,7 @@
         }
         &tool_changes('tools',\@usertools,\%oldaccess,\%oldaccesstext,\%userenv,
                       \%changeHash,\%changed,\%newaccess,\%newaccesstext);
-        &tool_changes('requestcourse',\@requestcourses,\%oldaccess,\%oldaccesstext,
+        &tool_changes('requestcourses',\@requestcourses,\%oldaccess,\%oldaccesstext,
                       \%userenv, \%changeHash,\%changed,\%newaccess,\%newaccesstext);
         if ($env{'form.cfirstname'}  ne $userenv{'firstname'}  ||
             $env{'form.cmiddlename'} ne $userenv{'middlename'} ||
@@ -2112,16 +2110,26 @@
                         my %newenvhash;
                         foreach my $key (keys(%changed)) {
                             if (($key eq 'official') || ($key eq 'unofficial')) {
-                                $newenvhash{'environment.canrequest.'.$key} =
-                                    $changeHash{'requestcourse.'.$key};
-                                $newenvhash{'environment.canrequest.'.$key} =
-                                    $changeHash{'requestcourse.'.$key};
-
+                                $newenvhash{'environment.requestcourses.'.$key} =
+                                    $changeHash{'requestcourses.'.$key};
+                                if ($changeHash{'requestcourses.'.$key} ne '') {
+                                    $newenvhash{'environment.canrequest.'.$key} =
+                                        $changeHash{'requestcourses.'.$key};
+                                } else {
+                                    $newenvhash{'environment.canrequest.'.$key} =
+          &Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'},
+                                            $key,'reload','requestcourses');
+                                }
                             } elsif ($key ne 'quota') {
                                 $newenvhash{'environment.tools.'.$key} = 
                                     $changeHash{'tools.'.$key};
-                                $newenvhash{'environment.availabletools.'.$key} =
-                                    $changeHash{'tools.'.$key};
+                                if ($changeHash{'tools.'.$key} ne '') {
+                                    $newenvhash{'environment.availabletools.'.$key} =
+                                        $changeHash{'tools.'.$key};
+                                } else {
+                                    $newenvhash{'environment.availabletools.'.$key} =
+          &Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'},                                            $key,'reload','tools');
+                                }
                             }
                         }
                         if (keys(%newenvhash)) {
@@ -2397,9 +2405,9 @@
             } else {
                 $oldaccesstext->{$tool} = &mt("availability set to 'off'");
             }
-            $changeHash->{$context.'.'.$tool} = $userenv->{'tools.'.$tool};
+            $changeHash->{$context.'.'.$tool} = $userenv->{$context.'.'.$tool};
             if ($env{'form.custom'.$tool} == 1) {
-                if ($env{'form.'.$context.'_'.$tool} ne $userenv->{'tools.'.$tool}) {
+                if ($env{'form.'.$context.'_'.$tool} ne $userenv->{$context.'.'.$tool}) {
                     $changed->{$tool} = &tool_admin($tool,$env{'form.'.$context.'_'.$tool},
                                                   $changeHash,$context);
                     if ($changed->{$tool}) {
@@ -2823,7 +2831,7 @@
 sub tool_admin {
     my ($tool,$settool,$changeHash,$context) = @_;
     my $canchange = 0; 
-    if ($context eq 'requestcourse') {
+    if ($context eq 'requestcourses') {
         if (&Apache::lonnet::allowed('ccc',$env{'form.ccdomain'})) {
             $canchange = 1;
         }
@@ -4239,7 +4247,7 @@
                 &Apache::loncommon::plainname($env{'user.name'},$env{'user.domain'}).' ('.$env{'user.name'}.':'.$env{'user.domain'}.')';
             my $chgmsg = "'Action was taken on the following enrollment requests by [_1].',$namelink";
             my ($approvedlist,$rejectedlist);
-            if (@enrolled) { 
+            if (@enrolled) {
                 $approvedlist = join("\n",@enrolled);
                 $r->print('<p>'.&mt('The following were enrolled in the course:').'<ul>');
                 foreach my $user (@enrolled) {