コード例 #1
0
 /**
  * Query to update a user profile.
  *
  * @param string                 $guid
  * @param string                 $provider
  * @param string                 $resourceOwnerId
  * @param ResourceOwnerInterface $resourceOwner
  *
  * @return \Doctrine\DBAL\Query\QueryBuilder
  */
 public function queryUpdate($guid, $provider, $resourceOwnerId, ResourceOwnerInterface $resourceOwner)
 {
     $query = $this->getQueryBuilder()->update($this->tableNameProvider)->set('lastupdate', ':lastupdate')->set('resource_owner', ':resource_owner')->where('provider  = :provider')->andWhere('resource_owner_id  = :resource_owner_id')->setParameters(['provider' => $provider, 'resource_owner_id' => $resourceOwnerId, 'lastupdate' => date('Y-m-d H:i:s', time()), 'resource_owner' => json_encode($resourceOwner->toArray())]);
     if ($guid !== null) {
         $query->andWhere('resource_owner_id  = :resource_owner_id')->setParameter('guid', ':guid');
     }
     return $query;
 }
コード例 #2
0
 /**
  * {@inheritdoc}
  */
 public function map(Member $member, ResourceOwnerInterface $resourceOwner)
 {
     $mapping = $this->getMapping();
     $array = $resourceOwner->toArray();
     foreach ($mapping as $target => $source) {
         if (method_exists($resourceOwner, "get{$source}")) {
             $method = "get{$source}";
             $member->{$target} = $resourceOwner->{$method}();
         } elseif (array_key_exists($source, $array)) {
             $member->{$target} = $array[$source];
         }
     }
     return $member;
 }
コード例 #3
0
 /**
  * Find or create a member from the given resource owner ("user")
  *
  * @todo Implement $overwriteExisting. Could use priorities? I.e. Facebook data > Google data
  * @param ResourceOwnerInterface $user
  * @param string $providerName
  * @return Member
  * @throws TokenlessUserExistsException
  */
 protected function memberFromResourceOwner(ResourceOwnerInterface $user, $providerName)
 {
     $member = Member::get()->filter(['Email' => $user->getEmail()])->first();
     if (!$member) {
         $member = Member::create();
     }
     if ($member->isInDB() && !$member->AccessTokens()->count()) {
         throw new TokenlessUserExistsException('A user with the email address linked to this account already exists.');
     }
     $overwriteExisting = false;
     // @todo
     if ($overwriteExisting || !$member->isInDB()) {
         $member = $this->getMapper($providerName)->map($member, $user);
         $member->write();
     }
     return $member;
 }
コード例 #4
0
 /**
  * {@inheritdoc}
  */
 protected function getSuggestions(ResourceOwnerInterface $resourceOwner)
 {
     return ['username' => $resourceOwner->getUsername(), 'avatarUrl' => $resourceOwner->getAvatar()];
 }
 /**
  * {@inheritdoc}
  */
 protected function getSuggestions(ResourceOwnerInterface $resourceOwner)
 {
     return ['username' => $resourceOwner->getNickname(), 'avatarUrl' => array_get($resourceOwner->toArray(), 'avatar_url')];
 }
コード例 #6
0
 /**
  * {@inheritdoc}
  */
 protected function getSuggestions(ResourceOwnerInterface $resourceOwner)
 {
     return ['username' => $resourceOwner->getFirstName()];
 }
コード例 #7
0
ファイル: BeamAuthController.php プロジェクト: LukeT/BeamAuth
 protected function getSuggestions(ResourceOwnerInterface $resourceOwner)
 {
     return ['username' => $resourceOwner->toArray()['username'], 'email' => $resourceOwner->toArray()['email']];
 }
コード例 #8
0
 /**
  * Update a user profile.
  *
  * @param string                 $guid
  * @param string                 $provider
  * @param ResourceOwnerInterface $resourceOwner
  *
  * @return \Doctrine\DBAL\Driver\Statement|integer|null
  */
 public function updateProvider($guid, $provider, ResourceOwnerInterface $resourceOwner)
 {
     $resourceOwnerId = $resourceOwner->getId();
     $query = $this->getProviderQueriesWrite()->queryUpdate($guid, $provider, $resourceOwnerId, $resourceOwner);
     return $this->executeQuery($query);
 }
コード例 #9
0
 /**
  * Add an OAuth2 client data
  *
  * @param string                 $provider
  * @param ResourceOwnerInterface $resourceOwner
  *
  * @return Profile
  */
 public static function createFromResourceOwner($provider, ResourceOwnerInterface $resourceOwner)
 {
     $classname = get_called_class();
     $class = new $classname();
     $class->provider = $provider;
     $class->uid = $resourceOwner->getId();
     $class->nickname = $resourceOwner->getNickname();
     $class->name = $resourceOwner->getName();
     $class->firstName = $resourceOwner->getFirstName();
     $class->lastName = $resourceOwner->getLastName();
     $class->email = $resourceOwner->getEmail();
     $class->imageUrl = $resourceOwner->getImageurl();
     $class->urls = $resourceOwner->getUrl();
     return $class;
 }