X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/ce785c87022842a53eda6a25088eb4299907f938..ce7966a82cf8d0043a771a1a5b26e3a953e909b2:/IkiWiki/CGI.pm diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 9277223f0..d7c85ecb8 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -15,7 +15,8 @@ sub printheader ($) { if ($config{sslcookie}) { print $session->header(-charset => 'utf-8', -cookie => $session->cookie(-httponly => 1, -secure => 1)); - } else { + } + else { print $session->header(-charset => 'utf-8', -cookie => $session->cookie(-httponly => 1)); } @@ -52,7 +53,7 @@ sub redirect ($$) { } sub decode_cgi_utf8 ($) { - # decode_form_utf8 method is needed for 5.10 + # decode_form_utf8 method is needed for 5.01 if ($] < 5.01) { my $cgi = shift; foreach my $f ($cgi->param) { @@ -65,8 +66,9 @@ sub decode_form_utf8 ($) { if ($] >= 5.01) { my $form = shift; foreach my $f ($form->field) { + my @value=map { decode_utf8($_) } $form->field($f); $form->field(name => $f, - value => decode_utf8($form->field($f)), + value => \@value, force => 1, ); } @@ -108,10 +110,14 @@ sub cgi_signin ($$) { template => {type => 'div'}, stylesheet => baseurl()."style.css", ); - my $buttons=["Login"]; - + # MITLOGIN: These should be restored when logins are allowed again. + #my $buttons=["Login"]; + my $buttons=[]; + if ($q->param("do") ne "signin" && !$form->submitted) { - $form->text(gettext("You need to log in first.")); + #$form->text(gettext("You need to log in first.")); + $form->text( + "You must have an MIT personal certificate to edit"); } $form->field(name => "do", type => "hidden", value => "signin", force => 1); @@ -205,13 +211,16 @@ sub cgi_prefs ($$) { force => 1); $form->field(name => "sid", type => "hidden", value => $session->id, force => 1); - $form->field(name => "email", size => 50, fieldset => "preferences"); + #$form->field(name => "email", size => 50, fieldset => "preferences"); + $form->field(name => "realname", size => 50, fieldset => "preferences"); my $user_name=$session->param("name"); if (! $form->submitted) { - $form->field(name => "email", force => 1, - value => userinfo_get($user_name, "email")); + #$form->field(name => "email", force => 1, + #value => userinfo_get($user_name, "email")); + $form->field(name => "realname", force => 1, + value => userinfo_get($user_name, "realname")); } if ($form->submitted eq 'Logout') { @@ -228,18 +237,25 @@ sub cgi_prefs ($$) { userinfo_set($user_name, 'email', $form->field('email')) || error("failed to set email"); } - + if (defined $form->field('realname')) { + userinfo_set($user_name, 'realname', $form->field('realname')) || + error("failed to set realname"); + } $form->text(gettext("Preferences saved.")); } showform($form, $buttons, $session, $q); } -sub cgi_custom_failure ($$) { - my $header=shift; +sub cgi_custom_failure ($$$) { + my $q=shift; + my $httpstatus=shift; my $message=shift; - print $header; + print $q->header( + -status => $httpstatus, + -charset => 'utf-8', + ); print $message; # Internet Explod^Hrer won't show custom 404 responses @@ -274,7 +290,7 @@ sub check_banned ($$) { $session->delete(); cgi_savesession($session); cgi_custom_failure( - $q->header(-status => "403 Forbidden"), + $q, "403 Forbidden", gettext("You are banned.")); } }