Thread: Administrative and Maintenance Tools - Read PMs
View Single Post
  #74  
Old 12-03-2006, 10:00 AM
GeekDrew GeekDrew is offline
 
Join Date: Dec 2004
Location: Columbus, OH, USA
Posts: 31
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I installed this, but didn't like a few things. I'm using 3.6.4, and I had the serialized "to" field issue. I also didn't like that I had to promote someone to superadministrator just to review private messages -- because that let them have authority over administrators, which I did not want.

In order to change the security check, I did this:

In \includes\config.php

Find:
Code:
    //    ****** SUPER ADMINISTRATORS ******
    //    The users specified below will have permission to access the administrator permissions
    //    page, which controls the permissions of other administrators
$config['SpecialUsers']['superadministrators'] = '1';
Below that, add:
Code:
	//	****** PRIVATE MESSAGE ADMIN ******
	//	The users specified below will have permission to view all user PMs
$config['SpecialUsers']['privatemessageadmin'] = '1';
In \admin\read_pms.php

Find:
Code:
if (!in_array($vbulletin->userinfo['userid'], preg_split('#\s*,\s*#s', $vbulletin->config['SpecialUsers']['superadministrators'], -1, PREG_SPLIT_NO_EMPTY)) ) {
Replace that with:
Code:
if (!in_array($vbulletin->userinfo['userid'], preg_split('#\s*,\s*#s', $vbulletin->config['SpecialUsers']['privatemessageadmin'], -1, PREG_SPLIT_NO_EMPTY)) ) {
That takes care of the security issue -- now you can add user IDs to the privatemessageadmin variable, to give them permission to use Read PMs, but not give them full superadmin rights.

Next, to change the unserialization issue...

In \admin\read_pms.php

Find:
Code:
	//print_label_row('To', htmlspecialchars($pm['touserarray']));
	$to = is_array(unserialize($pm['touserarray'])) ? implode(", ", array_values(unserialize($pm['touserarray']))) : null;
	$to = ($to == 'Array') ? htmlspecialchars($pm['touserarray']) : $to;
	print_label_row('To' , $to);
Replace that with:
Code:
	$myarray = array_values(unserialize($pm['touserarray']));
	if (is_array($myarray[0])) print_label_row('To' , htmlspecialchars(implode(", ", array_values($myarray[0]))));
	if (is_array($myarray[1])) print_label_row('BCC' , htmlspecialchars(implode(", ", array_values($myarray[1]))));
And that takes care of the unserialization issue.

All of the above worked beautifully for me on 3.6.4... your mileage may vary.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01417 seconds
  • Memory Usage 1,774KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (6)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete