[dw-free] http://bugs.dwscoalition.org/show_bug.cgi?id=3790
[commit: http://hg.dwscoalition.org/dw-free/rev/bbbb800a510a]
http://bugs.dwscoalition.org/show_bug.cgi?id=3790
Don't export comments by suspended users. Exception: comments by suspended
users on their own journals.
Patch by
exor674.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=3790
Don't export comments by suspended users. Exception: comments by suspended
users on their own journals.
Patch by
Files modified:
- htdocs/export_comments.bml
--------------------------------------------------------------------------------
diff -r ad50bd960700 -r bbbb800a510a htdocs/export_comments.bml
--- a/htdocs/export_comments.bml Fri Aug 26 10:04:06 2011 +0800
+++ b/htdocs/export_comments.bml Tue Aug 02 19:18:22 2011 +0800
@@ -84,6 +84,21 @@
$posterids{$r->[3]} = 1 if $r->[3]; # don't include 0 (anonymous)
}
+ # load posterids
+ my $us = LJ::load_userids( keys %posterids );
+
+ my $userid = $u->userid;
+
+ my $filter = sub {
+ my $data = $_[0];
+ return unless $data->{posterid};
+ return if $data->{posterid} == $userid;
+
+ # If the poster is suspended, we treat the comment as if it was deleted
+ # This comment may have children, so it must still seem to exist.
+ $data->{state} = 'D' if $us->{$data->{posterid}}->is_suspended;
+ };
+
# now we have two choices: comments themselves or metadata
if ($mode eq 'comment_meta') {
# meta data is easy :)
@@ -94,12 +109,12 @@
$r->print("<maxid>$max</maxid>\n");
my $nextid = $startid + $gather;
$r->print("<nextid>$nextid</nextid>\n") unless ($nextid > $max);
- # load posterids
- my $us = LJ::load_userids(keys %posterids);
# now spit out the metadata
$r->print("<comments>\n");
while (my ($id, $data) = each %comments) {
+ $filter->( $data );
+
my $ret = "<comment id='$id'";
$ret .= " posterid='$data->{posterid}'" if $data->{posterid};
$ret .= " state='$data->{state}'" if $data->{state} ne 'A';
@@ -149,6 +164,8 @@
my $date = LJ::mysqldate_to_time($data->{datepost});
$date = LJ::time_to_w3c($date, 'Z');
+ $filter->( $data );
+
# print the data
my $ret = "<comment id='$id' jitemid='$data->{nodeid}'";
$ret .= " posterid='$data->{posterid}'" if $data->{posterid};
--------------------------------------------------------------------------------
