Diff for /loncom/interface/loncreateuser.pm between versions 1.288 and 1.295.2.2

version 1.288, 2009/04/04 20:06:37 version 1.295.2.2, 2009/05/23 12:37:51
Line 631  sub print_user_modification_page { Line 631  sub print_user_modification_page {
             &Apache::lonuserutils::can_create_user($ccdomain,$context,              &Apache::lonuserutils::can_create_user($ccdomain,$context,
                                                    $usertype);                                                     $usertype);
         if (!$cancreate) {          if (!$cancreate) {
             my $helplink = ' href="javascript:helpMenu('."'display'".')"';              my $helplink = 'javascript:helpMenu('."'display'".')';
             my %usertypetext = (              my %usertypetext = (
                 official   => 'institutional',                  official   => 'institutional',
                 unofficial => 'non-institutional',                  unofficial => 'non-institutional',
Line 641  sub print_user_modification_page { Line 641  sub print_user_modification_page {
                 $response =  '<span class="LC_warning">'.&mt('No match was found for the username ([_1]) in LON-CAPA domain: [_2]',$ccuname,$ccdomain).                  $response =  '<span class="LC_warning">'.&mt('No match was found for the username ([_1]) in LON-CAPA domain: [_2]',$ccuname,$ccdomain).
                             '</span><br />';                              '</span><br />';
             }              }
             $response .= '<span class="LC_warning">'.&mt("You are not authorized to create new $usertypetext{$usertype} users in this domain.").' '.&mt('Contact the <a[_1]>helpdesk</a> for assistance.',$helplink).'</span><br /><br />';              $response .= '<p class="LC_warning">'
                           .&mt("You are not authorized to create new $usertypetext{$usertype} users in this domain.")
                           .' '
                           .&mt('Please contact the [_1]helpdesk[_2] for assistance.'
                               ,'<a href="'.$helplink.'">','</a>')
                           .'</p><br />';
             $env{'form.phase'} = '';              $env{'form.phase'} = '';
             &print_username_entry_form($r,$context,$response);              &print_username_entry_form($r,$context,$response);
             return;              return;
Line 1230  sub display_existing_roles { Line 1235  sub display_existing_roles {
             }              }
         }          }
         if ($rolesdisplay == 1) {          if ($rolesdisplay == 1) {
               my $contextrole='';
               if ($env{'request.course.id'}) {
                   $contextrole = 'Existing Roles in this Course';
               } elsif ($env{'request.role'} =~ /^au\./) {
                   $contextrole = 'Existing Co-Author Roles in your Construction Space';
               } else {
                   $contextrole = 'Existing Roles in this Domain';
               }
             $r->print('              $r->print('
 <h3>'.$lt{'rer'}.'</h3>'.  <h3>'.$lt{'rer'}.'</h3>'.
   '<div>'.&mt($contextrole).'</div>'.
 &Apache::loncommon::start_data_table("LC_createuser").  &Apache::loncommon::start_data_table("LC_createuser").
 &Apache::loncommon::start_data_table_header_row().  &Apache::loncommon::start_data_table_header_row().
 '<th>'.$lt{'rev'}.'</th><th>'.$lt{'ren'}.'</th><th>'.$lt{'del'}.  '<th>'.$lt{'rev'}.'</th><th>'.$lt{'ren'}.'</th><th>'.$lt{'del'}.
Line 1283  sub new_coauthor_roles { Line 1297  sub new_coauthor_roles {
                   &Apache::loncommon::end_data_table_header_row()."\n".                    &Apache::loncommon::end_data_table_header_row()."\n".
                   &Apache::loncommon::start_data_table_row().'                    &Apache::loncommon::start_data_table_row().'
            <td>             <td>
             <input type=checkbox name="act_'.$cudom.'_'.$cuname.'_ca" />              <input type="checkbox" name="act_'.$cudom.'_'.$cuname.'_ca" />
            </td>             </td>
            <td>'.$lt{'cau'}.'</td>             <td>'.$lt{'cau'}.'</td>
            <td>'.$cudom.'_'.$cuname.'</td>             <td>'.$cudom.'_'.$cuname.'</td>
Line 1295  sub new_coauthor_roles { Line 1309  sub new_coauthor_roles {
 "javascript:pjump('."'date_end','End Date Co-Author',document.cu.end_$cudom\_$cuname\_ca.value,'end_$cudom\_$cuname\_ca','cu.pres','dateset'".')">'.$lt{'sed'}.'</a></td>'."\n".  "javascript:pjump('."'date_end','End Date Co-Author',document.cu.end_$cudom\_$cuname\_ca.value,'end_$cudom\_$cuname\_ca','cu.pres','dateset'".')">'.$lt{'sed'}.'</a></td>'."\n".
               &Apache::loncommon::end_data_table_row()."\n".                &Apache::loncommon::end_data_table_row()."\n".
               &Apache::loncommon::start_data_table_row()."\n".                &Apache::loncommon::start_data_table_row()."\n".
 '<td><input type=checkbox name="act_'.$cudom.'_'.$cuname.'_aa" /></td>  '<td><input type="checkbox" name="act_'.$cudom.'_'.$cuname.'_aa" /></td>
 <td>'.$lt{'caa'}.'</td>  <td>'.$lt{'caa'}.'</td>
 <td>'.$cudom.'_'.$cuname.'</td>  <td>'.$cudom.'_'.$cuname.'</td>
 <td><input type="hidden" name="start_'.$cudom.'_'.$cuname.'_aa" value="" />  <td><input type="hidden" name="start_'.$cudom.'_'.$cuname.'_aa" value="" />
Line 1346  sub new_domain_roles { Line 1360  sub new_domain_roles {
                $num_domain_level ++;                 $num_domain_level ++;
                $domaintext .=                 $domaintext .=
 &Apache::loncommon::start_data_table_row().  &Apache::loncommon::start_data_table_row().
 '<td><input type=checkbox name="act_'.$thisdomain.'_'.$role.'" /></td>  '<td><input type="checkbox" name="act_'.$thisdomain.'_'.$role.'" /></td>
 <td>'.$plrole.'</td>  <td>'.$plrole.'</td>
 <td>'.$thisdomain.'</td>  <td>'.$thisdomain.'</td>
 <td><input type="hidden" name="start_'.$thisdomain.'_'.$role.'" value="" />  <td><input type="hidden" name="start_'.$thisdomain.'_'.$role.'" value="" />
Line 2086  sub update_user_data { Line 2100  sub update_user_data {
             (!$forceid)) {              (!$forceid)) {
             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";
Line 2485  END Line 2499  END
             } else {              } else {
                 $r->print(&mt("You do not have the authority to change these fields given the user's current set of active/future [_1] roles:",$contextname));                  $r->print(&mt("You do not have the authority to change these fields given the user's current set of active/future [_1] roles:",$contextname));
             }              }
             $r->print('<span class="LC_cusr_emph">'.$rolestr.'</span><br />'.              my $helplink = 'javascript:helpMenu('."'display'".')';
                       &mt('Contact your <a href="[_1]">helpdesk</a> for more information.',"javascript:helpMenu('display')").'<br />');              $r->print('<span class="LC_cusr_emph">'.$rolestr.'</span><br />'
                        .&mt('Please contact your [_1]helpdesk[_2] for more information.'
                            ,'<a href="'.$helplink.'">','</a>')
                         .'<br />');
         }          }
         $r->print('<span class="LC_warning">'          $r->print('<span class="LC_warning">'
                   .$no_forceid_alert                    .$no_forceid_alert
Line 2672  sub update_roles { Line 2689  sub update_roles {
     if ($key=~m{^form\.del\:([^_]+)_cr\.cr/($match_domain)/($match_username)/(\w+)$}) {      if ($key=~m{^form\.del\:([^_]+)_cr\.cr/($match_domain)/($match_username)/(\w+)$}) {
                 my ($url,$rdom,$rnam,$rolename) = ($1,$2,$3,$4);                  my ($url,$rdom,$rnam,$rolename) = ($1,$2,$3,$4);
 # Delete custom role  # Delete custom role
                 $r->print(&mt('Deleting custom role [_1] by [_2]:[_3] in [_4]',                  $r->print(&mt('Deleting custom role [_1] by [_2] in [_3]',
                       $rolename,$rnam,$rdom,$url).': <b>'.                        $rolename,$rnam.':'.$rdom,$url).': <b>'.
                       &Apache::lonnet::assigncustomrole($env{'form.ccdomain'},                        &Apache::lonnet::assigncustomrole($env{'form.ccdomain'},
                          $env{'form.ccuname'},$url,$rdom,$rnam,$rolename,$now,                           $env{'form.ccuname'},$url,$rdom,$rnam,$rolename,$now,
                          0,1,$context).'</b><br />');                           0,1,$context).'</b><br />');
Line 2724  sub update_roles { Line 2741  sub update_roles {
                 my $result = &Apache::lonnet::assigncustomrole(                  my $result = &Apache::lonnet::assigncustomrole(
                                $env{'form.ccdomain'}, $env{'form.ccuname'},                                 $env{'form.ccdomain'}, $env{'form.ccuname'},
                                $url,$rdom,$rnam,$rolename,0,$now,undef,$context);                                 $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] in [_3]: [_4]',
                           $rolename,$rnam,$rdom,$url,'<b>'.$result.'</b>').'<br />');                            $rolename,$rnam.':'.$rdom,$url,'<b>'.$result.'</b>').'<br />');
                 if (!grep(/^cr$/,@rolechanges)) {                  if (!grep(/^cr$/,@rolechanges)) {
                     push(@rolechanges,'cr');                      push(@rolechanges,'cr');
                 }                  }
Line 3340  sub handler { Line 3357  sub handler {
     if ($env{'form.action'} ne 'dateselect') {      if ($env{'form.action'} ne 'dateselect') {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>"/adm/createuser",              ({href=>"/adm/createuser",
               text=>"User Management"});                text=>"User Management",
                 help=>'Course_Create_Class_List,Course_Change_Privileges,Course_View_Class_List,Course_Editing_Custom_Roles,Course_Add_Student,Course_Drop_Student,Course_Automated_Enrollment,Course_Self_Enrollment,Course_Manage_Group'});
     }      }
       #SD Following files not added to help, because the corresponding .tex-files seem to
       #be missing: Course_Approve_Selfenroll,Course_User_Logs,
     my ($permission,$allowed) =       my ($permission,$allowed) = 
         &Apache::lonuserutils::get_permission($context);          &Apache::lonuserutils::get_permission($context);
     if (!$allowed) {      if (!$allowed) {
Line 3646  sub print_main_menu { Line 3666  sub print_main_menu {
                                    listusers => 'Display Co-authors and Manage Multiple Users',                                     listusers => 'Display Co-authors and Manage Multiple Users',
                                  },                                   },
                        course => {                         course => {
                                    upload => 'File of Course Users',                                     upload => 'Upload a File of Course Users',
                                    singleuser => 'Single Course User',                                     singleuser => 'Add/Modify a Single Course User',
                                    listusers => 'Course User Lists',                                     listusers => 'Display Class Lists and Manage Multiple Users',
                                  },                                   },
                      );                  );
   my @menu = ( {categorytitle => 'Add Users',  
      items =>      my @menu =
      [{          (
          linktext => $links{$context}{'upload'},            { text => $links{$context}{'upload'},
          icon => 'sctr.png',              help => 'Course_Create_Class_List',
          #help => 'Course_Create_Class_List',              action => 'upload',
          url => '/adm/createuser?action=upload',              permission => $permission->{'cusr'},
          permission => $permission->{'cusr'},              },
          linktitle => 'Upload a CSV or a text file containing users.',            { text => $links{$context}{'singleuser'},
      },              help => 'Course_Change_Privileges',
      {              action => 'singleuser',
          linktext => $links{$context}{'singleuser'},              permission => $permission->{'cusr'},
          icon => 'edit-redo.png',              },
          #help => 'Course_Change_Privileges',            { text => $links{$context}{'listusers'},
          url => '/adm/createuser?action=singleuser',              help => 'Course_View_Class_List',
          permission => $permission->{'cusr'},              action => 'listusers',
          linktitle => 'Add a user with a certain role to this course.',              permission => ($permission->{'view'} || $permission->{'cusr'}),
      }]},            },
      {categorytitle => 'Administration',          );
      items =>      if ($context eq 'domain' || $context eq 'course') {
      [{          my $customlink =  { text => 'Edit Custom Roles',
          linktext => $links{$context}{'listusers'},                              help => 'Course_Editing_Custom_Roles',
                  icon => 'edit-find.png',                              action => 'custom',
                  #help => 'Course_View_Class_List',                              permission => $permission->{'custom'},
                  url => '/adm/createuser?action=listusers',                            };
          permission => ($permission->{'view'} || $permission->{'cusr'}),          push(@menu,$customlink);
          linktitle => 'Show and manage users of this course.',      }
      }]},      if ($context eq 'course') {
      {categorytitle => 'Configuration',          my ($cnum,$cdom) = &Apache::lonuserutils::get_course_identity();
      items =>          my @courselinks =
      [              (
      ]},                { text => 'Enroll a Single Student',
    );                   help => 'Course_Add_Student',
                    action => 'singlestudent',
     if ($context eq 'domain'){                   permission => $permission->{'cusr'},
                    },
  push(@{ $menu[1]->{items} },                { text => 'Drop Students',
  { linktext => 'Custom Roles',                  help => 'Course_Drop_Student',
  icon => 'emblem-photos.png',                  action => 'drop',
  #help => 'Course_Editing_Custom_Roles',                  permission => $permission->{'cusr'},
  url => '/adm/createuser?action=custom',                });
  permission => $permission->{'custom'},          if (!exists($permission->{'cusr_section'})) {
  linktitle => 'Configure a custom role.',              push(@courselinks,
  });                 { text => 'Automated Enrollment Manager',
                    help => 'Course_Automated_Enrollment',
     }elsif ($context eq 'course'){                   permission => (&Apache::lonnet::auto_run($cnum,$cdom)
     my ($cnum,$cdom) = &Apache::lonuserutils::get_course_identity();                                  && $permission->{'cusr'}),
                    url  => '/adm/populate',
         push(@{ $menu[0]->{items} },                   },
  { linktext => 'Single Student',                 { text => 'Configure User Self-enrollment',
             #help => 'Course_Add_Student',                   help => 'Course_Self_Enrollment',
  icon => 'list-add.png',                   action => 'selfenroll',
             url => '/adm/createuser?action=singlestudent',                   permission => $permission->{'cusr'},
  permission => $permission->{'cusr'},                 });
             linktitle => 'Add a user with the role student to this course.',          }
         });  
   
         push(@{ $menu[1]->{items} },    
  { linktext => 'Drop Students',  
  icon => 'edit-undo.png',  
             #help => 'Course_Drop_Student',  
             url => '/adm/createuser?action=drop',  
  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 ($env{'course.'.$env{'request.course.id'}.'.internal.selfenroll_approval'}) {          if ($env{'course.'.$env{'request.course.id'}.'.internal.selfenroll_approval'}) {
             push(@{ $menu[1]->{items} },              push(@courselinks,
                     {   linktext => 'Enrollment Requests',                      {   text => 'Enrollment Requests',
                         icon => 'selfenrl-queue.png',                          help => 'Course_Approve_Selfenroll',
                         #help => 'Course_Approve_Selfenroll',                          action => 'selfenrollqueue',
                         url => '/adm/createuser?action=selfenrollqueue',  
                         permission => $permission->{'cusr'},                          permission => $permission->{'cusr'},
                         linktitle =>'Approve or reject enrollment requests.',                      });
                 });  
         }          }
           push(@courselinks,
         if (!exists($permission->{'cusr_section'})){                 { text => 'Manage Course Groups',
                           help => 'Course_Manage_Group',
  push(@{ $menu[2]->{items} },                   permission => $permission->{'grp_manage'},
  { linktext => 'Automated Enrollment',                   url => '/adm/coursegroups?refpage=cusr',
  icon => 'roles.png',                 },
           #help => 'Course_Automated_Enrollment',                 { text => 'View Change Logs',
         permission => (&Apache::lonnet::auto_run($cnum,$cdom)                   help => 'Course_User_Logs',
                                 && $permission->{'cusr'}),                   action => 'changelogs',
  url  => '/adm/populate',                   permission => $permission->{'cusr'},
  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 5358  sub build_search_response { Line 5351  sub build_search_response {
                                 .&mt("You are not authorized to create new users in your current role's domain - [_1]."                                  .&mt("You are not authorized to create new users in your current role's domain - [_1]."
                                     ,'<span class="LC_cusr_emph">'.$env{'request.role.domain'}.'</span>')                                      ,'<span class="LC_cusr_emph">'.$env{'request.role.domain'}.'</span>')
                                 .'<br />'                                  .'<br />'
                                 .&mt('Contact the [_1]helpdesk[_2] if you need to create a new user.'                                  .&mt('Please contact the [_1]helpdesk[_2] if you need to create a new user.'
                                     ,' <a'.$helplink.'>'                                      ,' <a'.$helplink.'>'
                                     ,'</a>')                                      ,'</a>')
                                 .'<br /><br />';                                  .'<br /><br />';
Line 5753  sub update_selfenroll_config { Line 5746  sub update_selfenroll_config {
                         }                          }
                     } else {                      } else {
                         my @differences =                            my @differences =  
                             &compare_arrays(\@currnotified,\@newnotified);                              &Apache::loncommon::compare_arrays(\@currnotified,\@newnotified);
                         if (@differences > 0) {                          if (@differences > 0) {
                             if (@newnotified > 0) {                              if (@newnotified > 0) {
                                 $changes{'internal.selfenroll_notifylist'} = join(',',@newnotified);                                  $changes{'internal.selfenroll_notifylist'} = join(',',@newnotified);
Line 5763  sub update_selfenroll_config { Line 5756  sub update_selfenroll_config {
                         }                          }
                     }                      }
                 } else {                  } else {
                     my @differences = &compare_arrays(\@currnotified,\@newnotified);                      my @differences = &Apache::loncommon::compare_arrays(\@currnotified,\@newnotified);
                     if (@differences > 0) {                      if (@differences > 0) {
                         if (@newnotified > 0) {                          if (@newnotified > 0) {
                             $changes{'internal.selfenroll_notifylist'} = join(',',@newnotified);                              $changes{'internal.selfenroll_notifylist'} = join(',',@newnotified);
Line 5953  sub update_selfenroll_config { Line 5946  sub update_selfenroll_config {
     return;      return;
 }  }
   
 sub compare_arrays {  
     my ($arrayref1,$arrayref2) = @_;  
     my (@difference,%count);  
     @difference = ();  
     %count = ();  
     if ((ref($arrayref1) eq 'ARRAY') && (ref($arrayref2) eq 'ARRAY')) {   
         foreach my $element (@{$arrayref1}, @{$arrayref2}) { $count{$element}++; }  
         foreach my $element (keys(%count)) {  
             if ($count{$element} == 1) {  
                 push(@difference,$element);  
             }  
         }  
     }  
     return @difference;  
 }  
   
 sub get_selfenroll_titles {  sub get_selfenroll_titles {
     my @row = ('types','registered','enroll_dates','access_dates','section',      my @row = ('types','registered','enroll_dates','access_dates','section',
                'approval','limit');                 'approval','limit');

Removed from v.1.288  
changed lines
  Added in v.1.295.2.2


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