예제 #1
0
 public function setUp()
 {
     $this->voter = new ProfileVoter();
     $this->token = new UsernamePasswordToken('testuser', 'password', 'public');
     $this->user = new User();
     $this->token->setUser($this->user);
 }
 public function testUserBlame()
 {
     $context = $this->getContainer()->get('security.context');
     $token = new UsernamePasswordToken('test', 'test', 'test_provider', []);
     $user = new User();
     $user->setUsername('dantleech');
     $user->setPassword('foo');
     $user->setLocale('fr');
     $user->setSalt('saltz');
     $this->db('ORM')->getOm()->persist($user);
     $this->db('ORM')->getOm()->flush();
     $token->setUser($user);
     $context->setToken($token);
     $contact = new Contact();
     $contact->setFirstName('Max');
     $contact->setLastName('Mustermann');
     $contact->setPosition('CEO');
     $contact->setSalutation('Sehr geehrter Herr Dr Mustermann');
     $this->db('ORM')->getOm()->persist($contact);
     $this->db('ORM')->getOm()->flush();
     $changer = $contact->getChanger();
     $creator = $contact->getCreator();
     $this->assertSame($changer, $user);
     $this->assertSame($creator, $user);
 }
예제 #3
0
 public function features_for_user($user)
 {
     $token = new UsernamePasswordToken($user->getUsername(), null, 'main', $user->getRoles());
     $token->setUser($user);
     $ret = array();
     foreach ($this->supported_features as $attribute) {
         $ret[$attribute] = $this->voteOnAttribute($attribute, null, $token);
     }
     return $ret;
 }
예제 #4
0
 private final function buildASession($session, $repository)
 {
     $user = $this->provider->loadUserByToken($session, $repository);
     if ($user) {
         $authenticatedToken = new UsernamePasswordToken($user, $session, 'front', ['ROLE_USER']);
         $authenticatedToken->setUser($user);
         $this->session->set($session, $authenticatedToken);
         return true;
     }
     return false;
 }
 protected function logIn()
 {
     $user = $this->container->get('user.repository')->findOneBy([]);
     $session = $this->client->getContainer()->get('session');
     $firewall = 'admin';
     $token = new UsernamePasswordToken('admin', 'admin', $firewall, ['ROLE_ADMIN']);
     $token->setUser($user);
     $session->set('_security_' . $firewall, serialize($token));
     $session->save();
     $cookie = new Cookie($session->getName(), $session->getId());
     $this->client->getCookieJar()->set($cookie);
     $this->container->get('security.token_storage')->setToken($token);
 }
 protected function logIn()
 {
     $client = $this->container->get('client.repository')->findOneBy([]);
     $session = $this->client->getContainer()->get('session');
     $firewall = 'client';
     $token = new UsernamePasswordToken('*****@*****.**', 'demo', $firewall, ['ROLE_CLIENT']);
     $token->setUser($client);
     $session->set('_security_' . $firewall, serialize($token));
     $session->save();
     $cookie = new Cookie($session->getName(), $session->getId());
     $this->client->getCookieJar()->set($cookie);
     $this->container->get('security.token_storage')->setToken($token);
 }
예제 #7
0
파일: TestCase.php 프로젝트: Evrika/Vidal
 protected function logIn(Client $client)
 {
     $em = $client->getContainer()->get('doctrine')->getManager();
     $user = $em->getRepository('VidalMainBundle:User')->findOneByUsername('*****@*****.**');
     $session = $client->getContainer()->get('session');
     $firewall = 'everything';
     $token = new UsernamePasswordToken($user, null, $firewall, $user->getRoles());
     $token->setUser($user);
     $session->set('_security_' . $firewall, serialize($token));
     $session->save();
     $cookie = new Cookie($session->getName(), $session->getId());
     $client->getCookieJar()->set($cookie);
 }
예제 #8
0
 public function testVote()
 {
     $generalManager = $this->em->getRepository('OpitOpitHrmUserBundle:User')->findByUsername('generalManager');
     $admin = $this->em->getRepository('OpitOpitHrmUserBundle:User')->findByUsername('admin');
     $user = $this->em->getRepository('OpitOpitHrmUserBundle:User')->findByUsername('user');
     $leaveRequests = $this->em->getRepository('OpitOpitHrmLeaveBundle:LeaveRequest')->findByEmployee($user);
     $leaveRequest = current($leaveRequests);
     $leaveAccessVoter = new LeaveAccessVoter($this->em);
     $firewall = 'secured_area';
     $gmToken = new UsernamePasswordToken('generalManager', null, $firewall, array('ROLE_ADMIN'));
     $gmToken->setUser(current($generalManager));
     $adminToken = new UsernamePasswordToken('generalManager', null, $firewall, array('ROLE_GENERAL_MANAGER'));
     $adminToken->setUser(current($admin));
     $userToken = new UsernamePasswordToken('user', null, $firewall, array('ROLE_USER'));
     $userToken->setUser(current($user));
     // Check if gm can access lr
     $this->assertEquals(VoterInterface::ACCESS_GRANTED, $leaveAccessVoter->vote($gmToken, $leaveRequest, array('view')), 'Vote: General manager not can view leave request ' . $leaveRequest->getLeaveRequestId() . '.');
     // Check if admin can access lr
     $this->assertEquals(VoterInterface::ACCESS_GRANTED, $leaveAccessVoter->vote($adminToken, $leaveRequest, array('view')), 'Vote: Admin can not view leave request ' . $leaveRequest->getLeaveRequestId() . '.');
     // Check if user can access lr
     $this->assertEquals(VoterInterface::ACCESS_GRANTED, $leaveAccessVoter->vote($userToken, $leaveRequest, array('view')), 'Vote: User can view leave request ' . $leaveRequest->getLeaveRequestId() . '.');
     // Check if gm can edit lr
     $this->assertEquals(VoterInterface::ACCESS_DENIED, $leaveAccessVoter->vote($gmToken, $leaveRequest, array('edit')), 'Vote: General manager can edit leave request ' . $leaveRequest->getLeaveRequestId() . '.');
     // Check if admin can edit lr
     $this->assertEquals(VoterInterface::ACCESS_DENIED, $leaveAccessVoter->vote($adminToken, $leaveRequest, array('edit')), 'Vote: Admin can edit leave request ' . $leaveRequest->getLeaveRequestId() . '.');
     // Check if user can edit lr
     $this->assertEquals(VoterInterface::ACCESS_DENIED, $leaveAccessVoter->vote($userToken, $leaveRequest, array('edit')), 'Vote: User can edit leave request ' . $leaveRequest->getLeaveRequestId() . '.');
     // Check if gm can delete lr
     $this->assertEquals(VoterInterface::ACCESS_GRANTED, $leaveAccessVoter->vote($gmToken, $leaveRequest, array('delete')), 'Vote: General manager can not edit leave request ' . $leaveRequest->getLeaveRequestId() . '.');
     // Check if admin can delete lr
     $this->assertEquals(VoterInterface::ACCESS_GRANTED, $leaveAccessVoter->vote($adminToken, $leaveRequest, array('delete')), 'Vote: Admin can not edit leave request ' . $leaveRequest->getLeaveRequestId() . '.');
     // Check if user can delete lr
     $this->assertEquals(VoterInterface::ACCESS_GRANTED, $leaveAccessVoter->vote($userToken, $leaveRequest, array('delete')), 'Vote: User can edit leave request ' . $leaveRequest->getLeaveRequestId() . '.');
     // Check if gm can change lr status
     $this->assertEquals(VoterInterface::ACCESS_GRANTED, $leaveAccessVoter->vote($gmToken, $leaveRequest, array('status')), 'Vote: General manager can change status leave request ' . $leaveRequest->getLeaveRequestId() . '.');
     // Check if admin can change lr status
     $this->assertEquals(VoterInterface::ACCESS_GRANTED, $leaveAccessVoter->vote($adminToken, $leaveRequest, array('status')), 'Vote: Admin can change status leave request ' . $leaveRequest->getLeaveRequestId() . '.');
     // Check if user can change lr status
     $this->assertEquals(VoterInterface::ACCESS_DENIED, $leaveAccessVoter->vote($userToken, $leaveRequest, array('status')), 'Vote: User can change status leave request ' . $leaveRequest->getLeaveRequestId() . '.');
 }
예제 #9
0
 private function createUserTokenWithId($id)
 {
     $user = $this->prophesize(UserInterface::class);
     $user->getId()->willReturn($id);
     $userToken = new UsernamePasswordToken('test', 'testpass', 'fake_provider');
     $userToken->setUser($user->reveal());
     return $userToken;
 }
 public function testSendTestEmailAction()
 {
     if (null !== static::$kernel) {
         static::$kernel->shutdown();
     }
     try {
         static::$kernel = static::createKernel(array());
     } catch (\RuntimeException $ex) {
         $this->markTestSkipped("There does not seem to be a full application available (e.g. running tests on travis.org). So this test is skipped.");
         return;
     }
     static::$kernel->boot();
     $container = static::$kernel->getContainer();
     $spoolDir = $container->getParameter('swiftmailer.spool.defaultMailer.file.path');
     // delete all spooled mails from other tests
     array_map('unlink', glob($spoolDir . "/*.messag*"));
     array_map('unlink', glob($spoolDir . "/.*.messag*"));
     $context = new RequestContext('/app.php');
     $context->setParameter('_locale', 'en');
     $router = $container->get('router');
     $router->setContext($context);
     $to = md5(time() . "to") . '@email.non-existent.to.mail.domain.com';
     $uri = $router->generate("azine_email_send_test_email", array('template' => AzineTemplateProvider::NEWSLETTER_TEMPLATE, 'email' => $to));
     $container->set('request', Request::create($uri, "GET"));
     // "login" a user
     $token = new UsernamePasswordToken("username", "password", "main");
     $recipientProvider = $container->get('azine_email_recipient_provider');
     $users = $recipientProvider->getNewsletterRecipientIDs();
     $token->setUser($recipientProvider->getRecipient($users[0]));
     $container->get('security.context')->setToken($token);
     // instantiate the controller and try to send the email
     $controller = new AzineEmailTemplateController();
     $controller->setContainer($container);
     $response = $controller->sendTestEmailAction(AzineTemplateProvider::NEWSLETTER_TEMPLATE, $to);
     $this->assertEquals(302, $response->getStatusCode(), "Status-Code 302 expected.");
     $uri = $router->generate("azine_email_template_index");
     $this->assertContains("Redirecting to {$uri}", $response->getContent(), "Redirect expected.");
     $findInFile = new FindInFileUtil();
     $findInFile->excludeMode = false;
     $findInFile->formats = array(".message");
     $this->assertEquals(1, sizeof($findInFile->find($spoolDir, "This is just the default content-block.")));
     $this->assertEquals(1, sizeof($findInFile->find($spoolDir, "Add some html content here")));
 }
 /**
  * @expectedException \Symfony\Component\Security\Core\Exception\BadCredentialsException
  * @expectedExceptionMessage The credentials were changed from another session.
  */
 public function testCheckAuthenticationKnownUserCredentialsChanged()
 {
     $method = $this->setMethodAccessible('checkAuthentication');
     $username = '******';
     $password = '******';
     $user = new TestUser();
     $user->setUsername($username);
     $token = new UsernamePasswordToken($username, $password, 'provider_key', array());
     $token->setUser($user);
     $this->ldapManager->expects($this->once())->method('bind')->with($this->equalTo($user), $this->equalTo($password))->will($this->returnValue(false));
     $method->invoke($this->ldapAuthenticationProvider, $user, $token);
 }
예제 #12
0
 /**
  * This method authenticates the newly created user.
  *
  * @param User $user The User entity
  * @return void
  */
 private function authenticateUserToken(User $user)
 {
     $token = new UsernamePasswordToken($user->getUsername(), $user->getPassword(), 'public', $user->getRoles());
     $token->setUser($user);
     $this->get('security.context')->setToken($token);
 }