Zeile 187 | Zeile 187 |
---|
}
// Has the user tried to use their email address or username as a password?
|
}
// Has the user tried to use their email address or username as a password?
|
if($user['email'] === $user['password'] || $user['username'] === $user['password'])
| if(!empty($user['email']) && !empty($user['username']))
|
{
|
{
|
$this->set_error('bad_password_security'); return false; }
| if($user['email'] === $user['password'] || $user['username'] === $user['password'] || strpos($user['password'], $user['email']) !== false || strpos($user['password'], $user['username']) !== false || strpos($user['email'], $user['password']) !== false || strpos($user['username'], $user['password']) !== false) { $this->set_error('bad_password_security'); return false; } }
|
// See if the board has "require complex passwords" enabled. if($mybb->settings['requirecomplexpasswords'] == 1) {
| // See if the board has "require complex passwords" enabled. if($mybb->settings['requirecomplexpasswords'] == 1) {
|
Zeile 209 | Zeile 214 |
---|
if(isset($user['password2']) && $user['password'] !== $user['password2']) { $this->set_error("passwords_dont_match");
|
if(isset($user['password2']) && $user['password'] !== $user['password2']) { $this->set_error("passwords_dont_match");
|
return false; }
// MD5 the password $user['md5password'] = md5($user['password']);
// Generate our salt $user['salt'] = generate_salt();
// Combine the password and salt $user['saltedpw'] = salt_password($user['md5password'], $user['salt']);
| return false; }
|
// Generate the user login key $user['loginkey'] = generate_loginkey();
|
// Generate the user login key $user['loginkey'] = generate_loginkey();
|
| // Combine the password and salt $password_fields = create_password($user['password'], false, $user); $user = array_merge($user, $password_fields);
|
return true; }
| return true; }
|
Zeile 238 | Zeile 238 |
---|
} /** * Verifies if an email address is valid or not.
|
} /** * Verifies if an email address is valid or not.
|
* * @return boolean True when valid, false when invalid. */
| * * @return boolean True when valid, false when invalid. */
|
function verify_email() { global $mybb;
$user = &$this->data;
|
function verify_email() { global $mybb;
$user = &$this->data;
|
|
|
// Check if an email address has actually been entered. if(trim_blank_chrs($user['email']) == '')
|
// Check if an email address has actually been entered. if(trim_blank_chrs($user['email']) == '')
|
{
| {
|
$this->set_error('missing_email');
|
$this->set_error('missing_email');
|
return false;
| return false;
|
}
// Check if this is a proper email address.
| }
// Check if this is a proper email address.
|
Zeile 262 | Zeile 262 |
---|
}
// Check banned emails
|
}
// Check banned emails
|
if(is_banned_email($user['email'], true))
| if(is_banned_email($user['email'], true))
|
{ $this->set_error('banned_email'); return false;
| { $this->set_error('banned_email'); return false;
|
Zeile 303 | Zeile 303 |
---|
{ $website = &$this->data['website'];
|
{ $website = &$this->data['website'];
|
if(empty($website) || my_strtolower($website) == 'http://' || my_strtolower($website) == 'https://')
| if(!empty($website) && !my_validate_url($website))
|
{
|
{
|
$website = ''; return true; }
// Does the website start with http(s)://? if(my_strtolower(substr($website, 0, 4)) != "http") { // Website does not start with http://, let's see if the user forgot. $website = "http://".$website;
| $website = 'http://'.$website;
|
}
|
}
|
if(!filter_var($website, FILTER_VALIDATE_URL))
| if(!empty($website) && !my_validate_url($website))
|
{ $this->set_error('invalid_website');
|
{ $this->set_error('invalid_website');
|
return false;
| return false;
|
}
return true;
| }
return true;
|
Zeile 364 | Zeile 356 |
---|
$birthday['day'] = (int)$birthday['day']; $birthday['month'] = (int)$birthday['month']; $birthday['year'] = (int)$birthday['year'];
|
$birthday['day'] = (int)$birthday['day']; $birthday['month'] = (int)$birthday['month']; $birthday['year'] = (int)$birthday['year'];
|
|
|
// Error if a day and month exists, and the birthday day and range is not in range if($birthday['day'] != 0 || $birthday['month'] != 0)
|
// Error if a day and month exists, and the birthday day and range is not in range if($birthday['day'] != 0 || $birthday['month'] != 0)
|
{
| {
|
if($birthday['day'] < 1 || $birthday['day'] > 31 || $birthday['month'] < 1 || $birthday['month'] > 12 || ($birthday['month'] == 2 && $birthday['day'] > 29)) { $this->set_error("invalid_birthday"); return false; }
|
if($birthday['day'] < 1 || $birthday['day'] > 31 || $birthday['month'] < 1 || $birthday['month'] > 12 || ($birthday['month'] == 2 && $birthday['day'] > 29)) { $this->set_error("invalid_birthday"); return false; }
|
}
| }
|
// Check if the day actually exists. $months = get_bdays($birthday['year']); if($birthday['month'] != 0 && $birthday['day'] > $months[$birthday['month']-1])
|
// Check if the day actually exists. $months = get_bdays($birthday['year']); if($birthday['month'] != 0 && $birthday['day'] > $months[$birthday['month']-1])
|
{ $this->set_error("invalid_birthday"); return false; }
| { $this->set_error("invalid_birthday"); return false; }
|
// Error if a year exists and the year is out of range if($birthday['year'] != 0 && ($birthday['year'] < (date("Y")-100)) || $birthday['year'] > date("Y")) { $this->set_error("invalid_birthday");
|
// Error if a year exists and the year is out of range if($birthday['year'] != 0 && ($birthday['year'] < (date("Y")-100)) || $birthday['year'] > date("Y")) { $this->set_error("invalid_birthday");
|
return false; } else if($birthday['year'] == date("Y")) {
| return false; } elseif($birthday['year'] == date("Y")) {
|
// Error if birth date is in future if($birthday['month'] > date("m") || ($birthday['month'] == date("m") && $birthday['day'] > date("d"))) {
| // Error if birth date is in future if($birthday['month'] > date("m") || ($birthday['month'] == date("m") && $birthday['day'] > date("d"))) {
|
Zeile 447 | Zeile 439 |
---|
{ $this->set_error("invalid_birthday_privacy"); return false;
|
{ $this->set_error("invalid_birthday_privacy"); return false;
|
| } else if ($birthdayprivacy == 'age') { $birthdayyear = &$this->data['birthday']['year']; if(empty($birthdayyear)) { $this->set_error("conflicted_birthday_privacy"); return false; }
|
} return true; }
| } return true; }
|
Zeile 461 | Zeile 462 |
---|
$user = &$this->data;
if(isset($user['postnum']) && $user['postnum'] < 0)
|
$user = &$this->data;
if(isset($user['postnum']) && $user['postnum'] < 0)
|
{
| {
|
$this->set_error("invalid_postnum"); return false; }
| $this->set_error("invalid_postnum"); return false; }
|
Zeile 514 | Zeile 515 |
---|
$profilefield['editableby'] = -1; }
|
$profilefield['editableby'] = -1; }
|
if(!is_member($profilefield['editableby'], array('usergroup' => $user['usergroup'], 'additionalgroups' => $user['additionalgroups'])))
| if(isset($user['usergroup']))
|
{
|
{
|
continue; }
| $usergroup = $user['usergroup']; } else { $usergroup = ''; } if(isset($user['additionalgroups'])) { $additionalgroups = $user['additionalgroups']; } else { $additionalgroups = ''; }
if(!is_member($profilefield['editableby'], array('usergroup' => $usergroup, 'additionalgroups' => $additionalgroups))) { continue; }
|
// Does this field have a minimum post count? if(!isset($this->data['profile_fields_editable']) && !empty($profilefield['postnum']) && $profilefield['postnum'] > $user['postnum']) { continue; }
|
// Does this field have a minimum post count? if(!isset($this->data['profile_fields_editable']) && !empty($profilefield['postnum']) && $profilefield['postnum'] > $user['postnum']) { continue; }
|
|
|
$profilefield['type'] = htmlspecialchars_uni($profilefield['type']); $profilefield['name'] = htmlspecialchars_uni($profilefield['name']); $thing = explode("\n", $profilefield['type'], "2");
| $profilefield['type'] = htmlspecialchars_uni($profilefield['type']); $profilefield['name'] = htmlspecialchars_uni($profilefield['name']); $thing = explode("\n", $profilefield['type'], "2");
|
Zeile 532 | Zeile 550 |
---|
$field = "fid{$profilefield['fid']}";
if(!isset($profile_fields[$field]))
|
$field = "fid{$profilefield['fid']}";
if(!isset($profile_fields[$field]))
|
{
| {
|
$profile_fields[$field] = '';
|
$profile_fields[$field] = '';
|
}
| }
|
// If the profile field is required, but not filled in, present error. if($type != "multiselect" && $type != "checkbox")
|
// If the profile field is required, but not filled in, present error. if($type != "multiselect" && $type != "checkbox")
|
{
| {
|
if(trim($profile_fields[$field]) == "" && $profilefield['required'] == 1 && !defined('IN_ADMINCP') && THIS_SCRIPT != "modcp.php") { $this->set_error('missing_required_profile_field', array($profilefield['name']));
| if(trim($profile_fields[$field]) == "" && $profilefield['required'] == 1 && !defined('IN_ADMINCP') && THIS_SCRIPT != "modcp.php") { $this->set_error('missing_required_profile_field', array($profilefield['name']));
|
Zeile 556 | Zeile 574 |
---|
$expoptions = explode("\n", $thing[1]); $expoptions = array_map('trim', $expoptions); foreach($profile_fields[$field] as $value)
|
$expoptions = explode("\n", $thing[1]); $expoptions = array_map('trim', $expoptions); foreach($profile_fields[$field] as $value)
|
{
| {
|
if(!in_array(htmlspecialchars_uni($value), $expoptions))
|
if(!in_array(htmlspecialchars_uni($value), $expoptions))
|
{
| {
|
$this->set_error('bad_profile_field_values', array($profilefield['name']));
|
$this->set_error('bad_profile_field_values', array($profilefield['name']));
|
}
| }
|
if($options) { $options .= "\n"; } $options .= $db->escape_string($value);
|
if($options) { $options .= "\n"; } $options .= $db->escape_string($value);
|
} }
| } }
|
elseif($type == "select" || $type == "radio") { $expoptions = explode("\n", $thing[1]);
| elseif($type == "select" || $type == "radio") { $expoptions = explode("\n", $thing[1]);
|
Zeile 575 | Zeile 593 |
---|
if(!in_array(htmlspecialchars_uni($profile_fields[$field]), $expoptions) && trim($profile_fields[$field]) != "") { $this->set_error('bad_profile_field_values', array($profilefield['name']));
|
if(!in_array(htmlspecialchars_uni($profile_fields[$field]), $expoptions) && trim($profile_fields[$field]) != "") { $this->set_error('bad_profile_field_values', array($profilefield['name']));
|
} $options = $db->escape_string($profile_fields[$field]); } else {
| } $options = $db->escape_string($profile_fields[$field]); } else {
|
if($profilefield['maxlength'] > 0 && my_strlen($profile_fields[$field]) > $profilefield['maxlength'])
|
if($profilefield['maxlength'] > 0 && my_strlen($profile_fields[$field]) > $profilefield['maxlength'])
|
{
| {
|
$this->set_error('max_limit_reached', array($profilefield['name'], $profilefield['maxlength']));
|
$this->set_error('max_limit_reached', array($profilefield['name'], $profilefield['maxlength']));
|
}
| }
|
|
|
if(!empty($profilefield['regex']) && !preg_match("#".$profilefield['regex']."#i", $profile_fields[$field]))
| if(!empty($profilefield['regex']) && !empty($profile_fields[$field]) && !preg_match("#".$profilefield['regex']."#i", $profile_fields[$field]))
|
{ $this->set_error('bad_profile_field_value', array($profilefield['name'])); }
| { $this->set_error('bad_profile_field_value', array($profilefield['name'])); }
|
Zeile 593 | Zeile 611 |
---|
$options = $db->escape_string($profile_fields[$field]); } $user['user_fields'][$field] = $options;
|
$options = $db->escape_string($profile_fields[$field]); } $user['user_fields'][$field] = $options;
|
} }
| } }
|
return true; }
| return true; }
|
Zeile 611 | Zeile 629 |
---|
$user = &$this->data;
// Does the referrer exist or not?
|
$user = &$this->data;
// Does the referrer exist or not?
|
if($mybb->settings['usereferrals'] == 1 && $user['referrer'] != '')
| if($mybb->settings['usereferrals'] == 1 && !empty($user['referrer']))
|
{ $referrer = get_user_by_username($user['referrer']);
|
{ $referrer = get_user_by_username($user['referrer']);
|
if(empty($referrer['uid']))
| if(!$referrer)
|
{ $this->set_error('invalid_referrer', array($user['referrer'])); return false;
| { $this->set_error('invalid_referrer', array($user['referrer'])); return false;
|
Zeile 626 | Zeile 644 |
---|
else { $user['referrer_uid'] = 0;
|
else { $user['referrer_uid'] = 0;
|
}
| }
|
return true; }
| return true; }
|
Zeile 641 | Zeile 659 |
---|
global $mybb;
$options = &$this->data['options'];
|
global $mybb;
$options = &$this->data['options'];
|
| if(!is_array($options)) { $options = array(); }
|
// Verify yes/no options. $this->verify_yesno_option($options, 'allownotices', 1); $this->verify_yesno_option($options, 'hideemail', 0);
| // Verify yes/no options. $this->verify_yesno_option($options, 'allownotices', 1); $this->verify_yesno_option($options, 'hideemail', 0);
|
Zeile 671 | Zeile 694 |
---|
}
if(array_key_exists('subscriptionmethod', $options))
|
}
if(array_key_exists('subscriptionmethod', $options))
|
{
| {
|
// Value out of range $options['subscriptionmethod'] = (int)$options['subscriptionmethod']; if($options['subscriptionmethod'] < 0 || $options['subscriptionmethod'] > 3)
| // Value out of range $options['subscriptionmethod'] = (int)$options['subscriptionmethod']; if($options['subscriptionmethod'] < 0 || $options['subscriptionmethod'] > 3)
|
Zeile 687 | Zeile 710 |
---|
if($options['dstcorrection'] < 0 || $options['dstcorrection'] > 2) { $options['dstcorrection'] = 0;
|
if($options['dstcorrection'] < 0 || $options['dstcorrection'] > 2) { $options['dstcorrection'] = 0;
|
| }
if($options['dstcorrection'] == 1) { $options['dst'] = 1; } elseif($options['dstcorrection'] == 0) { $options['dst'] = 0;
|
} }
|
} }
|
if($options['dstcorrection'] == 1) { $options['dst'] = 1; } else if($options['dstcorrection'] == 0) { $options['dst'] = 0; }
if($this->method == "insert" || (isset($options['threadmode']) && $options['threadmode'] != "linear" && $options['threadmode'] != "threaded"))
| if($this->method == "insert" || (isset($options['threadmode']) && $options['threadmode'] != "linear" && $options['threadmode'] != "threaded" && $options['threadmode'] != ''))
|
{
|
{
|
if($mybb->settings['threadusenetstyle']) { $options['threadmode'] = 'threaded'; } else { $options['threadmode'] = 'linear'; }
| $options['threadmode'] = '';
|
}
// Verify the "threads per page" option.
| }
// Verify the "threads per page" option.
|
Zeile 842 | Zeile 858 |
---|
$user['away']['awayreason'] = ''; return true; }
|
$user['away']['awayreason'] = ''; return true; }
|
else if($user['away']['returndate'])
| elseif($user['away']['returndate'])
|
{
|
{
|
| // Validate the awayreason length, since the db holds 200 chars for this field $reasonlength = my_strlen($user['away']['awayreason']); if($reasonlength > 200) { $this->set_error("away_too_long", array($reasonlength - 200)); return false; }
|
list($returnday, $returnmonth, $returnyear) = explode('-', $user['away']['returndate']); if(!$returnday || !$returnmonth || !$returnyear) {
| list($returnday, $returnmonth, $returnyear) = explode('-', $user['away']['returndate']); if(!$returnday || !$returnmonth || !$returnyear) {
|
Zeile 859 | Zeile 883 |
---|
/** * Verifies if a language is valid for this user or not.
|
/** * Verifies if a language is valid for this user or not.
|
*
| *
|
* @return boolean True when valid, false when invalid. */ function verify_language() { global $lang;
|
* @return boolean True when valid, false when invalid. */ function verify_language() { global $lang;
|
|
|
$language = &$this->data['language'];
// An invalid language has been specified? if($language != '' && !$lang->language_exists($language)) { $this->set_error("invalid_language");
|
$language = &$this->data['language'];
// An invalid language has been specified? if($language != '' && !$lang->language_exists($language)) { $this->set_error("invalid_language");
|
return false; } return true;
| return false; } return true;
|
}
|
}
|
|
|
/** * Verifies if a style is valid for this user or not. *
| /** * Verifies if a style is valid for this user or not. *
|
Zeile 885 | Zeile 909 |
---|
function verify_style() { global $lang;
|
function verify_style() { global $lang;
|
$user = &$this->data;
if($user['style']) { $theme = get_theme($user['style']);
| $user = &$this->data;
if(!empty($user['style'])) { $theme = get_theme($user['style']);
|
if(empty($theme) || !is_member($theme['allowedgroups'], $user) && $theme['allowedgroups'] != 'all') { $this->set_error('invalid_style');
| if(empty($theme) || !is_member($theme['allowedgroups'], $user) && $theme['allowedgroups'] != 'all') { $this->set_error('invalid_style');
|
Zeile 906 | Zeile 930 |
---|
* Verifies if this is coming from a spam bot or not * * @return boolean True when valid, false when invalid.
|
* Verifies if this is coming from a spam bot or not * * @return boolean True when valid, false when invalid.
|
*/
| */
|
function verify_checkfields() { $user = &$this->data;
| function verify_checkfields() { $user = &$this->data;
|
Zeile 921 | Zeile 945 |
---|
}
/**
|
}
/**
|
* Verifies if the user timezone is valid.
| * Verifies if the user timezone is valid.
|
* If the timezone is invalid, the board default is used. * * @return boolean True when timezone was valid, false otherwise */ function verify_timezone() {
|
* If the timezone is invalid, the board default is used. * * @return boolean True when timezone was valid, false otherwise */ function verify_timezone() {
|
$user = &$this->data;
| global $mybb;
$user = &$this->data;
|
$timezones = get_supported_timezones();
|
$timezones = get_supported_timezones();
|
if(!array_key_exists($user['timezone'], $timezones))
| if(!isset($user['timezone']) || !array_key_exists($user['timezone'], $timezones))
|
{ $user['timezone'] = $mybb->settings['timezoneoffset']; return false; }
return true;
|
{ $user['timezone'] = $mybb->settings['timezoneoffset']; return false; }
return true;
|
}
| }
|
/** * Validate all user assets.
| /** * Validate all user assets.
|
Zeile 969 | Zeile 995 |
---|
else { unset($user['username']);
|
else { unset($user['username']);
|
} }
| } }
|
if($this->method == "insert" || array_key_exists('usertitle', $user)) { $this->verify_usertitle();
| if($this->method == "insert" || array_key_exists('usertitle', $user)) { $this->verify_usertitle();
|
Zeile 1052 | Zeile 1078 |
---|
$this->verify_birthday_privacy(); } if($this->method == "insert" || array_key_exists('style', $user))
|
$this->verify_birthday_privacy(); } if($this->method == "insert" || array_key_exists('style', $user))
|
{
| {
|
$this->verify_style();
|
$this->verify_style();
|
| } if($this->method == "insert" || array_key_exists('signature', $user)) { $this->verify_signature();
|
}
$plugins->run_hooks("datahandler_user_validate", $this);
| }
$plugins->run_hooks("datahandler_user_validate", $this);
|
Zeile 1091 | Zeile 1121 |
---|
$user = &$this->data;
|
$user = &$this->data;
|
$array = array('postnum', 'threadnum', 'avatar', 'avatartype', 'additionalgroups', 'displaygroup', 'icq', 'aim', 'yahoo', 'skype', 'google', 'bday', 'signature', 'style', 'dateformat', 'timeformat', 'notepad');
| $array = array('postnum', 'threadnum', 'avatar', 'avatartype', 'additionalgroups', 'displaygroup', 'icq', 'skype', 'google', 'bday', 'signature', 'style', 'dateformat', 'timeformat', 'notepad', 'regip', 'lastip', 'coppa_user');
|
foreach($array as $value) { if(!isset($user[$value])) { $user[$value] = ''; }
|
foreach($array as $value) { if(!isset($user[$value])) { $user[$value] = ''; }
|
| }
$array = array('subscriptionmethod', 'dstcorrection'); foreach($array as $value) { if(!isset($user['options'][$value])) { $user['options'][$value] = ''; } }
// If user is being created from ACP, there is no last visit or last active if(defined('IN_ADMINCP')) { $user['lastvisit'] = $user['lastactive'] = 0;
|
}
$this->user_insert_data = array( "username" => $db->escape_string($user['username']),
|
}
$this->user_insert_data = array( "username" => $db->escape_string($user['username']),
|
"password" => $user['saltedpw'],
| "password" => $user['password'],
|
"salt" => $user['salt'], "loginkey" => $user['loginkey'], "email" => $db->escape_string($user['email']),
| "salt" => $user['salt'], "loginkey" => $user['loginkey'], "email" => $db->escape_string($user['email']),
|
Zeile 1119 | Zeile 1164 |
---|
"lastvisit" => (int)$user['lastvisit'], "website" => $db->escape_string($user['website']), "icq" => (int)$user['icq'],
|
"lastvisit" => (int)$user['lastvisit'], "website" => $db->escape_string($user['website']), "icq" => (int)$user['icq'],
|
"aim" => $db->escape_string($user['aim']), "yahoo" => $db->escape_string($user['yahoo']),
| |
"skype" => $db->escape_string($user['skype']), "google" => $db->escape_string($user['google']), "birthday" => $user['bday'],
| "skype" => $db->escape_string($user['skype']), "google" => $db->escape_string($user['google']), "birthday" => $user['bday'],
|
Zeile 1149 | Zeile 1192 |
---|
"dateformat" => $db->escape_string($user['dateformat']), "timeformat" => $db->escape_string($user['timeformat']), "regip" => $db->escape_binary($user['regip']),
|
"dateformat" => $db->escape_string($user['dateformat']), "timeformat" => $db->escape_string($user['timeformat']), "regip" => $db->escape_binary($user['regip']),
|
| "lastip" => $db->escape_binary($user['lastip']),
|
"language" => $db->escape_string($user['language']), "showcodebuttons" => (int)$user['options']['showcodebuttons'], "sourceeditor" => (int)$user['options']['sourceeditor'],
| "language" => $db->escape_string($user['language']), "showcodebuttons" => (int)$user['options']['showcodebuttons'], "sourceeditor" => (int)$user['options']['sourceeditor'],
|
Zeile 1158 | Zeile 1202 |
---|
"awaydate" => (int)$user['away']['date'], "returndate" => $user['away']['returndate'], "awayreason" => $db->escape_string($user['away']['awayreason']),
|
"awaydate" => (int)$user['away']['date'], "returndate" => $user['away']['returndate'], "awayreason" => $db->escape_string($user['away']['awayreason']),
|
"notepad" => $db->escape_string($user['notepad']),
| |
"referrer" => (int)$user['referrer_uid'], "referrals" => 0, "buddylist" => '', "ignorelist" => '',
|
"referrer" => (int)$user['referrer_uid'], "referrals" => 0, "buddylist" => '', "ignorelist" => '',
|
"pmfolders" => '',
| "pmfolders" => "0**$%%$1**$%%$2**$%%$3**$%%$4**",
|
"notepad" => '', "warningpoints" => 0, "moderateposts" => 0,
| "notepad" => '', "warningpoints" => 0, "moderateposts" => 0,
|
Zeile 1179 | Zeile 1222 |
---|
{ $this->user_insert_data['dst'] = 1; }
|
{ $this->user_insert_data['dst'] = 1; }
|
else if($user['options']['dstcorrection'] == 0)
| elseif($user['options']['dstcorrection'] == 0)
|
{ $this->user_insert_data['dst'] = 0; }
| { $this->user_insert_data['dst'] = 0; }
|
Zeile 1265 | Zeile 1308 |
---|
{ $this->user_update_data['username'] = $db->escape_string($user['username']); }
|
{ $this->user_update_data['username'] = $db->escape_string($user['username']); }
|
if(isset($user['saltedpw']))
| if(isset($user['password'])) { $this->user_update_data['password'] = $user['password']; } if(isset($user['salt']))
|
{
|
{
|
$this->user_update_data['password'] = $user['saltedpw'];
| |
$this->user_update_data['salt'] = $user['salt'];
|
$this->user_update_data['salt'] = $user['salt'];
|
| } if(isset($user['loginkey'])) {
|
$this->user_update_data['loginkey'] = $user['loginkey'];
|
$this->user_update_data['loginkey'] = $user['loginkey'];
|
}
| }
|
if(isset($user['email'])) {
|
if(isset($user['email'])) {
|
$this->user_update_data['email'] = $user['email'];
| $this->user_update_data['email'] = $db->escape_string($user['email']);
|
} if(isset($user['postnum']))
|
} if(isset($user['postnum']))
|
{
| {
|
$this->user_update_data['postnum'] = (int)$user['postnum'];
|
$this->user_update_data['postnum'] = (int)$user['postnum'];
|
}
| }
|
if(isset($user['threadnum'])) { $this->user_update_data['threadnum'] = (int)$user['threadnum']; } if(isset($user['avatar']))
|
if(isset($user['threadnum'])) { $this->user_update_data['threadnum'] = (int)$user['threadnum']; } if(isset($user['avatar']))
|
{
| {
|
$this->user_update_data['avatar'] = $db->escape_string($user['avatar']); $this->user_update_data['avatartype'] = $db->escape_string($user['avatartype']); }
| $this->user_update_data['avatar'] = $db->escape_string($user['avatar']); $this->user_update_data['avatartype'] = $db->escape_string($user['avatartype']); }
|
Zeile 1299 | Zeile 1348 |
---|
if(isset($user['displaygroup'])) { $this->user_update_data['displaygroup'] = (int)$user['displaygroup'];
|
if(isset($user['displaygroup'])) { $this->user_update_data['displaygroup'] = (int)$user['displaygroup'];
|
}
| }
|
if(isset($user['usertitle']))
|
if(isset($user['usertitle']))
|
{
| {
|
$this->user_update_data['usertitle'] = $db->escape_string($user['usertitle']); } if(isset($user['regdate'])) { $this->user_update_data['regdate'] = (int)$user['regdate'];
|
$this->user_update_data['usertitle'] = $db->escape_string($user['usertitle']); } if(isset($user['regdate'])) { $this->user_update_data['regdate'] = (int)$user['regdate'];
|
}
| }
|
if(isset($user['lastactive']))
|
if(isset($user['lastactive']))
|
{
| {
|
$this->user_update_data['lastactive'] = (int)$user['lastactive']; } if(isset($user['lastvisit'])) { $this->user_update_data['lastvisit'] = (int)$user['lastvisit'];
|
$this->user_update_data['lastactive'] = (int)$user['lastactive']; } if(isset($user['lastvisit'])) { $this->user_update_data['lastvisit'] = (int)$user['lastvisit'];
|
}
| }
|
if(isset($user['signature'])) { $this->user_update_data['signature'] = $db->escape_string($user['signature']);
| if(isset($user['signature'])) { $this->user_update_data['signature'] = $db->escape_string($user['signature']);
|
Zeile 1327 | Zeile 1376 |
---|
if(isset($user['icq'])) { $this->user_update_data['icq'] = (int)$user['icq'];
|
if(isset($user['icq'])) { $this->user_update_data['icq'] = (int)$user['icq'];
|
} if(isset($user['aim'])) { $this->user_update_data['aim'] = $db->escape_string($user['aim']); } if(isset($user['yahoo'])) { $this->user_update_data['yahoo'] = $db->escape_string($user['yahoo']);
| |
} if(isset($user['skype'])) {
| } if(isset($user['skype'])) {
|
Zeile 1370 | Zeile 1411 |
---|
} if(isset($user['regip'])) {
|
} if(isset($user['regip'])) {
|
$this->user_update_data['regip'] = $db->escape_string($user['regip']);
| $this->user_update_data['regip'] = $db->escape_binary($user['regip']); } if(isset($user['lastip'])) { $this->user_update_data['lastip'] = $db->escape_binary($user['lastip']);
|
} if(isset($user['language'])) {
| } if(isset($user['language'])) {
|
Zeile 1378 | Zeile 1423 |
---|
} if(isset($user['away'])) {
|
} if(isset($user['away'])) {
|
$this->user_update_data['away'] = $user['away']['away'];
| $this->user_update_data['away'] = (int)$user['away']['away'];
|
$this->user_update_data['awaydate'] = $db->escape_string($user['away']['date']); $this->user_update_data['returndate'] = $db->escape_string($user['away']['returndate']); $this->user_update_data['awayreason'] = $db->escape_string($user['away']['awayreason']); } if(isset($user['notepad']))
|
$this->user_update_data['awaydate'] = $db->escape_string($user['away']['date']); $this->user_update_data['returndate'] = $db->escape_string($user['away']['returndate']); $this->user_update_data['awayreason'] = $db->escape_string($user['away']['awayreason']); } if(isset($user['notepad']))
|
{
| {
|
$this->user_update_data['notepad'] = $db->escape_string($user['notepad']); } if(isset($user['usernotes'])) { $this->user_update_data['usernotes'] = $db->escape_string($user['usernotes']);
|
$this->user_update_data['notepad'] = $db->escape_string($user['notepad']); } if(isset($user['usernotes'])) { $this->user_update_data['usernotes'] = $db->escape_string($user['usernotes']);
|
}
| }
|
if(isset($user['options']) && is_array($user['options'])) { foreach($user['options'] as $option => $value) { $this->user_update_data[$option] = $value; }
|
if(isset($user['options']) && is_array($user['options'])) { foreach($user['options'] as $option => $value) { $this->user_update_data[$option] = $value; }
|
}
| }
|
if(array_key_exists('coppa_user', $user))
|
if(array_key_exists('coppa_user', $user))
|
{
| {
|
$this->user_update_data['coppauser'] = (int)$user['coppa_user']; } // First, grab the old user details for later use. $old_user = get_user($user['uid']);
// If old user has new pmnotice and new user has = yes, keep old value
|
$this->user_update_data['coppauser'] = (int)$user['coppa_user']; } // First, grab the old user details for later use. $old_user = get_user($user['uid']);
// If old user has new pmnotice and new user has = yes, keep old value
|
if($old_user['pmnotice'] == "2" && $this->user_update_data['pmnotice'] == 1)
| if(isset($this->user_update_data['pmnotice']) && $old_user['pmnotice'] == "2" && $this->user_update_data['pmnotice'] == 1)
|
{ unset($this->user_update_data['pmnotice']);
|
{ unset($this->user_update_data['pmnotice']);
|
}
| }
|
$plugins->run_hooks("datahandler_user_update", $this);
| $plugins->run_hooks("datahandler_user_update", $this);
|
Zeile 1440 | Zeile 1485 |
---|
{ $query = $db->simple_select("userfields", "*", "ufid='{$user['uid']}'"); $fields = $db->fetch_array($query);
|
{ $query = $db->simple_select("userfields", "*", "ufid='{$user['uid']}'"); $fields = $db->fetch_array($query);
|
if(!$fields['ufid'])
| if(empty($fields['ufid']))
|
{ $user_fields = array( 'ufid' => $user['uid'] );
|
{ $user_fields = array( 'ufid' => $user['uid'] );
|
|
|
$fields_array = $db->show_fields_from("userfields"); foreach($fields_array as $field) {
| $fields_array = $db->show_fields_from("userfields"); foreach($fields_array as $field) {
|
Zeile 1480 | Zeile 1525 |
---|
{ // User was latest to register, update stats update_stats(array("numusers" => "+0"));
|
{ // User was latest to register, update stats update_stats(array("numusers" => "+0"));
|
} }
| } }
|
return true; }
| return true; }
|
Zeile 1499 | Zeile 1544 |
---|
// Yes, validating is required. if(count($this->get_errors()) > 0)
|
// Yes, validating is required. if(count($this->get_errors()) > 0)
|
{
| {
|
die('The user is not valid.');
|
die('The user is not valid.');
|
}
$this->delete_uids = array_map('intval', (array)$delete_uids);
| }
$this->delete_uids = array_map('intval', (array)$delete_uids);
|
foreach($this->delete_uids as $key => $uid)
|
foreach($this->delete_uids as $key => $uid)
|
{
| {
|
if(!$uid || is_super_admin($uid) || $uid == $mybb->user['uid']) { // Remove super admins
| if(!$uid || is_super_admin($uid) || $uid == $mybb->user['uid']) { // Remove super admins
|
Zeile 1514 | Zeile 1559 |
---|
} }
|
} }
|
$plugins->run_hooks('datahandler_user_delete_start', $this);
$this->delete_uids = implode(',', $this->delete_uids);
| $plugins->run_hooks('datahandler_user_delete_start', $this);
$this->delete_uids = implode(',', $this->delete_uids);
if(empty($this->delete_uids)) { $this->deleted_users = 0; $this->return_values = array( "deleted_users" => $this->deleted_users );
return $this->return_values; }
|
$this->delete_content();
// Delete the user
| $this->delete_content();
// Delete the user
|
Zeile 1575 | Zeile 1630 |
---|
$plugins->run_hooks("datahandler_user_delete_end", $this);
// Update cache
|
$plugins->run_hooks("datahandler_user_delete_end", $this);
// Update cache
|
$cache->update_banned();
| |
$cache->update_moderators(); $cache->update_forumsdisplay(); $cache->update_reportedcontent(); $cache->update_awaitingactivation();
|
$cache->update_moderators(); $cache->update_forumsdisplay(); $cache->update_reportedcontent(); $cache->update_awaitingactivation();
|
| $cache->update_birthdays();
|
return $this->return_values; }
| return $this->return_values; }
|
Zeile 1596 | Zeile 1651 |
---|
if($delete_uids != false) { $this->delete_uids = array_map('intval', (array)$delete_uids);
|
if($delete_uids != false) { $this->delete_uids = array_map('intval', (array)$delete_uids);
|
|
|
foreach($this->delete_uids as $key => $uid) { if(!$uid || is_super_admin($uid) || $uid == $mybb->user['uid'])
| foreach($this->delete_uids as $key => $uid) { if(!$uid || is_super_admin($uid) || $uid == $mybb->user['uid'])
|
Zeile 1605 | Zeile 1660 |
---|
unset($this->delete_uids[$key]); } }
|
unset($this->delete_uids[$key]); } }
|
|
|
$this->delete_uids = implode(',', $this->delete_uids);
|
$this->delete_uids = implode(',', $this->delete_uids);
|
}
| }
|
$plugins->run_hooks('datahandler_user_delete_content', $this);
|
$plugins->run_hooks('datahandler_user_delete_content', $this);
|
| if(empty($this->delete_uids)) { return; }
|
$db->delete_query('userfields', "ufid IN({$this->delete_uids})"); $db->delete_query('privatemessages', "uid IN({$this->delete_uids})");
| $db->delete_query('userfields', "ufid IN({$this->delete_uids})"); $db->delete_query('privatemessages', "uid IN({$this->delete_uids})");
|
Zeile 1641 | Zeile 1701 |
---|
$db->update_query('reportedcontent', array('uid' => 0), "uid IN({$this->delete_uids})");
// Remove any of the user(s) uploaded avatars
|
$db->update_query('reportedcontent', array('uid' => 0), "uid IN({$this->delete_uids})");
// Remove any of the user(s) uploaded avatars
|
$query = $db->simple_select('users', 'avatar', "uid IN({$this->delete_uids}) AND avatartype='upload'"); while($avatar = $db->fetch_field($query, 'avatar'))
| require_once MYBB_ROOT.'inc/functions_upload.php'; foreach(explode(',', $this->delete_uids) as $uid)
|
{
|
{
|
$avatar = substr($avatar, 2, -20); @unlink(MYBB_ROOT.$avatar);
| remove_avatars($uid);
|
} }
| } }
|
Zeile 1655 | Zeile 1714 |
---|
* @param array|bool $delete_uids Array of user ids, false if they're already set (eg when using the delete_user function) */ function delete_posts($delete_uids=false)
|
* @param array|bool $delete_uids Array of user ids, false if they're already set (eg when using the delete_user function) */ function delete_posts($delete_uids=false)
|
{ global $db, $plugins, $mybb;
| { global $db, $plugins, $mybb;
|
if($delete_uids != false) { $this->delete_uids = array_map('intval', (array)$delete_uids);
| if($delete_uids != false) { $this->delete_uids = array_map('intval', (array)$delete_uids);
|
Zeile 1675 | Zeile 1734 |
---|
}
require_once MYBB_ROOT.'inc/class_moderation.php';
|
}
require_once MYBB_ROOT.'inc/class_moderation.php';
|
$moderation = new Moderation();
| $moderation = new Moderation();
|
$plugins->run_hooks('datahandler_user_delete_posts', $this);
|
$plugins->run_hooks('datahandler_user_delete_posts', $this);
|
| if(empty($this->delete_uids)) { return; }
|
// Threads $query = $db->simple_select('threads', 'tid', "uid IN({$this->delete_uids})"); while($tid = $db->fetch_field($query, 'tid')) { $moderation->delete_thread($tid);
|
// Threads $query = $db->simple_select('threads', 'tid', "uid IN({$this->delete_uids})"); while($tid = $db->fetch_field($query, 'tid')) { $moderation->delete_thread($tid);
|
}
| }
|
// Posts $query = $db->simple_select('posts', 'pid', "uid IN({$this->delete_uids})");
|
// Posts $query = $db->simple_select('posts', 'pid', "uid IN({$this->delete_uids})");
|
while($pid = $db->fetch_field($query, 'pid')) { $moderation->delete_post($pid); } }
| while($pid = $db->fetch_field($query, 'pid')) { $moderation->delete_post($pid); } }
|
/** * Provides a method to clear an users profile *
| /** * Provides a method to clear an users profile *
|
Zeile 1703 | Zeile 1767 |
---|
function clear_profile($delete_uids=false, $gid=0) { global $db, $plugins, $mybb;
|
function clear_profile($delete_uids=false, $gid=0) { global $db, $plugins, $mybb;
|
|
|
// delete_uids isn't a nice name, but it's used as the functions above use the same if($delete_uids != false) {
| // delete_uids isn't a nice name, but it's used as the functions above use the same if($delete_uids != false) {
|
Zeile 1712 | Zeile 1776 |
---|
foreach($this->delete_uids as $key => $uid) { if(!$uid || is_super_admin($uid) || $uid == $mybb->user['uid'])
|
foreach($this->delete_uids as $key => $uid) { if(!$uid || is_super_admin($uid) || $uid == $mybb->user['uid'])
|
{
| {
|
// Remove super admins unset($this->delete_uids[$key]); }
| // Remove super admins unset($this->delete_uids[$key]); }
|
Zeile 1725 | Zeile 1789 |
---|
"website" => "", "birthday" => "", "icq" => "",
|
"website" => "", "birthday" => "", "icq" => "",
|
"aim" => "", "yahoo" => "",
| |
"skype" => "", "google" => "", "usertitle" => "",
| "skype" => "", "google" => "", "usertitle" => "",
|
Zeile 1748 | Zeile 1810 |
---|
}
$plugins->run_hooks('datahandler_user_clear_profile', $this);
|
}
$plugins->run_hooks('datahandler_user_clear_profile', $this);
|
| if(empty($this->delete_uids)) { return; }
|
$db->update_query("users", $update, "uid IN({$this->delete_uids})"); $db->delete_query('userfields', "ufid IN({$this->delete_uids})");
|
$db->update_query("users", $update, "uid IN({$this->delete_uids})"); $db->delete_query('userfields', "ufid IN({$this->delete_uids})");
|
| // Remove any of the user(s) uploaded avatars require_once MYBB_ROOT.'inc/functions_upload.php'; foreach(explode(',', $this->delete_uids) as $uid) { remove_avatars($uid); } }
public function verify_signature() { global $mybb, $parser;
if(!isset($this->data['signature'])) { return true; }
if(!isset($parser)) { require_once MYBB_ROOT."inc/class_parser.php"; $parser = new postParser; }
$parser_options = array( 'allow_html' => $mybb->settings['sightml'], 'allow_mycode' => $mybb->settings['sigmycode'], 'allow_smilies' => $mybb->settings['sigsmilies'], 'allow_imgcode' => $mybb->settings['sigimgcode'], "filter_badwords" => 1 );
$parsed_sig = $parser->parse_message($this->data['signature'], $parser_options);
if((($mybb->settings['sigimgcode'] == 0 && $mybb->settings['sigsmilies'] != 1) && substr_count($parsed_sig, "<img") > 0) || (($mybb->settings['sigimgcode'] == 1 || $mybb->settings['sigsmilies'] == 1) && substr_count($parsed_sig, "<img") > $mybb->settings['maxsigimages']) ) { $imgsallowed = 0;
if($mybb->settings['sigimgcode'] == 1) { $imgsallowed = $mybb->settings['maxsigimages']; }
$this->set_error('too_many_sig_images2', array($imgsallowed)); }
if($mybb->settings['sigcountmycode'] == 0) { $parsed_sig = $parser->text_parse_message($this->data['signature'], array('signature_parse' => '1')); } else { $parsed_sig = $this->data['signature']; }
if($mybb->settings['siglength'] > 0) { $parsed_sig = preg_replace("#\s#", "", $parsed_sig); $sig_length = my_strlen($parsed_sig);
if($sig_length > $mybb->settings['siglength']) { $this->set_error('sig_too_long', array($mybb->settings['siglength']));
if($sig_length - $mybb->settings['siglength'] > 1) { $this->set_error('sig_remove_chars_plural', array($sig_length-$mybb->settings['siglength'])); } else { $this->set_error('sig_remove_chars_singular'); } } }
if(count($this->get_errors()) > 0) { return false; } return true;
|
} }
| } }
|