コード例 #1
0
ファイル: LoadUserData.php プロジェクト: amulen/amulen
 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();
 }
コード例 #2
0
 /**
  * @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'));
 }