Diff for /loncom/interface/loncreateuser.pm between versions 1.249.2.6 and 1.265

version 1.249.2.6, 2008/08/26 23:20:22 version 1.265, 2008/12/03 19:26:05
Line 33  package Apache::loncreateuser; Line 33  package Apache::loncreateuser;
   
 =head1 NAME  =head1 NAME
   
 Apache::loncreateuser - handler to create users and custom roles  Apache::loncreateuser.pm
   
 =head1 SYNOPSIS  =head1 SYNOPSIS
   
 Apache::loncreateuser provides an Apache handler for creating users,      Handler to create users and custom roles
   
       Provides an Apache handler for creating users,
     editing their login parameters, roles, and removing roles, and      editing their login parameters, roles, and removing roles, and
     also creating and assigning custom roles.      also creating and assigning custom roles.
   
Line 833  ENDNOPORTPRIV Line 835  ENDNOPORTPRIV
                 $addrolesdisplay = $add_domainroles;                  $addrolesdisplay = $add_domainroles;
             }              }
             $r->print(&course_level_dc($env{'request.role.domain'},'Course'));              $r->print(&course_level_dc($env{'request.role.domain'},'Course'));
             $r->print('<br /><input type="button" value="'.&mt('Modify User').'" onClick="setCourse()" />'."\n");              $r->print('<br /><input type="button" value="'.&mt('Save').'" onClick="setCourse()" />'."\n");
         } elsif ($context eq 'author') {          } elsif ($context eq 'author') {
             if ($addrolesdisplay) {              if ($addrolesdisplay) {
                 $r->print('<br /><input type="button" value="'.&mt('Modify User').'"');                  $r->print('<br /><input type="button" value="'.&mt('Save').'"');
                 if ($newuser) {                  if ($newuser) {
                     $r->print(' onClick="auth_check()" \>'."\n");                      $r->print(' onClick="auth_check()" \>'."\n");
                 } else {                  } else {
Line 848  ENDNOPORTPRIV Line 850  ENDNOPORTPRIV
             }              }
         } else {          } else {
             $r->print(&course_level_table(%inccourses));              $r->print(&course_level_table(%inccourses));
             $r->print('<br /><input type="button" value="'.&mt('Modify User').'" onClick="setSections(this.form)" />'."\n");              $r->print('<br /><input type="button" value="'.&mt('Save').'" onClick="setSections(this.form)" />'."\n");
         }          }
     }      }
     $r->print(&Apache::lonhtmlcommon::echo_form_input(['phase','userrole','ccdomain','prevphase','currstate','ccuname','ccdomain']));      $r->print(&Apache::lonhtmlcommon::echo_form_input(['phase','userrole','ccdomain','prevphase','currstate','ccuname','ccdomain']));
Line 1448  sub personal_data_display { Line 1450  sub personal_data_display {
                     $row .= '<input type="hidden" name="c'.$item.'" value="'.$inst_results->{$item}.'" />'.$inst_results->{$item};                      $row .= '<input type="hidden" name="c'.$item.'" value="'.$inst_results->{$item}.'" />'.$inst_results->{$item};
                 } else {                  } else {
                     if ($context eq 'selfcreate') {                      if ($context eq 'selfcreate') {
                         if ($canmodify{$item}) {                          if ($canmodify{$item}) { 
                             $row .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />';                              $row .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />';
                             $editable ++;                              $editable ++;
                         } else {                          } else {
Line 1859  sub update_user_data { Line 1861  sub update_user_data {
             if ($env{'form.cid'} ne $uidhash{$env{'form.ccuname'}}) {              if ($env{'form.cid'} ne $uidhash{$env{'form.ccuname'}}) {
                 $env{'form.cid'} = $userenv{'id'};                  $env{'form.cid'} = $userenv{'id'};
                 $no_forceid_alert = &mt('New Student/Employee ID does not match existing ID for this user.')                  $no_forceid_alert = &mt('New Student/Employee ID does not match existing ID for this user.')
                                     .'<br />'                                     .'<br />'
                                     .&mt("Change is not permitted without checking the 'Force ID change' checkbox on the previous page.")                                     .&mt("Change is not permitted without checking the 'Force ID change' checkbox on the previous page.")
                                     .'<br />'."\n";                                             .'<br />'."\n";
             }              }
         }          }
         if ($env{'form.cid'} ne $userenv{'id'}) {          if ($env{'form.cid'} ne $userenv{'id'}) {
Line 2605  sub custom_role_editor { Line 2607  sub custom_role_editor {
     my @template_roles = ("cc","in","ta","ep","st");      my @template_roles = ("cc","in","ta","ep","st");
     foreach my $role (@template_roles) {      foreach my $role (@template_roles) {
         $head_script .= &make_script_template($role);          $head_script .= &make_script_template($role);
         $button_code .= &make_button_code($role);          $button_code .= &make_button_code($role).' ';
     }      }
     $head_script .= "\n".$jsback."\n".'</script>'."\n";      $head_script .= "\n".$jsback."\n".'</script>'."\n";
     $r->print(&Apache::loncommon::start_page('Custom Role Editor',$head_script));      $r->print(&Apache::loncommon::start_page('Custom Role Editor',$head_script));
Line 2625  sub custom_role_editor { Line 2627  sub custom_role_editor {
     'crl'  => "Course Level",      'crl'  => "Course Level",
                     'dml'  => "Domain Level",                      'dml'  => "Domain Level",
                     'ssl'  => "System Level");                      'ssl'  => "System Level");
     $r->print(&mt('Select a Template').'<br />');  
     $r->print('<form action="">');      $r->print('<div>'
     $r->print($button_code);               .'<form action=""><fieldset>'
     $r->print('</form>');               .'<legend>'.&mt('Select a Template').'</legend>'
                .$button_code
                .'</fieldset></form>'
                .'</div>'
       );
   
     $r->print(<<ENDCCF);      $r->print(<<ENDCCF);
 <form name="form1" method="post">  <form name="form1" method="post">
 <input type="hidden" name="phase" value="set_custom_roles" />  <input type="hidden" name="phase" value="set_custom_roles" />
Line 2731  sub make_script_template { Line 2738  sub make_script_template {
 sub make_button_code {  sub make_button_code {
     my ($role) = @_;      my ($role) = @_;
     my $label = &Apache::lonnet::plaintext($role);      my $label = &Apache::lonnet::plaintext($role);
     my $button_code = '<input type="button" onClick="set_'.$role.'()" value="'.$label.'" />';          my $button_code = '<input type="button" onClick="set_'.$role.'()" value="'.$label.'" />';
     return ($button_code);      return ($button_code);
 }  }
 # ---------------------------------------------------------- Call to definerole  # ---------------------------------------------------------- Call to definerole
Line 3124  sub print_main_menu { Line 3131  sub print_main_menu {
                                    listusers => 'Display Co-authors and Manage Multiple Users',                                     listusers => 'Display Co-authors and Manage Multiple Users',
                                  },                                   },
                        course => {                         course => {
                                    upload => 'Upload a File of Course Users',                                     upload => 'File of Course Users',
                                    singleuser => 'Add/Modify a Single Course User',                                     singleuser => 'Single Course User',
                                    listusers => 'Display Class Lists and Manage Multiple Users',                                     listusers => 'Course User Lists',
                                  },                                   },
                      );                       );
     my @menu =    my @menu = ( {categorytitle => 'Add Users',
         (       items =>
           { text => $links{$context}{'upload'},       [{
             help => 'Course_Create_Class_List',           linktext => $links{$context}{'upload'},
             action => 'upload',           icon => 'sctr.png',
             permission => $permission->{'cusr'},           #help => 'Course_Create_Class_List',
             },           url => '/adm/createuser?action=upload',
           { text => $links{$context}{'singleuser'},            permission => $permission->{'cusr'},
             help => 'Course_Change_Privileges',           linktitle => 'Upload a CSV or a text file containing users.',
             action => 'singleuser',       },
             permission => $permission->{'cusr'},       {
             },           linktext => $links{$context}{'singleuser'},
           { text => $links{$context}{'listusers'},           icon => 'edit-redo.png',
             help => 'Course_View_Class_List',           #help => 'Course_Change_Privileges',
             action => 'listusers',           url => '/adm/createuser?action=singleuser',
             permission => ($permission->{'view'} || $permission->{'cusr'}),           permission => $permission->{'cusr'},
           },           linktitle => 'Add a user with a certain role to this course.',
         );       }]},
     if ($context eq 'domain' || $context eq 'course') {       {categorytitle => 'Administration',
         my $customlink =  { text => 'Edit Custom Roles',       items =>
                             help => 'Course_Editing_Custom_Roles',       [{
                             action => 'custom',           linktext => $links{$context}{'listusers'},
                             permission => $permission->{'custom'},                   icon => 'edit-find.png',
                           };                   #help => 'Course_View_Class_List',
         push(@menu,$customlink);                   url => '/adm/createuser?action=listusers',
     }           permission => ($permission->{'view'} || $permission->{'cusr'}),
     if ($context eq 'course') {           linktitle => 'Show and manage users of this course.',
         my ($cnum,$cdom) = &Apache::lonuserutils::get_course_identity();       }]},
         my @courselinks =       {categorytitle => 'Configuration',
             (       items =>
               { text => 'Enroll a Single Student',       [
                  help => 'Course_Add_Student',       ]},
                  action => 'singlestudent',     );
                  permission => $permission->{'cusr'},  
                  },      if ($context eq 'domain'){
               { text => 'Drop Students',  
                 help => 'Course_Drop_Student',   push(@{ $menu[1]->{items} },
                 action => 'drop',   { linktext => 'Custom Roles',
                 permission => $permission->{'cusr'},   icon => 'emblem-photos.png',
               });   #help => 'Course_Editing_Custom_Roles',
         if (!exists($permission->{'cusr_section'})) {   url => '/adm/createuser?action=custom',
             push(@courselinks,   permission => $permission->{'custom'},
                { text => 'Automated Enrollment Manager',   linktitle => 'Configure a custom role.',
                  help => 'Course_Automated_Enrollment',   });
                  permission => (&Apache::lonnet::auto_run($cnum,$cdom)  
                                 && $permission->{'cusr'}),      }elsif ($context eq 'course'){
                  url  => '/adm/populate',      my ($cnum,$cdom) = &Apache::lonuserutils::get_course_identity();
                  },  
                { text => 'Configure User Self-enrollment',          push(@{ $menu[0]->{items} },
                  help => 'Course_Self_Enrollment',   { linktext => 'Single Student',
                  action => 'selfenroll',              #help => 'Course_Add_Student',
                  permission => $permission->{'cusr'},       icon => 'list-add.png',
                });              url => '/adm/createuser?action=singlestudent',
         }   permission => $permission->{'cusr'},
         push(@courselinks,              linktitle => 'Add a user with the role student to this course.',
                { text => 'Manage Course Groups',          });
                  help => 'Course_Manage_Group',  
                  permission => $permission->{'grp_manage'},          push(@{ $menu[1]->{items} },  
                  url => '/adm/coursegroups?refpage=cusr',   { linktext => 'Drop Students',
                },   icon => 'edit-undo.png',
                { text => 'View Change Logs',              #help => 'Course_Drop_Student',
                  help => 'Course_User_Logs',              url => '/adm/createuser?action=drop',
                  action => 'changelogs',   permission => $permission->{'cusr'},
                  permission => $permission->{'cusr'},              linktitle =>'Remove a student from this course.',
                },);          },
    { linktext => 'Custom Roles',
    icon => 'emblem-photos.png',
               #help => 'Course_Editing_Custom_Roles',
               url => '/adm/createuser?action=custom',
    permission => $permission->{'custom'},
    linktitle => 'Configure a custom role.',
           });
   
           if (!exists($permission->{'cusr_section'})){
          
    push(@{ $menu[2]->{items} },
    { linktext => 'Automated Enrollment',
    icon => 'roles.png',
             #help => 'Course_Automated_Enrollment',
           permission => (&Apache::lonnet::auto_run($cnum,$cdom)
                                   && $permission->{'cusr'}),
    url  => '/adm/populate',
    linktitle => 'Automated enrollment manager.',
    },
    { linktext => 'User Self-Enrollment',
    icon => 'cstr.png',
          #help => 'Course_Self_Enrollment',
    url => '/adm/createuser?action=selfenroll',
    permission => $permission->{'cusr'},
    linktitle => 'Configure user self enrollment.',
           });
   
    }
   
    push(@{ $menu[2]->{items} },
    { linktext => 'Course Groups',
    icon => 'conf.png',
           #help => 'Course_Manage_Group',
               url => '/adm/coursegroups?refpage=cusr',
    permission => $permission->{'grp_manage'},
    linktitle => 'Manage course groups.',
           },
           { linktext => 'Change Logs',
    icon => 'document-properties.png',
           #help => 'Course_User_Logs',
           url => '/adm/createuser?action=changelogs',
    permission => $permission->{'cusr'},
    linktitle => 'View change log.',
           });
       };
   return Apache::lonhtmlcommon::generate_menu(@menu);
 #               { text => 'View Log-in History',  #               { text => 'View Log-in History',
 #                 help => 'Course_User_Logins',  #                 help => 'Course_User_Logins',
 #                 action => 'logins',  #                 action => 'logins',
 #                 permission => $permission->{'cusr'},  #                 permission => $permission->{'cusr'},
 #               });  #               });
         push(@menu,@courselinks);  
     }  
     my $menu_html = '';  
     foreach my $menu_item (@menu) {  
         next if (! $menu_item->{'permission'});  
         $menu_html.='<p>';  
         if (exists($menu_item->{'help'})) {  
             $menu_html.=  
                 &Apache::loncommon::help_open_topic($menu_item->{'help'});  
         }  
         $menu_html.='<font size="+1">';  
         if (exists($menu_item->{'url'})) {  
             $menu_html.=qq{<a href="$menu_item->{'url'}">};  
         } else {  
             $menu_html.=  
                 qq{<a href="/adm/createuser?action=$menu_item->{'action'}">};  
         }  
         $menu_html.= &mt($menu_item->{'text'}).'</a></font>';  
         $menu_html.='</p>';  
     }  
     return $menu_html;  
 }  }
   
 sub restore_prev_selections {  sub restore_prev_selections {
Line 3609  sub visible_in_cat { Line 3641  sub visible_in_cat {
                    dc_chgcat => 'Ask a domain coordinator to change the category assigned to the course, as the one currently assigned is no longer used in the domain',                     dc_chgcat => 'Ask a domain coordinator to change the category assigned to the course, as the one currently assigned is no longer used in the domain',
                    dc_addcat => 'Ask a domain coordinator to assign a category to the course.',                     dc_addcat => 'Ask a domain coordinator to assign a category to the course.',
     );      );
     $visactions{'unhide'} = &mt('Use [_1]Set course environment[_2] to change the "Exclude from course catalog" setting.','<a href="/adm/parmset?action=crsenv">','</a>');      $visactions{'unhide'} = &mt('Use [_1]Set course environment[_2] to change the "Exclude from course catalog" setting.','"<a href="/adm/parmset?action=crsenv">','</a>"');
     $visactions{'chgcat'} = &mt('Use [_1]Set course environment[_2] to change the category assigned to the course, as the one currently assigned is no longer used in the domain.','<a href="/adm/parmset?action=crsenv">','</a>');      $visactions{'chgcat'} = &mt('Use [_1]Set course environment[_2] to change the category assigned to the course, as the one currently assigned is no longer used in the domain.','"<a href="/adm/parmset?action=crsenv">','</a>"');
     $visactions{'addcat'} = &mt('Use [_1]Set course environment[_2] to assign a category to the course.','<a href="/adm/parmset?action=crsenv">','</a>');      $visactions{'addcat'} = &mt('Use [_1]Set course environment[_2] to assign a category to the course.','"<a href="/adm/parmset?action=crsenv">','</a>"');
     if (ref($domconf{'coursecategories'}) eq 'HASH') {      if (ref($domconf{'coursecategories'}) eq 'HASH') {
         if ($domconf{'coursecategories'}{'togglecats'} eq 'crs') {          if ($domconf{'coursecategories'}{'togglecats'} eq 'crs') {
             $settable{'togglecats'} = 1;              $settable{'togglecats'} = 1;
Line 3621  sub visible_in_cat { Line 3653  sub visible_in_cat {
         }          }
         $cathash = $domconf{'coursecategories'}{'cats'};          $cathash = $domconf{'coursecategories'}{'cats'};
     }      }
     if ($settable{'togglecats'} && $settable{'categories'}) {      if ($settable{'togglecats'} && $settable{'categorize'}) {
         $cansetvis = &mt('You are able to both assign a course category and choose to exclude this course from the catalog.');          $cansetvis = &mt('You are able to both assign a course category and choose to exclude this course from the catalog.');   
     } elsif ($settable{'togglecats'}) {      } elsif ($settable{'togglecats'}) {
         $cansetvis = &mt('You are able to choose to exclude this course from the catalog, but only a Domain Coordinator may assign a course category.');          $cansetvis = &mt('You are able to choose to exclude this course from the catalog, but only a Domain Coordinator may assign a course category.'); 
     } elsif ($settable{'categories'}) {      } elsif ($settable{'categorize'}) {
         $cansetvis = &mt('You may assign a course category, but only a Domain Coordinator may choose to exclude this course from the catalog.');          $cansetvis = &mt('You may assign a course category, but only a Domain Coordinator may choose to exclude this course from the catalog.');  
     } else {      } else {
         $cansetvis = &mt('Only a Domain Coordinator may assign a course category or choose to exclude this course from the catalog.');          $cansetvis = &mt('Only a Domain Coordinator may assign a course category or choose to exclude this course from the catalog.'); 
     }      }
        
     my %currsettings =      my %currsettings =
         &Apache::lonnet::get('environment',['hidefromcat','categories','internal.coursecode'],          &Apache::lonnet::get('environment',['hidefromcat','categories','internal.coursecode'],
                              $cdom,$cnum);                               $cdom,$cnum);
Line 3640  sub visible_in_cat { Line 3672  sub visible_in_cat {
             $cathash = $domconf{'coursecategories'}{'cats'};              $cathash = $domconf{'coursecategories'}{'cats'};
             if (ref($cathash) eq 'HASH') {              if (ref($cathash) eq 'HASH') {
                 if ($cathash->{'instcode::0'} eq '') {                  if ($cathash->{'instcode::0'} eq '') {
                     push(@vismsgs,'dc_addinst');                      push(@vismsgs,'dc_addinst'); 
                 } else {                  } else {
                     $visible = 1;                      $visible = 1;
                 }                  }
Line 3679  sub visible_in_cat { Line 3711  sub visible_in_cat {
                         }                          }
                     }                      }
                     if (!$matched) {                      if (!$matched) {
                         if ($settable{'categories'}) {                          if ($settable{'categorize'}) { 
                             push(@vismsgs,'chgcat');                              push(@vismsgs,'chgcat');
                         } else {                          } else {
                             push(@vismsgs,'dc_chgcat');                              push(@vismsgs,'dc_chgcat');
Line 3690  sub visible_in_cat { Line 3722  sub visible_in_cat {
         }          }
     } else {      } else {
         if (ref($cathash) eq 'HASH') {          if (ref($cathash) eq 'HASH') {
             if ((keys(%{$cathash}) > 1) ||              if ((keys(%{$cathash}) > 1) || 
                 (keys(%{$cathash}) == 1) && ($cathash->{'instcode::0'} eq '')) {                  (keys(%{$cathash}) == 1) && ($cathash->{'instcode::0'} eq '')) {
                 if ($settable{'categories'}) {                  if ($settable{'categorize'}) {
                     push(@vismsgs,'addcat');                      push(@vismsgs,'addcat');
                 } else {                  } else {
                     push(@vismsgs,'dc_addcat');                      push(@vismsgs,'dc_addcat');
Line 4885  sub update_selfenroll_config { Line 4917  sub update_selfenroll_config {
             }              }
             $r->print($cansetvis);              $r->print($cansetvis);
         }          }
     }      } 
     return;      return;
 }  }
   

Removed from v.1.249.2.6  
changed lines
  Added in v.1.265


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>