added team permissions (#996)
This commit is contained in:
@@ -12,8 +12,10 @@ namespace App\Tests\Controller;
|
||||
use App\DataFixtures\UserFixtures;
|
||||
use App\Entity\User;
|
||||
use App\Entity\UserPreference;
|
||||
use App\Tests\DataFixtures\TeamFixtures;
|
||||
use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
use Symfony\Bundle\FrameworkBundle\Client;
|
||||
use Symfony\Component\DomCrawler\Field\ChoiceFormField;
|
||||
use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface;
|
||||
|
||||
/**
|
||||
@@ -95,7 +97,7 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
|
||||
return [
|
||||
[User::ROLE_USER, UserFixtures::USERNAME_USER, ['#settings', '#password', '#api-token']],
|
||||
[User::ROLE_SUPER_ADMIN, UserFixtures::USERNAME_SUPER_ADMIN, array_merge($userTabs, ['#roles'])],
|
||||
[User::ROLE_SUPER_ADMIN, UserFixtures::USERNAME_SUPER_ADMIN, array_merge($userTabs, ['#teams', '#roles'])],
|
||||
];
|
||||
}
|
||||
|
||||
@@ -315,6 +317,52 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
$this->assertEquals(['ROLE_TEAMLEAD', 'ROLE_SUPER_ADMIN', 'ROLE_USER'], $user->getRoles());
|
||||
}
|
||||
|
||||
public function testTeamsActionIsSecured()
|
||||
{
|
||||
$this->assertUrlIsSecured('/profile/' . UserFixtures::USERNAME_USER . '/teams');
|
||||
$this->assertUrlIsSecuredForRole(User::ROLE_TEAMLEAD, '/profile/' . UserFixtures::USERNAME_USER . '/teams');
|
||||
}
|
||||
|
||||
public function testTeamsAction()
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$em = $client->getContainer()->get('doctrine.orm.entity_manager');
|
||||
|
||||
/** @var User $user */
|
||||
$user = $this->getUserByRole($em, User::ROLE_USER);
|
||||
|
||||
$fixture = new TeamFixtures();
|
||||
$fixture->setAmount(3);
|
||||
$fixture->setAddCustomer(true);
|
||||
$fixture->setAddUser(false);
|
||||
$fixture->addUserToIgnore($user);
|
||||
$this->importFixture($em, $fixture);
|
||||
|
||||
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER . '/teams');
|
||||
|
||||
/** @var User $user */
|
||||
$user = $this->getUserByRole($em, User::ROLE_USER);
|
||||
$this->assertEquals([], $user->getTeams()->toArray());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=user_teams]')->form();
|
||||
/** @var ChoiceFormField $team */
|
||||
$team = $form->get('user_teams[teams][0]');
|
||||
$team->tick();
|
||||
|
||||
$client->submit($form);
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/profile/' . urlencode(UserFixtures::USERNAME_USER) . '/teams'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$em = $client->getContainer()->get('doctrine.orm.entity_manager');
|
||||
$user = $this->getUserByRole($em, User::ROLE_USER);
|
||||
|
||||
$this->assertEquals(1, $user->getTeams()->count());
|
||||
}
|
||||
|
||||
public function getPreferencesTestData()
|
||||
{
|
||||
return [
|
||||
|
||||
Reference in New Issue
Block a user