コード例 #1
0
ファイル: OAuthTest.php プロジェクト: dstansby/camdram
 private function login()
 {
     $this->loginUser = new User();
     $this->loginUser->setEmail('*****@*****.**')->setName('Test User 2');
     $factory = $this->client->getKernel()->getContainer()->get('security.encoder_factory');
     $encoder = $factory->getEncoder($this->loginUser);
     $hashed_password = $encoder->encodePassword('password', $this->loginUser->getSalt());
     $this->loginUser->setPassword($hashed_password);
     $em = $this->getEntityManager();
     $em->persist($this->loginUser);
     $em->flush();
     $crawler = $this->userClient->request('GET', '/auth/login');
     $form = $crawler->selectButton('Log in')->form();
     $form->setValues(array('email' => $this->loginUser->getEmail(), 'password' => 'password'));
     $this->userClient->submit($form);
 }
コード例 #2
0
ファイル: UserFixtures.php プロジェクト: dstansby/camdram
 /**
  * {@inheritDoc}
  */
 public function load(ObjectManager $manager)
 {
     $u = new User();
     $u->setEmail('*****@*****.**');
     $u->setPassword(md5('password'));
     $u->setName('Admin User');
     $manager->persist($u);
     $this->addReference('adminuser', $u);
     $u = new User();
     $u->setEmail('*****@*****.**');
     $u->setPassword(md5('password'));
     $u->setName('Test User 1');
     $manager->persist($u);
     $this->addReference('testuser1', $u);
     $u = new User();
     $u->setEmail('*****@*****.**');
     $u->setPassword(md5('password'));
     $u->setName('Test User 2');
     $manager->persist($u);
     $this->addReference('testuser2', $u);
     $u = new User();
     $u->setEmail('*****@*****.**');
     $u->setPassword(md5('password'));
     $u->setName('Society 1 Admin');
     $manager->persist($u);
     $this->addReference('society1adminuser', $u);
     $manager->flush();
 }
コード例 #3
0
 public function testEmailSearchMultipleMatches()
 {
     $user1 = new User();
     $user1->setName('Test User 1');
     $user1->setEmail('abc123');
     $user2 = new User();
     $user2->setName('Test User 2');
     $user2->setEmail('*****@*****.**');
     $this->em->persist($user1);
     $this->em->persist($user2);
     $this->em->flush();
     $user = $this->getRepository()->findOneByEmail('*****@*****.**');
     $this->assertTrue($user instanceof User);
 }
コード例 #4
0
 public function testSendShowCreatedEmail()
 {
     $show = new Show();
     $owners = array('owner1', 'owner2');
     $user1 = new User();
     $user1->setEmail('*****@*****.**');
     $user2 = new User();
     $user2->setEmail('*****@*****.**');
     $recipients = array($user1, $user2);
     $admins = array($user2);
     $this->twig->expects($this->exactly(2))->method('render')->with($this->anything(), array('owners' => $owners, 'show' => $show))->will($this->returnValue('The message'));
     $this->mailer->expects($this->once())->method('send');
     $this->emailDispatcher->sendShowCreatedEmail($show, $owners, $recipients, $admins);
 }
コード例 #5
0
 public function createPasswordAction(Request $request)
 {
     if (!$this->getUser() instanceof ExternalUser) {
         return $this->redirect($this->generateUrl('acts_camdram_homepage'));
     }
     $user = new User();
     $external_user = $this->getUser();
     $user->setName($external_user->getName());
     $user->setEmail($external_user->getEmail());
     $user->setPerson($external_user->getPerson());
     $user->setIsEmailVerified(true);
     //Raven accounts don't give us a name but the others do,
     //so need to decide whether to include a 'name' field in the form or not
     $type = new CreatePasswordType(!(bool) $user->getName());
     $form = $this->createForm($type, $user);
     if ($request->getMethod() == 'POST') {
         $form->submit($request);
         if ($form->isValid()) {
             /** @var \Acts\CamdramSecurityBundle\Entity\User $user */
             $user = $form->getData();
             $factory = $this->get('security.encoder_factory');
             $encoder = $factory->getEncoder($user);
             $password = $encoder->encodePassword($user->getPassword(), $user->getSalt());
             $user->setPassword($password);
             $user->addExternalUser($external_user);
             $external_user->setUser($user);
             $em = $this->getDoctrine()->getManager();
             $em->persist($user);
             $em->flush();
             $token = new UsernamePasswordToken($user, $user->getPassword(), 'public', $user->getRoles());
             $this->get('event_dispatcher')->dispatch(CamdramSecurityEvents::REGISTRATION_COMPLETE, new UserEvent($user));
             $this->get('security.context')->setToken($token);
             $this->get('camdram.security.authentication_success_handler')->onAuthenticationSuccess($request, $token);
             return $this->redirect($this->generateUrl('acts_camdram_security_create_account_complete'));
         }
     }
     return $this->render('ActsCamdramSecurityBundle:Default:create_password.html.twig', array('form' => $form->createView()));
 }
コード例 #6
0
ファイル: AclProviderTest.php プロジェクト: dstansby/camdram
 public function testGetEntityIdsByUser_ValidClass()
 {
     $user = new User();
     $user->setEmail('*****@*****.**');
     $ace1 = new AccessControlEntry();
     $ace1->setType('show');
     $ace1->setEntityId(32);
     $ace2 = new AccessControlEntry();
     $ace2->setType('show');
     $ace2->setEntityId(44);
     $aces = array($ace1, $ace2);
     $this->repository->expects($this->once())->method('findByUserAndType')->with($user, 'show')->will($this->returnValue($aces));
     $retAces = $this->aclProvider->getEntityIdsByUser($user, '\\Acts\\CamdramBundle\\Entity\\Show');
     $this->assertEquals(32, $retAces[0]);
     $this->assertEquals(44, $retAces[1]);
 }