]> sipb.mit.edu Git - ikiwiki.git/commitdiff
Merge commit 'ecdfd1b8644bc926db008054ab6192e18351afed' into sipb
authorAnders Kaseorg <andersk@mit.edu>
Fri, 31 Jan 2014 05:50:01 +0000 (00:50 -0500)
committerAnders Kaseorg <andersk@mit.edu>
Fri, 31 Jan 2014 05:50:01 +0000 (00:50 -0500)
Conflicts:
IkiWiki/Plugin/git.pm

1  2 
IkiWiki/CGI.pm
IkiWiki/Plugin/git.pm
templates/editpage.tmpl

diff --cc IkiWiki/CGI.pm
Simple merge
index 79162d14105f58c19a2490f88feba84a12fc56f0,b02fc118ddc0e758bee82b22b7c49b713a1e3153..c9e2d391c54995b731bc6e1d5716f017323b3c26
@@@ -465,27 -480,39 +481,40 @@@ sub rcs_commit (@) 
                return $conflict if defined $conflict;
        }
  
-       rcs_add($file); 
-       return rcs_commit_staged($message, $user, $ipaddr);
+       rcs_add($params{file});
+       return rcs_commit_staged(
+               message => $params{message},
+               session => $params{session},
+       );
  }
  
- sub rcs_commit_staged ($$$) {
+ sub rcs_commit_staged (@) {
        # Commits all staged changes. Changes can be staged using rcs_add,
        # rcs_remove, and rcs_rename.
-       my ($message, $user, $ipaddr)=@_;
-       # Set the commit author and email to the web committer.
+       my %params=@_;
+       
        my %env=%ENV;
-       if (defined $user || defined $ipaddr) {
-               my $u=encode_utf8(defined $user ? $user : $ipaddr);
-               # MITLOGIN This algorithm could be improved
-               $ENV{GIT_AUTHOR_NAME}=IkiWiki::userinfo_get($u, "realname");
-               $ENV{GIT_AUTHOR_EMAIL}="$u\@mit.edu";
+       if (defined $params{session}) {
+               # Set the commit author and email based on web session info.
+               my $u;
+               if (defined $params{session}->param("name")) {
+                       $u=$params{session}->param("name");
+               }
+               elsif (defined $params{session}->remote_addr()) {
+                       $u=$params{session}->remote_addr();
+               }
+               if (defined $u) {
+                       $u=encode_utf8($u);
 -                      $ENV{GIT_AUTHOR_NAME}=$u;
 -                      $ENV{GIT_AUTHOR_EMAIL}="$u\@web";
++                      # MITLOGIN This algorithm could be improved
++                      $ENV{GIT_AUTHOR_NAME}=IkiWiki::userinfo_get($u, "realname");
++                      $ENV{GIT_AUTHOR_EMAIL}="$u\@mit.edu";
+               }
        }
  
-       $message = IkiWiki::possibly_foolish_untaint($message);
+       $params{message} = IkiWiki::possibly_foolish_untaint($params{message});
        my @opts;
-       if ($message !~ /\S/) {
+       if ($params{message} !~ /\S/) {
                # Force git to allow empty commit messages.
                # (If this version of git supports it.)
                my ($version)=`git --version` =~ /git version (.*)/;
Simple merge