public function load(ObjectManager $manager) { $encoder = $this->container->get('security.password_encoder'); /* Create default roles */ $roleAdmin = new Role(); $roleAdmin->setName("ROLE_ADMIN"); $manager->persist($roleAdmin); /* Create admin user group */ $adminUserGroup = new UserGroup("administrators"); $adminUserGroup->addRole($roleAdmin); $manager->persist($adminUserGroup); /* Create a new user 1 */ $admin1 = new User(); $admin1->setUsername('admin1'); $admin1->setEmail('*****@*****.**'); $admin1->setPassword($encoder->encodePassword($admin1, "admin1")); $admin1->setStatus(1); $admin1->addUserGroup($adminUserGroup); $manager->persist($admin1); /* Create a new user 1 */ $user1 = new User(); $user1->setUsername('user1'); $user1->setEmail('*****@*****.**'); $user1->setPassword($encoder->encodePassword($user1, "user1")); $user1->setStatus(1); $manager->persist($user1); $manager->flush(); }
/** * @Route("/socialhub/connector", name="socialhub_connector") * @Template() */ public function indexAction(Request $request) { $request->getSession()->start(); $social_provider_id = $request->get('type'); $provider_prefix = "socialhub_provider_"; $socialProvider = $this->get($provider_prefix . $social_provider_id); $profile = $socialProvider->getUserProfile(); $em = $this->getDoctrine()->getManager(); $userSocialAccount = $em->getRepository('FlowcodeSocialHubBundle:UserSocialAccount')->findOneBy(array('externalId' => $profile['id'])); if ($profile) { if (!$userSocialAccount) { $accessToken = $socialProvider->getAccessToken(); /* get social network */ $socialNetwork = $em->getRepository('FlowcodeSocialHubBundle:SocialNetwork')->findOneBy(array('type' => $social_provider_id)); if (!$socialNetwork) { die('No social network'); } $userManager = $this->container->get('flowcode.user'); $user = $userManager->loadUserByUsername($profile['email']); if (!$user) { $user = new User(); $user->setUsername($profile['email']); $user->setEmail($profile['email']); $user->setFirstname($profile['firstname']); $user->setLastname($profile['lastname']); $user->setPlainPassword($profile['id']); $user->setStatus(User::STATUS_ACTIVE); $userManager->create($user); } $userSocialAccount = new UserSocialAccount(); $userSocialAccount->setUser($user); $userSocialAccount->setSocialNetwork($socialNetwork); $userSocialAccount->setExternalId($profile['id']); $userSocialAccount->setAccessToken($accessToken); $em->persist($userSocialAccount); $em->flush(); $this->authenticateUser($request, $user); } else { $this->authenticateUser($request, $userSocialAccount->getUser()); } } if ($this->container->hasParameter('socialhub_redirect')) { $redirectUrl = $this->getParameter('socialhub_redirect'); return $this->redirect($this->generateUrl($redirectUrl)); } return $this->redirect($this->generateUrl('homepage')); }