aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-04-25 20:24:44 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-04-25 20:24:44 +0000
commit5cd32c2eeeafc5e9f3feae7983fc48a9711462a3 (patch)
treea01a3e8d55ed3979ebcff0a00b63e00bd2fa21d3
parent5ae9c4f5d57d15343fb59f21e16317c712d80a44 (diff)
downloadikiwiki-5cd32c2eeeafc5e9f3feae7983fc48a9711462a3.tar
ikiwiki-5cd32c2eeeafc5e9f3feae7983fc48a9711462a3.tar.gz
- fix typo
- avoid sending commit mails to the user who made the commit
-rw-r--r--IkiWiki/CGI.pm2
-rw-r--r--IkiWiki/Rcs/SVN.pm18
-rw-r--r--IkiWiki/UserInfo.pm8
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};
}
}