Diff for /loncom/interface/lonsupportreq.pm between versions 1.80 and 1.85

version 1.80, 2015/06/18 20:19:06 version 1.85, 2017/01/18 21:07:31
Line 27 Line 27
 package Apache::lonsupportreq;  package Apache::lonsupportreq;
   
 use strict;  use strict;
 use MIME::Types;  
 use MIME::Lite;  
 use CGI::Cookie();  use CGI::Cookie();
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use Apache::loncommon();  use Apache::loncommon();
Line 79  sub handler { Line 77  sub handler {
     }      }
     return OK;      return OK;
 }  }
          
 sub print_request_form {  sub print_request_form {
     my ($r,$origurl,$function) = @_;      my ($r,$origurl,$function) = @_;
     my ($os,$browser,$bversion,$uhost,$uname,$udom,$uhome,$urole,$usec,$email,$cid,      my ($os,$browser,$bversion,$uname,$udom,$uhome,$urole,$usec,$email,$cid,
         $cdom,$cnum,$ctitle,$ccode,$sectionlist,$lastname,$firstname,$server,          $cdom,$cnum,$ctitle,$ccode,$sectionlist,$lastname,$firstname,$server,
         $formname,$public,$homeserver);          $formname,$public,$homeserver,$knownuser,$captcha_form,$captcha_error,
           $captcha,$recaptcha_version);
     $function = &Apache::loncommon::get_users_function() if (!$function);      $function = &Apache::loncommon::get_users_function() if (!$function);
     $ccode = '';      $ccode = '';
     $os = $env{'browser.os'};      $os = $env{'browser.os'};
     $browser = $env{'browser.type'};      $browser = $env{'browser.type'};
     $bversion = $env{'browser.version'};      $bversion = $env{'browser.version'};
     $uhost = $env{'request.host'};  
     if (($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')) {      if (($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')) {
         $public = 1;          $public = 1;
     } else {      } else {
Line 105  sub print_request_form { Line 103  sub print_request_form {
             }              }
         }          }
     }      }
       if (($env{'user.name'} =~ /^$match_username$/) && 
           ($env{'user.domain'} =~ /^$match_domain$/) && (!$public)) {
           $knownuser = 1;
       } else {
           my $lonhost = $r->dir_config('lonHostID');
           ($captcha_form,$captcha_error,$captcha,$recaptcha_version) =
               &Apache::loncommon::captcha_display('login',$lonhost);
       }
     if ($homeserver) {      if ($homeserver) {
         $uhome = $env{'user.home'};          $uhome = $env{'user.home'};
         $urole = $env{'request.role'};          $urole = $env{'request.role'};
Line 261  function initialize_codes() { Line 267  function initialize_codes() {
                 my $allidlist = $idlist{$codetitles[0]};                  my $allidlist = $idlist{$codetitles[0]};
                 $jscript .= &Apache::courseclassifier::courseset_js_start($formname,$longtitles_str,$allidlist);                  $jscript .= &Apache::courseclassifier::courseset_js_start($formname,$longtitles_str,$allidlist);
                 $jscript .= $scripttext;                  $jscript .= $scripttext;
                 $jscript .= &Apache::courseclassifier::javascript_code_selections($formname,@codetitles);                  $jscript .= &Apache::courseclassifier::javascript_code_selections($formname,\@codetitles);
                 $loaditems = '';                  $loaditems = '';
             }              }
         }          }
Line 277  $loaditems Line 283  $loaditems
 </script>  </script>
 <script type="text/javascript" src="/res/adm/includes/file_upload.js"></script>  <script type="text/javascript" src="/res/adm/includes/file_upload.js"></script>
 ENDJS  ENDJS
       if ($recaptcha_version >=2) {
           $js.= "\n".'<script src="https://www.google.com/recaptcha/api.js"></script>'."\n";
       }
     my %add_entries = (      my %add_entries = (
                        style    => "margin-top:0px;margin-bottom:0px;",                         style    => "margin-top:0px;margin-bottom:0px;",
                        onload   => "initialize_codes();",                         onload   => "initialize_codes();",
Line 330  ENDJS Line 339  ENDJS
                &Apache::lonhtmlcommon::row_closure();                 &Apache::lonhtmlcommon::row_closure();
     $num ++;      $num ++;
     $i = $num%2;      $i = $num%2;
     if (($env{'user.name'} =~ /^$match_username$/) && (!$public)) {      if ($knownuser) {
         if ($homeserver) {           if ($homeserver) {
             $output .= &Apache::lonhtmlcommon::row_title($html_lt{'emac'},undef,$css[$i]).              $output .= &Apache::lonhtmlcommon::row_title($html_lt{'emac'},undef,$css[$i]).
                        '<input type="text" size="50" name="cc" value="" /><br />'."\n".                         '<input type="text" size="50" name="cc" value="" /><br />'."\n".
                        &Apache::lonhtmlcommon::row_closure();                         &Apache::lonhtmlcommon::row_closure();
Line 344  ENDJS Line 353  ENDJS
                      &HTML::Entities::encode($udom,'"<>&').'" />'."\n";                       &HTML::Entities::encode($udom,'"<>&').'" />'."\n";
     my $uname_input = '<input type="hidden" name="uname" value="'.      my $uname_input = '<input type="hidden" name="uname" value="'.
                       &HTML::Entities::encode($uname,'"<>&').'" />'."\n";                         &HTML::Entities::encode($uname,'"<>&').'" />'."\n"; 
     if (($env{'user.name'} =~ /^$match_username$/) &&       if ($knownuser) {
         ($env{'user.domain'} =~ /^$match_domain$/) && (!$public)) {  
         $output .= '<i>'.$html_lt{'unme'}.'</i>:&nbsp;'.$uname.'&nbsp;&nbsp;<i>'.$html_lt{'doma'}.'</i>:&nbsp;'.$udom.$udom_input.$uname_input;          $output .= '<i>'.$html_lt{'unme'}.'</i>:&nbsp;'.$uname.'&nbsp;&nbsp;<i>'.$html_lt{'doma'}.'</i>:&nbsp;'.$udom.$udom_input.$uname_input;
     } else {      } else {
         my $udomform = '';          my $udomform = '';
Line 505  ENDJS Line 513  ENDJS
                &Apache::lonhtmlcommon::row_closure();                 &Apache::lonhtmlcommon::row_closure();
     $num ++;      $num ++;
     $i = $num%2;       $i = $num%2; 
     if (($env{'user.name'} =~ /^$match_username$/) && (!$public)) {      if ($knownuser) {
         if ($homeserver) {          if ($homeserver) {
             $output .= &Apache::lonhtmlcommon::row_title($html_lt{'opfi'},undef,$css[$i])              $output .= &Apache::lonhtmlcommon::row_title($html_lt{'opfi'},undef,$css[$i])
                 .' <input type="file" name="screenshot" class="flUpload" size="20" />'                  .' <input type="file" name="screenshot" class="flUpload" size="20" />'
Line 516  ENDJS Line 524  ENDJS
             $i = $num%2;              $i = $num%2;
         }          }
     } else {      } else {
         my $lonhost = $r->dir_config('lonHostID');          if ($captcha_form) {
         my ($captchaform,$error) =   
             &Apache::loncommon::captcha_display('login',$lonhost);  
         if ($captchaform) {  
             $output .= &Apache::lonhtmlcommon::row_title(              $output .= &Apache::lonhtmlcommon::row_title(
                            '<span title="'.&mt('required').'">'.                             '<span title="'.&mt('required').'">'.
                            &mt('Validation').                             &mt('Validation').
                            ' <span class="LC_info">*</span></span>'                             ' <span class="LC_info">*</span></span>'
                       ,undef,$css[$i]).                        ,undef,$css[$i]).
                        $captchaform."\n".                         $captcha_form."\n".
                        &Apache::lonhtmlcommon::row_closure();                         &Apache::lonhtmlcommon::row_closure();
             $num ++;              $num ++;
             $i = $num%2;              $i = $num%2;
Line 880  END Line 885  END
         }          }
     }      }
     
     my $msg = MIME::Lite->new(      my $cc_string;
                  From    => $from,  
                  To      => $to,  
                  Subject => $subject,  
                  Type    =>'TEXT',  
                  Data    => $supportmsg,  
                  );  
     if ($homeserver) {      if ($homeserver) {
         if (@ok_ccs > 0) {          if (@ok_ccs > 0) {
             my $cc_string = join(', ',@ok_ccs);              $cc_string = join(', ',@ok_ccs);
             $msg->add("Cc" => $cc_string);  
         }          }
     }      }
     if ($bcc ne '') {  
         $msg->add("Bcc" => $bcc);  
     }  
     $msg->attr("content-type"         => "text/plain");  
     $msg->attr("content-type.charset" => "UTF-8");  
   
     if ($homeserver && $attachmentpath) {  
         my ($type, $encoding) = MIME::Types::by_suffix($attachmentpath);  
         $msg->attach(Type     => $type,  
                      Path     => $attachmentpath,  
                      Filename => $fname  
                      );  
   
     } else {      my $attachment_text;
       unless ($homeserver && $attachmentpath) {
         my $envdata = '';          my $envdata = '';
         foreach my $var (@cookievars) {          foreach my $var (@cookievars) {
             $envdata .= "$var: $cookies{$var}\n";              $envdata .= "$var: $cookies{$var}\n";
Line 920  END Line 907  END
         foreach my $var (@loncvars) {          foreach my $var (@loncvars) {
             $envdata .= "$var: $env{$var}\n";              $envdata .= "$var: $env{$var}\n";
         }          }
         $msg->attach(Type => 'TEXT',          $attachment_text = $envdata;
                      Data => $envdata);  
     }      }
       
 ### Send it:      # Compose and send a MIME email
     $msg->send('sendmail');      &Apache::loncommon::mime_email($from, $to, $subject, $supportmsg, $cc_string, $bcc, 
                                       $attachmentpath, $fname, $attachment_text);
   
     if ($attachmentpath =~ m|$Apache::lonnet::perlvar{'lonDaemons'}/tmp/helprequests/(\d+)/[^/]+|) {      if ($attachmentpath =~ m|$Apache::lonnet::perlvar{'lonDaemons'}/tmp/helprequests/(\d+)/[^/]+|) {
         unlink($attachmentpath);          unlink($attachmentpath);

Removed from v.1.80  
changed lines
  Added in v.1.85


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