Vergleich inc/datahandlers/pm.php - 1.8.7 - 1.8.21

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 101Zeile 101
			$this->set_error("missing_message");
return false;
}

			$this->set_error("missing_message");
return false;
}

 

// If the length of message is beyond SQL limitation for 'text' field
else if(strlen($message) > 65535)
{
$this->set_error("message_too_long", array('65535', strlen($message)));
return false;
}


		return true;
}


		return true;
}


Zeile 110Zeile 118
	 * @return boolean True when valid, false when invalid.
*/
function verify_sender()

	 * @return boolean True when valid, false when invalid.
*/
function verify_sender()

	{

	{

		global $db, $mybb, $lang;

		global $db, $mybb, $lang;





		$pm = &$this->data;

		$pm = &$this->data;





		// Return if we've already validated
if(!empty($pm['sender']))
{
return true;

		// Return if we've already validated
if(!empty($pm['sender']))
{
return true;

		}


		}


		// Fetch the senders profile data.
$sender = get_user($pm['fromid']);

		// Fetch the senders profile data.
$sender = get_user($pm['fromid']);





		// Collect user permissions for the sender.
$sender_permissions = user_permissions($pm['fromid']);

// Check if the sender is over their quota or not - if they are, disable draft sending
if(isset($pm['options']['savecopy']) && $pm['options']['savecopy'] != 0 && empty($pm['saveasdraft']))

		// Collect user permissions for the sender.
$sender_permissions = user_permissions($pm['fromid']);

// Check if the sender is over their quota or not - if they are, disable draft sending
if(isset($pm['options']['savecopy']) && $pm['options']['savecopy'] != 0 && empty($pm['saveasdraft']))

		{
if($sender_permissions['pmquota'] != "0" && $sender['totalpms'] >= $sender_permissions['pmquota'] && $this->admin_override != true)
{

		{
if($sender_permissions['pmquota'] != 0 && $sender['totalpms'] >= $sender_permissions['pmquota'] && $this->admin_override != true)
{

				$pm['options']['savecopy'] = 0;
}
}

				$pm['options']['savecopy'] = 0;
}
}

Zeile 141Zeile 149
			"uid" => $sender['uid'],
"username" => $sender['username']
);

			"uid" => $sender['uid'],
"username" => $sender['username']
);





		return true;
}


		return true;
}


Zeile 180Zeile 188
				if(empty($pm[$recipient_type]))
{
if($recipient_type == 'to' && !$pm['saveasdraft'])

				if(empty($pm[$recipient_type]))
{
if($recipient_type == 'to' && !$pm['saveasdraft'])

					{

					{

						$this->set_error("no_recipients");
return false;
}

						$this->set_error("no_recipients");
return false;
}

Zeile 293Zeile 301
			// See if the sender is on the recipients ignore list and that either
// - admin_override is set or
// - sender is an administrator

			// See if the sender is on the recipients ignore list and that either
// - admin_override is set or
// - sender is an administrator

			if(($this->admin_override != true && $sender_permissions['cancp'] != 1) && $sender_permissions['canoverridepm'] != 1)

			if($this->admin_override != true && $sender_permissions['canoverridepm'] != 1)

			{
if(!empty($user['ignorelist']) && strpos(','.$user['ignorelist'].',', ','.$pm['fromid'].',') !== false)
{

			{
if(!empty($user['ignorelist']) && strpos(','.$user['ignorelist'].',', ','.$pm['fromid'].',') !== false)
{

					$this->set_error('recipient_is_ignoring', array($user['username']));

					$this->set_error("recipient_is_ignoring", array(htmlspecialchars_uni($user['username'])));

				}

// Is the recipient only allowing private messages from their buddy list?

				}

// Is the recipient only allowing private messages from their buddy list?

				if($mybb->settings['allowbuddyonly'] == 1 && $user['receivefrombuddy'] == 1 && !empty($user['buddylist']) && strpos(','.$user['buddylist'].',', ','.$pm['fromid'].',') === false)

				if(empty($pm['saveasdraft']) && $mybb->settings['allowbuddyonly'] == 1 && $user['receivefrombuddy'] == 1 && !empty($user['buddylist']) && strpos(','.$user['buddylist'].',', ','.$pm['fromid'].',') === false)

				{
$this->set_error('recipient_has_buddy_only', array(htmlspecialchars_uni($user['username'])));
}

				{
$this->set_error('recipient_has_buddy_only', array(htmlspecialchars_uni($user['username'])));
}

Zeile 309Zeile 317
				// Can the recipient actually receive private messages based on their permissions or user setting?
if(($user['receivepms'] == 0 || $recipient_permissions['canusepms'] == 0) && empty($pm['saveasdraft']))
{

				// Can the recipient actually receive private messages based on their permissions or user setting?
if(($user['receivepms'] == 0 || $recipient_permissions['canusepms'] == 0) && empty($pm['saveasdraft']))
{

					$this->set_error("recipient_pms_disabled", array($user['username']));

					$this->set_error("recipient_pms_disabled", array(htmlspecialchars_uni($user['username'])));

					return false;
}
}

// Check to see if the user has reached their private message quota - if they have, email them.

					return false;
}
}

// Check to see if the user has reached their private message quota - if they have, email them.

			if($recipient_permissions['pmquota'] != "0" && $user['totalpms'] >= $recipient_permissions['pmquota'] && $recipient_permissions['cancp'] != 1 && $sender_permissions['cancp'] != 1 && empty($pm['saveasdraft']) && !$this->admin_override)

			if($recipient_permissions['pmquota'] != 0 && $user['totalpms'] >= $recipient_permissions['pmquota'] && $sender_permissions['cancp'] != 1 && empty($pm['saveasdraft']) && !$this->admin_override)

			{
if(trim($user['language']) != '' && $lang->language_exists($user['language']))
{

			{
if(trim($user['language']) != '' && $lang->language_exists($user['language']))
{

Zeile 359Zeile 367

if($this->admin_override != true)
{


if($this->admin_override != true)
{

					$this->set_error("recipient_reached_quota", array($user['username']));

					$this->set_error("recipient_reached_quota", array(htmlspecialchars_uni($user['username'])));

				}
}


				}
}


Zeile 395Zeile 403
		$pm = &$this->data;

// Check if post flooding is enabled within MyBB or if the admin override option is specified.

		$pm = &$this->data;

// Check if post flooding is enabled within MyBB or if the admin override option is specified.

		if($mybb->settings['pmfloodsecs'] > 0 && $pm['fromid'] != 0 && $this->admin_override == false)

		if($mybb->settings['pmfloodsecs'] > 0 && $pm['fromid'] != 0 && $this->admin_override == false && !is_moderator(0, '', $pm['fromid']))

		{
// Fetch the senders profile data.
$sender = get_user($pm['fromid']);

		{
// Fetch the senders profile data.
$sender = get_user($pm['fromid']);

Zeile 405Zeile 413
			$sender['lastpm'] = $db->fetch_field($query, "dateline");

// A little bit of calculation magic and moderator status checking.

			$sender['lastpm'] = $db->fetch_field($query, "dateline");

// A little bit of calculation magic and moderator status checking.

			if(TIME_NOW-$sender['lastpm'] <= $mybb->settings['pmfloodsecs'] && !is_moderator("", "", $pm['fromid']))

			if(TIME_NOW-$sender['lastpm'] <= $mybb->settings['pmfloodsecs'])

			{
// Oops, user has been flooding - throw back error message.
$time_to_wait = ($mybb->settings['pmfloodsecs'] - (TIME_NOW-$sender['lastpm'])) + 1;

			{
// Oops, user has been flooding - throw back error message.
$time_to_wait = ($mybb->settings['pmfloodsecs'] - (TIME_NOW-$sender['lastpm'])) + 1;

Zeile 421Zeile 429
			}
}
// All is well that ends well - return true.

			}
}
// All is well that ends well - return true.

		return true;
}

		return true;
}


/**
* Verifies if the various 'options' for sending PMs are valid.


/**
* Verifies if the various 'options' for sending PMs are valid.

Zeile 578Zeile 586

// This PM was previously a draft
if($draftcheck['pmid'])


// This PM was previously a draft
if($draftcheck['pmid'])

		{

		{

			if($draftcheck['deletetime'])
{
// This draft was a reply to a PM
$pm['pmid'] = $draftcheck['deletetime'];
$pm['do'] = "reply";

			if($draftcheck['deletetime'])
{
// This draft was a reply to a PM
$pm['pmid'] = $draftcheck['deletetime'];
$pm['do'] = "reply";

			}

			}


// Delete the old draft as we no longer need it
$db->delete_query("privatemessages", "pmid='{$draftcheck['pmid']}'");


// Delete the old draft as we no longer need it
$db->delete_query("privatemessages", "pmid='{$draftcheck['pmid']}'");

Zeile 602Zeile 610
			}

$plugins->run_hooks("datahandler_pm_insert_updatedraft", $this);

			}

$plugins->run_hooks("datahandler_pm_insert_updatedraft", $this);

			$db->insert_query("privatemessages", $this->pm_insert_data);





$this->pmid = $db->insert_query("privatemessages", $this->pm_insert_data);

$plugins->run_hooks("datahandler_pm_insert_updatedraft_commit", $this);


// If this is a draft, end it here - below deals with complete messages
return array(


// If this is a draft, end it here - below deals with complete messages
return array(

Zeile 681Zeile 692
			$this->pm_insert_data['toid'] = $recipient['uid'];

$plugins->run_hooks("datahandler_pm_insert", $this);

			$this->pm_insert_data['toid'] = $recipient['uid'];

$plugins->run_hooks("datahandler_pm_insert", $this);

 


			$this->pmid[] = $db->insert_query("privatemessages", $this->pm_insert_data);

			$this->pmid[] = $db->insert_query("privatemessages", $this->pm_insert_data);

 

$plugins->run_hooks("datahandler_pm_insert_commit", $this);


// If PM noices/alerts are on, show!
if($recipient['pmnotice'] == 1)


// If PM noices/alerts are on, show!
if($recipient['pmnotice'] == 1)

Zeile 701Zeile 715
		if($pm['pmid'])
{
if($pm['do'] == "reply" || $pm['do'] == "replyall")

		if($pm['pmid'])
{
if($pm['do'] == "reply" || $pm['do'] == "replyall")

			{

			{

				$sql_array = array(
'status' => 3,

				$sql_array = array(
'status' => 3,

					'statustime' => TIME_NOW
);
$db->update_query("privatemessages", $sql_array, "pmid={$pm['pmid']} AND uid={$pm['sender']['uid']}");
}

					'statustime' => TIME_NOW
);
$db->update_query("privatemessages", $sql_array, "pmid={$pm['pmid']} AND uid={$pm['sender']['uid']}");
}

			elseif($pm['do'] == "forward")
{
$sql_array = array(

			elseif($pm['do'] == "forward")
{
$sql_array = array(

Zeile 721Zeile 735
		// If we're saving a copy
if($pm['options']['savecopy'] != 0)
{

		// If we're saving a copy
if($pm['options']['savecopy'] != 0)
{

			if(isset($recipient_list['to']) && count($recipient_list['to']) == 1)
{

			if(isset($recipient_list['to']) && is_array($recipient_list['to']) && count($recipient_list['to']) == 1)
{

				$this->pm_insert_data['toid'] = $uid;
}
else

				$this->pm_insert_data['toid'] = $uid;
}
else

Zeile 735Zeile 749
			$this->pm_insert_data['receipt'] = 0;

$plugins->run_hooks("datahandler_pm_insert_savedcopy", $this);

			$this->pm_insert_data['receipt'] = 0;

$plugins->run_hooks("datahandler_pm_insert_savedcopy", $this);

 


			$db->insert_query("privatemessages", $this->pm_insert_data);

			$db->insert_query("privatemessages", $this->pm_insert_data);

 

$plugins->run_hooks("datahandler_pm_insert_savedcopy_commit", $this);


// Because the sender saved a copy, update their total pm count
require_once MYBB_ROOT."/inc/functions_user.php";


// Because the sender saved a copy, update their total pm count
require_once MYBB_ROOT."/inc/functions_user.php";