Ejemplo n.º 1
0
 /**
  * Update User email to become Facebook-reported email
  *
  * @param int $userId
  * @return bool
  */
 public function updateEmailFromFacebook($userId)
 {
     $userMap = \FacebookMapModel::lookupFromWikiaID($userId);
     if (!$userMap) {
         $this->error('Facebook user email update fail. Missing user mapping', ['title' => __METHOD__, 'userid' => $userId]);
         return false;
     }
     $fbUserId = $userMap->getFacebookUserId();
     $email = \FacebookClient::getInstance()->getEmail($fbUserId);
     if (!$email) {
         $this->info('Facebook user email update: No Facebook email', ['title' => __METHOD__, 'userid' => $userId, 'facebookid' => $fbUserId]);
         return false;
     }
     $this->updateUserEmail($userMap->getWikiaUserId(), $email);
     $this->info('Facebook user email update complete', ['title' => __METHOD__, 'userid' => $userId, 'facebookid' => $fbUserId, 'email' => $email]);
     return true;
 }
Ejemplo n.º 2
0
 /**
  * Returns the Facebook user ID for the current Wikia user
  *
  * @param User|int $user
  *
  * @return int|null
  */
 public function getFacebookUserId($user)
 {
     // Determine if we got an ID or an object
     if ($user instanceof User && $user->getId() != 0) {
         $wikiaUserId = $user->getId();
     } else {
         $wikiaUserId = $user;
     }
     if (empty($wikiaUserId)) {
         return null;
     }
     $map = FacebookMapModel::lookupFromWikiaID($wikiaUserId);
     if (empty($map)) {
         return null;
     }
     return $map->getFacebookUserId();
 }
 /**
  * @dataProvider mappingIdProvider
  */
 public function testDBWikiaCRUD($wikiaUserId, $facebookUserId)
 {
     self::setupMockCache();
     /** @var PHPUnit_Framework_MockObject_MockObject|FacebookMapModel $mockMap */
     $mockMap = $this->getMock('FacebookMapModel', ['saveToCache']);
     $mockMap->expects($this->once())->method('saveToCache');
     // CREATE
     $mockMap->relate($wikiaUserId, $facebookUserId);
     $mockMap->save();
     // READ
     $this->assertTrue(FacebookMapModel::hasUserMapping($wikiaUserId, $facebookUserId), 'Mapping does not exist');
     $map = FacebookMapModel::lookupFromWikiaID($wikiaUserId);
     $this->assertNotEmpty($map, 'Object not found in memcache');
     $this->assertEquals($wikiaUserId, $map->getWikiaUserId(), 'Wikia user ID does not match');
     $this->assertEquals($facebookUserId, $map->getFacebookUserId(), 'Facebook user ID does not match');
     // DELETE
     FacebookMapModel::deleteFromWikiaID($wikiaUserId);
     $map = FacebookMapModel::lookupFromWikiaID($wikiaUserId);
     $this->assertEmpty($map, 'Object still found in memcache after delete');
 }