PDA

View Full Version : Users can't moderate trackbacks


Pogo
Fri 20th Mar '09, 10:21am
In blog_inlinemod.php in

if ($_POST['do'] == 'approvetrackback' OR $_POST['do'] == 'unapprovetrackback')


while ($trackback = $db->fetch_array($trackbacks))
{
$trackback = array_merge($trackback, convert_bits_to_array($trackback['blogoptions'], $vbulletin->bf_misc_vbblogoptions));
$entryinfo = array(
'state' => $comment['blog_state'],
'blogid' => $comment['blogid'],
'userid' => $comment['blog_userid'],
'usergroupid' => $comment['blog_usergroupid'],
'infractiongroupids' => $comment['blog_infractiongroupids'],
'membergroupids' => $comment['blog_membergroupids'],
'memberids' => $comment['memberids'],
'memberblogids' => $comment['memberblogids'],
'postedby_userid' => $comment['postedby_userid'],
'postedby_username' => $comment['postedby_username'],
'grouppermissions' => $comment['grouppermissions'],
'membermoderate' => $comment['membermoderate'],
);

cache_permissions($comment, false);
cache_permissions($entryinfo, false);

should be


while ($trackback = $db->fetch_array($trackbacks))
{
$trackback = array_merge($trackback, convert_bits_to_array($trackback['blogoptions'], $vbulletin->bf_misc_vbblogoptions));
$entryinfo = array(
'state' => $trackback['blog_state'],
'blogid' => $trackback['blogid'],
'userid' => $trackback['blog_userid'],
'usergroupid' => $trackback['blog_usergroupid'],
'infractiongroupids' => $trackback['blog_infractiongroupids'],
'membergroupids' => $trackback['blog_membergroupids'],
'memberids' => $trackback['memberids'],
'memberblogids' => $trackback['memberblogids'],
'postedby_userid' => $trackback['postedby_userid'],
'postedby_username' => $trackback['postedby_username'],
'grouppermissions' => $trackback['grouppermissions'],
'membermoderate' => $trackback['membermoderate'],
);

cache_permissions($trackback, false);
cache_permissions($entryinfo, false);

Similar for

if ($_POST['do'] == 'deletetrackback')

and

if ($_POST['do'] == 'dodeletetrackback')


I am not sure if these are all places.

Freddie Bingham
Mon 30th Mar '09, 4:13pm
I already see cache_permissions($trackback, false); in the last two cases.

Pogo
Mon 30th Mar '09, 5:37pm
cache_permissions($trackback, false); is there but look at the query and while loop above where you used $comment instead of $trackback

Freddie Bingham
Mon 30th Mar '09, 5:47pm
I must have fixed it in the past then as I see:

while ($trackback = $db->fetch_array($trackbacks)) (lines 892 and 955)
...
cache_permissions($trackback, false); (lines 910 & 991)

Pogo
Mon 30th Mar '09, 6:05pm
Perhaps I am totally wrong here.

I am talking about both entryinfo arrays


977 $entryinfo = array(
978 'blogid' => $comment['blogid'],
979 'userid' => $comment['blog_userid'],
980 'usergroupid' => $comment['blog_usergroupid'],
981 'infractiongroupids' => $comment['blog_infractiongroupids'],
982 'membergroupids' => $comment['blog_membergroupids'],
983 'memberids' => $comment['memberids'],
984 'memberblogids' => $comment['memberblogids'],
985 'postedby_userid' => $comment['postedby_userid'],
986 'postedby_username' => $comment['postedby_username'],
987 'grouppermissions' => $comment['grouppermissions'],
988 'membermoderate' => $comment['membermoderate'],
989 );

Why do you use $comment there? I don't think that this array is available but I haven't tested it.

Freddie Bingham
Mon 30th Mar '09, 6:21pm
Pogo for the win.