From: Joshua Rüsweg Date: Sun, 29 Jun 2014 10:07:46 +0000 (+0200) Subject: prevent updating deleted profile-fields with 3rd.. X-Git-Tag: 2.0.8~13^2 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=200b2d3088de58aed0bd43b2887738eb73dd30a5;p=GitHub%2FWoltLab%2FWCF.git prevent updating deleted profile-fields with 3rd.. ..party connections see here: https://www.woltlab.com/forum/index.php/Thread/227754-Facebook-Anmeldung-nicht-m%C3%B6glich/ --- diff --git a/wcfsetup/install/files/lib/form/RegisterForm.class.php b/wcfsetup/install/files/lib/form/RegisterForm.class.php index 81f9c98dd1..2a3407eaaa 100644 --- a/wcfsetup/install/files/lib/form/RegisterForm.class.php +++ b/wcfsetup/install/files/lib/form/RegisterForm.class.php @@ -309,8 +309,8 @@ class RegisterForm extends UserAddForm { $registerVia3rdParty = true; } - if (isset($githubData['bio'])) $saveOptions[User::getUserOptionID('aboutMe')] = $githubData['bio']; - if (isset($githubData['location'])) $saveOptions[User::getUserOptionID('location')] = $githubData['location']; + if (isset($githubData['bio']) && User::getUserOptionID('aboutMe') !== null) $saveOptions[User::getUserOptionID('aboutMe')] = $githubData['bio']; + if (isset($githubData['location']) && User::getUserOptionID('location') !== null) $saveOptions[User::getUserOptionID('location')] = $githubData['location']; } break; case 'twitter': @@ -321,8 +321,8 @@ class RegisterForm extends UserAddForm { WCF::getSession()->unregister('__twitterData'); - if (isset($twitterData['description'])) $saveOptions[User::getUserOptionID('aboutMe')] = $twitterData['description']; - if (isset($twitterData['location'])) $saveOptions[User::getUserOptionID('location')] = $twitterData['location']; + if (isset($twitterData['description']) && User::getUserOptionID('aboutMe') !== null) $saveOptions[User::getUserOptionID('aboutMe')] = $twitterData['description']; + if (isset($twitterData['location']) && User::getUserOptionID('location') !== null) $saveOptions[User::getUserOptionID('location')] = $twitterData['location']; } break; case 'facebook': @@ -337,15 +337,15 @@ class RegisterForm extends UserAddForm { $registerVia3rdParty = true; } - if (isset($facebookData['gender'])) $saveOptions[User::getUserOptionID('gender')] = ($facebookData['gender'] == 'male' ? UserProfile::GENDER_MALE : UserProfile::GENDER_FEMALE); + if (isset($facebookData['gender']) && User::getUserOptionID('gender') !== null) $saveOptions[User::getUserOptionID('gender')] = ($facebookData['gender'] == 'male' ? UserProfile::GENDER_MALE : UserProfile::GENDER_FEMALE); - if (isset($facebookData['birthday'])) { + if (isset($facebookData['birthday']) && User::getUserOptionID('birthday') !== null) { list($month, $day, $year) = explode('/', $facebookData['birthday']); $saveOptions[User::getUserOptionID('birthday')] = $year.'-'.$month.'-'.$day; } - if (isset($facebookData['bio'])) $saveOptions[User::getUserOptionID('aboutMe')] = $facebookData['bio']; - if (isset($facebookData['location'])) $saveOptions[User::getUserOptionID('location')] = $facebookData['location']['name']; - if (isset($facebookData['website'])) { + if (isset($facebookData['bio']) && User::getUserOptionID('bio') !== null) $saveOptions[User::getUserOptionID('aboutMe')] = $facebookData['bio']; + if (isset($facebookData['location']) && User::getUserOptionID('location') !== null) $saveOptions[User::getUserOptionID('location')] = $facebookData['location']['name']; + if (isset($facebookData['website']) && User::getUserOptionID('website') !== null) { $urls = preg_split('/[\s,;]/', $facebookData['website'], -1, PREG_SPLIT_NO_EMPTY); if (!empty($urls)) { if (!Regex::compile('^https?://')->match($urls[0])) { @@ -374,7 +374,7 @@ class RegisterForm extends UserAddForm { $registerVia3rdParty = true; } - if (isset($googleData['gender'])) { + if (isset($googleData['gender']) && User::getUserOptionID('gender') !== null) { switch ($googleData['gender']) { case 'male': $saveOptions[User::getUserOptionID('gender')] = UserProfile::GENDER_MALE; @@ -384,8 +384,8 @@ class RegisterForm extends UserAddForm { break; } } - if (isset($googleData['birthday'])) $saveOptions[User::getUserOptionID('birthday')] = $googleData['birthday']; - if (isset($googleData['placesLived'])) { + if (isset($googleData['birthday']) && User::getUserOptionID('birthday') !== null) $saveOptions[User::getUserOptionID('birthday')] = $googleData['birthday']; + if (isset($googleData['placesLived']) && User::getUserOptionID('location') !== null) { // save primary location $saveOptions[User::getUserOptionID('location')] = current(array_map( function ($element) { return $element['value']; },