. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace tests\integration\Espo\Core\Acl; use Espo\Core\AclManager; use Espo\Core\Acl; use Espo\Entities\User; class AclTest extends \tests\integration\Core\BaseTestCase { public function testGetReadOwnerUserField() { /* @var $aclManager AclManager */ $aclManager = $this->getContainer()->get('aclManager'); $this->assertEquals( 'assignedUser', $aclManager->getReadOwnerUserField('Account') ); $this->assertEquals( 'createdBy', $aclManager->getReadOwnerUserField('Import') ); $this->assertEquals( 'users', $aclManager->getReadOwnerUserField('Email') ); $this->assertEquals( 'users', $aclManager->getReadOwnerUserField('Meeting') ); } public function testTryCheck(): void { /* @var $Acl Acl */ $acl = $this->getContainer()->get('acl'); $this->assertFalse($acl->tryCheck('NonExistingEntityType')); } public function testCheckField(): void { $user = $this->createUser('tester', [ 'fieldData' => [ 'Call' => [ 'direction' => [ 'read' => Acl\Table::LEVEL_NO, 'edit' => Acl\Table::LEVEL_NO, ], 'contacts' => [ 'read' => Acl\Table::LEVEL_YES, 'edit' => Acl\Table::LEVEL_NO, ], ], ], ]); /** @var User $user */ $user = $this->getEntityManager()->getEntityById(User::ENTITY_TYPE, $user->getId()); /* @var $aclManager AclManager */ $aclManager = $this->getContainer()->get('aclManager'); $this->assertFalse($aclManager->checkField($user, 'Call', 'direction')); $this->assertTrue($aclManager->checkField($user, 'Call', 'contacts')); $this->assertFalse($aclManager->checkField($user, 'Call', 'contacts', Acl\Table::ACTION_EDIT)); } }