]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/CGI.pm
change word
[ikiwiki.git] / IkiWiki / CGI.pm
index f550b673a7acceaee1f35195565487b6857cab81..b424892101fbf1fdba85ea6235b1c2f3b0a32de0 100644 (file)
@@ -314,6 +314,11 @@ sub cgi_prefs ($$) { #{{{
        if (! is_admin($user_name)) {
                $form->field(name => "locked_pages", type => "hidden");
        }
+
+       if ($config{httpauth}) {
+               $form->field(name => "password", type => "hidden");
+               $form->field(name => "confirm_password", type => "hidden");
+       }
        
        if (! $form->submitted) {
                $form->field(name => "email", force => 1,
@@ -643,6 +648,7 @@ sub cgi () { #{{{
        
        # Everything below this point needs the user to be signed in.
        if (((! $config{anonok} || $do eq 'prefs') &&
+            (! $config{httpauth}) &&
             (! defined $session->param("name") ||
             ! userinfo_get($session->param("name"), "regdate"))) || $do eq 'signin') {
                cgi_signin($q, $session);
@@ -654,6 +660,22 @@ sub cgi () { #{{{
                
                return;
        }
+
+       if ($config{httpauth} && (! defined $session->param("name"))) {
+               if (! defined $q->remote_user()) {
+                       error("Could not determine authenticated username.");
+               }
+               else {
+                       $session->param("name", $q->remote_user());
+                       if (!userinfo_get($session->param("name"),"regdate")) {
+                               userinfo_setall($session->param("name"), {
+                                       email => "",
+                                       password => "",
+                                       regdate=>time,
+                               });
+                       }
+               }
+       }
        
        if ($do eq 'create' || $do eq 'edit') {
                cgi_editpage($q, $session);