'.$codetitles[0].' '."\n".
'";
} else {
- $output .= '';
+ $output .= ''."\n";
}
$output .= &Apache::lonhtmlcommon::row_closure();
$num ++;
@@ -447,16 +481,32 @@ function initialize_codes() {
' '."\n".
&Apache::lonhtmlcommon::row_closure().
&Apache::lonhtmlcommon::row_title($lt{'detd'},undef,'LC_evenrow_value').
- ' '.
+ ' '."\n".
&Apache::lonhtmlcommon::row_closure();
$num ++;
$i = $num%2;
if (($env{'user.name'} =~ /^$match_username$/) && (!$public)) {
- $output .= &Apache::lonhtmlcommon::row_title($lt{'opfi'},undef,$css[$i]).
- ' '.$lt{'uplf'}."\n".
- &Apache::lonhtmlcommon::row_closure();
- $num ++;
- $i = $num%2;
+ if ($homeserver) {
+ $output .= &Apache::lonhtmlcommon::row_title($lt{'opfi'},undef,$css[$i]).
+ ' '.
+ "\n".$lt{'uplf'}."\n".
+ &Apache::lonhtmlcommon::row_closure();
+ $num ++;
+ $i = $num%2;
+ }
+ } else {
+ my $lonhost = $r->dir_config('lonHostID');
+ my ($captchaform,$error) =
+ &Apache::loncommon::captcha_display('login',$lonhost);
+ if ($captchaform) {
+ $output .= &Apache::lonhtmlcommon::row_title(&mt('Validation'),undef,
+ $css[$i])."\n".
+ $captchaform."\n".
+ &Apache::lonhtmlcommon::row_closure();
+ $num ++;
+ $i = $num%2;
+ }
}
$output .= &Apache::lonhtmlcommon::row_title($lt{'fini'},undef,$css[$i]);
$output .= <dir_config('lonHostID');
+ my ($captcha_chk,$captcha_error) =
+ &Apache::loncommon::captcha_response('login',$lonhost);
+ if ($captcha_chk != 1) {
+ $r->print(&Apache::loncommon::start_page('Support request failed',undef,
+ {'function' => $function,
+ 'add_entries' => {
+ topmargin => "0",
+ marginheight => "0",
+ },
+ 'only_body' => 1,}));
+ if ($r->uri eq '/adm/helpdesk') {
+ &print_header($r,$url,'process');
+ }
+ $r->print(''.&mt('Support request failed').''.
+ ''.
+ &mt('Validation of the code you entered failed.').
+ &Apache::loncommon::end_page());
+ return;
+ }
+ }
my @ENVvars = ('HTTP_HOST','HTTP_USER_AGENT','REMOTE_ADDR','SERVER_ADDR','SERVER_NAME');
my @envvars = ('browser.os','browser.type','browser.version','user.home','request.role');
my @loncvars = ('user.name','user.domain','request.course.sec','request.course.id');
@@ -558,7 +634,6 @@ sub print_request_receipt {
sourceurl => 'URL',
date => 'Date/Time',
secn => 'Section',
- asup => 'A support request has been sent to',
warn => 'Warning: Problem with support e-mail address',
your => 'Your support request contained the following information',
sect => 'section',
@@ -566,8 +641,17 @@ sub print_request_receipt {
adin => 'Additional information recorded',
);
- my (@ok_ccs,@bad_ccs,$badccmsg,$okcclist);
- if ((defined($env{'user.name'})) && (defined($env{'form.cc'}))) {
+ my (@ok_ccs,@bad_ccs,$badccmsg,$okcclist,$public,$homeserver);
+ if (($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')) {
+ $public = 1;
+ } else {
+ if (($env{'user.name'} ne '') && ($env{'user.domain'} ne '')) {
+ $homeserver = &Apache::lonnet::homeserver($env{'user.name'},
+ $env{'user.domain'});
+ }
+ }
+
+ if (($homeserver) && (defined($env{'form.cc'}))) {
my @ccs;
if ($env{'form.cc'} =~ /,/) {
@ccs = split(/,/,$env{'form.cc'});
@@ -593,10 +677,11 @@ sub print_request_receipt {
$okcclist = join(', ',@ok_ccs);
}
if (@bad_ccs == 1) {
- $badccmsg .= ' '.&mt('The following Cc e-mail address is invalid: ').$bad_ccs[0];
+ if ($bad_ccs[0] ne '') {
+ $badccmsg .= ' '.&mt('The following Cc e-mail address is invalid: ').&cleanup_html($bad_ccs[0]);
+ }
} elsif (@bad_ccs > 1) {
- my $bad_cc_string = join(', ',@bad_ccs);
- $badccmsg .= ' '.&mt('The following Cc e-mail addresses are invalid: ').$bad_cc_string;
+ $badccmsg .= ' '.&mt('The following Cc e-mail addresses are invalid: '). &cleanup_html(join(', ',@bad_ccs));
}
}
$env{'form.user'} = "'".$env{'form.uname'}.':'.$env{'form.udom'}."'";
@@ -632,9 +717,12 @@ END
''.
"$lt{$item}: $showurl \n";
} elsif ($item eq 'cc') {
- $displaymsg .=
- ''.
- "$lt{$item}: $okcclist \n";
+ if ($okcclist) {
+ my $showcclist = &cleanup_html($okcclist);
+ $displaymsg .=
+ ''.
+ "$lt{$item}: $showcclist \n";
+ }
} else {
my $showitem = $env{'form.'.$item};
$showitem = &cleanup_html($showitem);
@@ -689,14 +777,20 @@ END
$bad_email = 1;
}
}
- if ($bad_email) {
- $r->print('
- '.$lt{'warn'}.''.
-&mt('As the e-mail address provided for this LON-CAPA server ([_1]) does not appear to be a valid e-mail address, your support request has not been sent to the LON-CAPA support staff or administrator at your institution.',$to).' '.&mt('Instead a copy has been sent to the LON-CAPA support team at Michigan State University.'));
- $to = 'helpdesk@lon-capa.org';
+
+ my $message;
+ if (!$bad_email) {
+ $message = &Apache::lonhtmlcommon::confirm_success(
+ &mt('A support request has been sent to [_1]',''.$to.''));
} else {
- $r->print(''.$lt{'asup'}.' '.$to.'');
+ $message = &Apache::lonhtmlcommon::confirm_success(
+ $lt{'warn'}.' '
+ .&mt('As the e-mail address provided for this LON-CAPA server ([_1]) does not appear to be a valid e-mail address, your support request has [_2]not[_3] been sent to the LON-CAPA support staff or administrator at your institution.',''.$to.'','','')
+ .' '.&mt('Instead a copy has been sent to the LON-CAPA support team at Michigan State University.'),1);
+ $to = 'helpdesk@lon-capa.org';
}
+ $r->print(&Apache::loncommon::confirmwrapper($message));
+
if (defined($env{'form.email'})) {
$env{'form.email'} =~ s/^\s+//;
$env{'form.email'} =~ s/\s+$//;
@@ -724,7 +818,7 @@ END
my $attachmentsize = '';
if ((defined($env{'user.name'})) && ($env{'user.name'} ne 'public')
&& ($env{'user.domain'} ne 'public')) {
- if ($env{'form.screenshot.filename'}) {
+ if ($homeserver && $env{'form.screenshot.filename'}) {
$attachmentsize = length($env{'form.screenshot'});
if ($attachmentsize > 131072) {
$displaymsg .= ' '.&mt('The uploaded screenshot file ([_1] bytes) included with your request exceeded the maximum allowed size - 128 KB, and has therefore been discarded.',$attachmentsize);
@@ -744,7 +838,7 @@ END
$fname = $1;
$displaymsg .= ' '
.&mt('An uploaded screenshot file [_1] ([_2] bytes) was included in the request sent by [_3].'
- ,''.$fname.''
+ ,''.$fname.''
,$attachmentsize
,$env{'user.name'}.':'.$env{'user.domain'}
);
@@ -767,9 +861,11 @@ END
Type =>'TEXT',
Data => $supportmsg,
);
- if (@ok_ccs > 0) {
- my $cc_string = join(', ',@ok_ccs);
- $msg->add("Cc" => $cc_string);
+ if ($homeserver) {
+ if (@ok_ccs > 0) {
+ my $cc_string = join(', ',@ok_ccs);
+ $msg->add("Cc" => $cc_string);
+ }
}
if ($bcc ne '') {
$msg->add("Bcc" => $bcc);
@@ -777,7 +873,7 @@ END
$msg->attr("content-type" => "text/plain");
$msg->attr("content-type.charset" => "UTF-8");
- if ($attachmentpath) {
+ if ($homeserver && $attachmentpath) {
my ($type, $encoding) = MIME::Types::by_suffix($attachmentpath);
$msg->attach(Type => $type,
Path => $attachmentpath,
@@ -850,11 +946,14 @@ sub print_header {
$helpdesk_link = '';
}
my %lt = &Apache::lonlocal::texthash (
- login => 'Log-in help',
- ask => 'Ask helpdesk',
- getst => 'Getting started guide',
- back => 'Back to last location',
+ login => 'Log-in help',
+ ask => 'Ask helpdesk',
+ getst => 'Getting started guide',
+ back => 'Back to last location',
headline => 'help/support',
+ stud => 'Students',
+ ifyo => 'If your problem is still unresolved, the form below can be used to send a question to the LON-CAPA helpdesk.',
+ cont => 'Contact your instructor instead.',
);
my ($getstartlink,$reviewtext);
if (-e $Apache::lonnet::perlvar{'lonDocRoot'}.'/adm/gettingstarted.html') {
@@ -863,42 +962,54 @@ sub print_header {
} else {
$reviewtext = &mt('Please review the information in "Log-in help" if you are unable to log-in.');
}
+ my $linkback;
if ($origurl eq '') {
- $origurl = 'javascript:history.go(-1)';
+ $linkback = 'javascript:history.go(-1)';
+ } else {
+ $linkback = &HTML::Entities::encode($origurl,'"<>&');
}
- $r->print(< |
-
+ my $loginhelp = &Apache::lonauth::loginhelpdisplay();
+ if ($loginhelp eq '') {
+ $loginhelp = '/adm/loginproblems.html';
+ }
+ $r->print(<<"END");
+
+
+ |
+
|
- |
+ |
-
- |
+
+ |
END
if ($command ne 'process') {
- $r->print('
+ my $stuwarn = &mt('Do [_1]not[_2] use this form to ask about course content.',
+ '','');
+ $r->print(<<"END");
- '.$reviewtext.' '
-.&mt('If your problem is still unresolved, the form below can be used to send a question to the LON-CAPA helpdesk.').' '
-.''.&mt('Students').': '.&mt('Do not use this form to ask questions about course content.').' '
-.&mt('Contact your instructor instead.')
-.'
+ | $reviewtext
+ $lt{'ifyo'}
+$lt{'stud'}:
+$stuwarn $lt{'cont'}
+
|
- ');
+
+END
}
$r->print('
');
@@ -908,8 +1019,11 @@ END
sub get_domain {
my $codedom;
if (exists($env{'form.codedom'})) {
- $codedom = $env{'form.codedom'};
- } elsif ($env{'request.course.id'}) {
+ if (&Apache::lonnet::domain($env{'form.codedom'}) ne '') {
+ return $env{'form.codedom'};
+ }
+ }
+ if ($env{'request.course.id'}) {
$codedom = $env{'course.'.$env{'request.course.id'}.'.domain'};
} elsif ($env{'request.role.domain'}) {
$codedom = $env{'request.role.domain'};
@@ -924,6 +1038,7 @@ sub cleanup_html {
my $outgoing;
if ($incoming ne '') {
$outgoing = $incoming;
+ $outgoing =~ s/;/;/g;
$outgoing =~ s/\#/#/g;
$outgoing =~ s/\&/&/g;
$outgoing =~ s/</g;
@@ -933,6 +1048,9 @@ sub cleanup_html {
$outgoing =~ s/"/"/g;
$outgoing =~ s/'/'/g;
$outgoing =~ s/\$/$/g;
+ $outgoing =~ s{/}{/}g;
+ $outgoing =~ s/=/=/g;
+ $outgoing =~ s/\\/\/g
}
return $outgoing;
}
500 Internal Server Error
Internal Server Error
The server encountered an internal error or
misconfiguration and was unable to complete
your request.
Please contact the server administrator at
root@localhost to inform them of the time this error occurred,
and the actions you performed just before this error.
More information about this error may be available
in the server error log.
| |