/** * @Given /^the external "([^"]*)" user:$/ */ public function createExternalUser($service, TableNode $table) { $external_user = new ExternalUser(); $external_user->setService(strtolower($service)); $em = $this->getEntityManager(); foreach ($table->getRowsHash() as $field => $value) { switch ($field) { case 'name': $external_user->setName($value); break; case 'id': $external_user->setRemoteId($value); break; case 'email': $external_user->setEmail($value); break; case 'username': $external_user->setUsername($value); break; case 'picture': $external_user->setProfilePictureUrl($value); break; case 'user': $user = $em->getRepository('ActsCamdramSecurityBundle:User')->findOneByEmail($value); $external_user->setUser($user); break; } } $em->persist($external_user); $em->flush(); }
public function persistUser($userinfo, $service, $access_token) { $user = new ExternalUser(); $user->setService($service); $user->setEmail($userinfo['email']); $user->setRemoteId($userinfo['id']); $user->setUsername($userinfo['username']); $user->setName($userinfo['name']); if (is_string($access_token)) { $user->setToken($access_token); } if ($service == 'facebook') { $user->setProfilePictureUrl('https://graph.facebook.com/' . $userinfo['id'] . '/picture?type=large'); } elseif (isset($userinfo['picture'])) { $user->setProfilePictureUrl($userinfo['picture']); } $this->em->persist($user); $this->em->flush(); return $user; }