[dw-free] Cannot approve posts in moderated communities for users on dversion 9
[commit: http://hg.dwscoalition.org/dw-free/rev/8fc08dcd6273]
http://bugs.dwscoalition.org/show_bug.cgi?id=3147
Let the system props through the second time around; we did a proper check
on them the first time (they were checked then frozen before coming into the
moderation queue)
Patch by
exor674.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=3147
Let the system props through the second time around; we did a proper check
on them the first time (they were checked then frozen before coming into the
moderation queue)
Patch by
Files modified:
- cgi-bin/ljprotocol.pl
- htdocs/community/moderate.bml
--------------------------------------------------------------------------------
diff -r b5317034bbfe -r 8fc08dcd6273 cgi-bin/ljprotocol.pl
--- a/cgi-bin/ljprotocol.pl Sat Oct 16 22:25:11 2010 +0800
+++ b/cgi-bin/ljprotocol.pl Sun Oct 17 10:40:19 2010 +0800
@@ -1029,6 +1029,8 @@ sub common_event_validation
## handle meta-data (properties)
LJ::load_props("log");
+
+ my $allow_system = $flags->{allow_system} || {};
foreach my $pname (keys %{$req->{'props'}})
{
my $p = LJ::get_prop("log", $pname);
@@ -1041,7 +1043,7 @@ sub common_event_validation
# This is a system logprop
# fail with unknown metadata here?
- if ( $p->{ownership} eq 'system' ) {
+ if ( $p->{ownership} eq 'system' && !( $allow_system == 1 || $allow_system->{$pname} ) ) {
$pname =~ s/[^\w]//g;
return fail($err,205,$pname);
}
diff -r b5317034bbfe -r 8fc08dcd6273 htdocs/community/moderate.bml
--- a/htdocs/community/moderate.bml Sat Oct 16 22:25:11 2010 +0800
+++ b/htdocs/community/moderate.bml Sun Oct 17 10:40:19 2010 +0800
@@ -90,7 +90,13 @@ body<=
$req->{user} = $poster->user;
$req->{username} = $poster->user;
if ($mode eq 'approve_do') {
- my $res = LJ::Protocol::do_request('postevent', $req, \$prot_err, {'nomod'=>1, 'noauth'=>1});
+ # allow all system logprops
+ # we've already made sure that the original user didn't provide any system ones
+ my $res = LJ::Protocol::do_request('postevent', $req, \$prot_err, {
+ nomod => 1,
+ noauth => 1,
+ allow_system => 1,
+ });
if ($res) { # succeeded
$success = 1;
$ret .= "<?h1 $ML{'.posted.header'} h1?><?p $ML{'.posted.text'} p?>";
--------------------------------------------------------------------------------
