--- /dev/null
+#!/usr/bin/perl
+package IkiWiki::Plugin::moderatedcomments;
+
+use warnings;
+use strict;
+use IkiWiki 3.00;
+
+sub import {
+ hook(type => "getsetup", id => "moderatedcomments", call => \&getsetup);
+ hook(type => "checkcontent", id => "moderatedcomments", call => \&checkcontent);
+}
+
+sub getsetup () {
+ return
+ plugin => {
+ safe => 1,
+ rebuild => 0,
+ },
+ moderate_users => {
+ type => 'boolean',
+ example => 1,
+ description => 'Moderate comments of logged-in users?',
+ safe => 1,
+ rebuild => 0,
+ },
+}
+
+sub checkcontent (@) {
+ my %params=@_;
+
+ # only handle comments
+ return undef unless pagespec_match($params{page}, "postcomment(*)",
+ location => $params{page});
+
+ # admins and maybe users can comment w/o moderation
+ my $session=$params{session};
+ my $user=$session->param("name") if $session;
+ return undef if defined $user && (IkiWiki::is_admin($user) ||
+ (exists $config{moderate_users} && ! $config{moderate_users}));
+
+ return gettext("comment needs moderation");
+}
+
+1
* po: Fix breakage caused by changes to render code.
* mdwn: Avoid trying to use multimarkdown if it is not installed.
+ * moderatedcomments: New plugin to allow comment moderation w/o relying
+ on blogspam.net.
-- Joey Hess <joeyh@debian.org> Mon, 26 Oct 2009 11:53:32 -0400
## comment moderation
If you enable the [[blogspam]] plugin, comments that appear spammy will be
-held for moderation. Wiki admins can access the comment moderation queue
+held for moderation. (Or with the [[moderatedcomments]] plugin, all
+comments will be held.) Wiki admins can access the comment moderation queue
via a button on their Preferences page.
The comments are stored in `.ikiwiki/comments_pending/`, and can be
--- /dev/null
+[[!template id=plugin name=moderatedcomments author="[[Joey]]"]]
+[[!tag type/auth]]
+
+This plugin causes [[comments]] to be held for manual moderation.
+Admins can access the comment moderation queue via their preferences page.
+
+By default, all comments made by anyone who is not an admin will be held
+for moderation. The `moderate_users` setting can be set to false to avoid
+moderating comments of logged-in users, while still moderating anonymous
+comments.