diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-04-25 20:24:44 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-04-25 20:24:44 +0000 |
commit | 5cd32c2eeeafc5e9f3feae7983fc48a9711462a3 (patch) | |
tree | a01a3e8d55ed3979ebcff0a00b63e00bd2fa21d3 /IkiWiki | |
parent | 5ae9c4f5d57d15343fb59f21e16317c712d80a44 (diff) | |
download | ikiwiki-5cd32c2eeeafc5e9f3feae7983fc48a9711462a3.tar ikiwiki-5cd32c2eeeafc5e9f3feae7983fc48a9711462a3.tar.gz |
- fix typo
- avoid sending commit mails to the user who made the commit
Diffstat (limited to 'IkiWiki')
-rw-r--r-- | IkiWiki/CGI.pm | 2 | ||||
-rw-r--r-- | IkiWiki/Rcs/SVN.pm | 18 | ||||
-rw-r--r-- | IkiWiki/UserInfo.pm | 8 |
3 files changed, 16 insertions, 12 deletions
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 067886c70..e5cee9cb9 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -118,7 +118,7 @@ sub cgi_signin ($$) { #{{{ validate => sub { my $name=shift; length $name && - $name=~/$wiki_file_regexp/ && + $name=~/$config{wiki_file_regexp}/ && ! userinfo_get($name, "regdate"); }, ); diff --git a/IkiWiki/Rcs/SVN.pm b/IkiWiki/Rcs/SVN.pm index a2e2ff69c..358f46948 100644 --- a/IkiWiki/Rcs/SVN.pm +++ b/IkiWiki/Rcs/SVN.pm @@ -169,6 +169,14 @@ sub rcs_notify () { #{{{ error("REV is not set, not running from svn post-commit hook, cannot send notifications"); } my $rev=int(possibly_foolish_untaint($ENV{REV})); + + my $user=`svnlook author $config{svnrepo} -r $rev`; + chomp $user; + my $message=`svnlook log $config{svnrepo} -r $rev`; + if ($message=~/$svn_webcommit/) { + $user="$1"; + $message=$2; + } my @changed_pages; foreach my $change (`svnlook changed $config{svnrepo} -r $rev`) { @@ -179,7 +187,7 @@ sub rcs_notify () { #{{{ } require IkiWiki::UserInfo; - my @email_recipients=page_subscribers(@changed_pages); + my @email_recipients=commit_notify_list($user, @changed_pages); if (@email_recipients) { # TODO: if a commit spans multiple pages, this will send # subscribers a diff that might contain pages they did not @@ -187,14 +195,6 @@ sub rcs_notify () { #{{{ # reassemble into one mail with just the pages subscribed to. my $diff=`svnlook diff $config{svnrepo} -r $rev --no-diff-deleted`; - my $user=`svnlook author $config{svnrepo} -r $rev`; - chomp $user; - my $message=`svnlook log $config{svnrepo} -r $rev`; - if ($message=~/$svn_webcommit/) { - $user="$1"; - $message=$2; - } - my $subject="$config{wikiname} update of "; if (@changed_pages > 2) { $subject.="$changed_pages[0] $changed_pages[1] etc"; diff --git a/IkiWiki/UserInfo.pm b/IkiWiki/UserInfo.pm index b322b607e..bbcddb616 100644 --- a/IkiWiki/UserInfo.pm +++ b/IkiWiki/UserInfo.pm @@ -66,15 +66,19 @@ sub is_admin ($) { #{{{ return grep { $_ eq $user_name } @{$config{adminuser}}; } #}}} -sub page_subscribers (@) { #{{{ +sub commit_notify_list ($@) { #{{{ + my $committer=shift; + my @pages=@_; + my @ret; my $userinfo=userinfo_retrieve(); foreach my $user (keys %{$userinfo}) { + next if $user eq $committer; if (exists $userinfo->{$user}->{subscriptions} && length $userinfo->{$user}->{subscriptions} && exists $userinfo->{$user}->{email} && length $userinfo->{$user}->{email} && - grep { globlist_match($_, $userinfo->{$user}->{subscriptions}) } @_) { + grep { globlist_match($_, $userinfo->{$user}->{subscriptions}) } @pages) { push @ret, $userinfo->{$user}->{email}; } } |