--- loncom/interface/loncreateuser.pm	2008/12/08 22:46:28	1.267
+++ loncom/interface/loncreateuser.pm	2008/12/18 17:27:49	1.271
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Create a user
 #
-# $Id: loncreateuser.pm,v 1.267 2008/12/08 22:46:28 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.271 2008/12/18 17:27:49 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -2125,18 +2125,20 @@ sub update_user_data {
                     &Apache::lonnet::put('environment',\%changeHash,
                                   $env{'form.ccdomain'},$env{'form.ccuname'});
                 if ($chgresult eq 'ok') {
-                    my %newenvhash;
-                    my $hashid="$env{'form.ccuname'}:$env{'form.ccdomain'}";
-                    foreach my $key (keys(%changed)) {
-                        if ($key ne 'quota') {
-                            &Apache::lonnet::devalidate_cache_new('usertools.'.$key,$hashid);
-                            $newenvhash{'environment.tools.'.$key} = 
-                                $changeHash{'tools.'.$key};
-                        }
-                    }
                     if (($env{'user.name'} eq $env{'form.ccuname'}) &&
                         ($env{'user.domain'} eq $env{'form.ccdomain'})) {
-                        &Apache::lonnet::appenv(\%newenvhash);
+                        my %newenvhash;
+                        foreach my $key (keys(%changed)) {
+                            if ($key ne 'quota') {
+                                $newenvhash{'environment.tools.'.$key} = 
+                                    $changeHash{'tools.'.$key};
+                                $newenvhash{'environment.availabletools.'.$key} =
+                                    $changeHash{'tools.'.$key};
+                            }
+                        }
+                        if (keys(%newenvhash)) {
+                            &Apache::lonnet::appenv(\%newenvhash);
+                        }
                     }
                 }
             }
@@ -2480,7 +2482,7 @@ sub update_roles {
                 my $result = &Apache::lonnet::assigncustomrole(
                                $env{'form.ccdomain'}, $env{'form.ccuname'},
                                $url,$rdom,$rnam,$rolename,0,$now,undef,$context);
-                $r->print(&mt('Re-enabling custom role [_1] by [_2]@[_3] in [_4] : [_5]',
+                $r->print(&mt('Re-enabling custom role [_1] by [_2]:[_3] in [_4] : [_5]',
                           $rolename,$rnam,$rdom,$url,'<b>'.$result.'</b>').'<br />');
                 if (!grep(/^cr$/,@rolechanges)) {
                     push(@rolechanges,'cr');
@@ -2928,34 +2930,35 @@ sub make_script_template {
         my ($priv_item, $dummy) = split(/\&/,$priv);
         $role_c{$priv_item} = 1;
     }
+    my %role_d;
+    @temp = split(/:/,$Apache::lonnet::pr{$role.':d'});
+    foreach my $priv(@temp) {
+        my ($priv_item, $dummy) = split(/\&/,$priv);
+        $role_d{$priv_item} = 1;
+    }
+    my %role_s;
+    @temp = split(/:/,$Apache::lonnet::pr{$role.':s'});
+    foreach my $priv(@temp) {
+        my ($priv_item, $dummy) = split(/\&/,$priv);
+        $role_s{$priv_item} = 1;
+    }
     foreach my $priv_item (keys(%full_c)) {
         my ($priv, $dummy) = split(/\&/,$priv_item);
-        if (exists($role_c{$priv})) {
+        if ((exists($role_c{$priv})) || (exists($role_d{$priv})) || 
+            (exists($role_s{$priv}))) {
             $return_script .= "document.form1.$priv"."_c.checked = true;\n";
         } else {
             $return_script .= "document.form1.$priv"."_c.checked = false;\n";
         }
     }
-    my %role_d;
-    @temp = split(/:/,$Apache::lonnet::pr{$role.':d'});
-    foreach my $priv(@temp) {
-        my ($priv_item, $dummy) = split(/\&/,$priv);
-        $role_d{$priv_item} = 1;
-    }
     foreach my $priv_item (keys(%full_d)) {
         my ($priv, $dummy) = split(/\&/,$priv_item);
-        if (exists($role_d{$priv})) {
+        if ((exists($role_d{$priv})) || (exists($role_s{$priv}))) {
             $return_script .= "document.form1.$priv"."_d.checked = true;\n";
         } else {
             $return_script .= "document.form1.$priv"."_d.checked = false;\n";
         }
     }
-    my %role_s;
-    @temp = split(/:/,$Apache::lonnet::pr{$role.':s'});
-    foreach my $priv(@temp) {
-        my ($priv_item, $dummy) = split(/\&/,$priv);
-        $role_s{$priv_item} = 1;
-    }
     foreach my $priv_item (keys(%full_s)) {
         my ($priv, $dummy) = split(/\&/,$priv_item);
         if (exists($role_s{$priv})) {