createApplication(); $data = $app->getContainer()->get('injectableFactory') ->create(SettingsService::class) ->getConfigData(); $this->assertTrue(property_exists($data, 'cacheTimestamp')); $this->assertFalse(property_exists($data, 'googleMapsApiKey')); $this->assertFalse(property_exists($data, 'outboundEmailFromAddress')); $this->assertFalse(property_exists($data, 'jobPeriod')); $this->assertFalse(property_exists($data, 'cryptKey')); } public function testUserAccess1() { $this->createUser('tester', [ 'data' => [ 'Email' => [ 'create' => 'yes', 'read' => 'team', 'edit' => 'team', 'delete' => 'no' ] ] ]); $this->auth('tester'); $app = $this->createApplication(); $data = $app->getContainer()->get('injectableFactory') ->create(SettingsService::class) ->getConfigData(); $this->assertTrue(property_exists($data, 'version')); $this->assertTrue(property_exists($data, 'outboundEmailFromAddress')); $this->assertFalse(property_exists($data, 'jobPeriod')); $this->assertFalse(property_exists($data, 'cryptKey')); } public function testUserAccess2() { $this->createUser('tester', [ 'data' => [ 'Email' => false ] ]); $this->auth('tester'); $app = $this->createApplication(); $data = $app->getContainer()->get('injectableFactory') ->create(SettingsService::class) ->getConfigData(); $this->assertFalse(property_exists($data, 'outboundEmailFromAddress')); } public function testAdminAccess() { $this->createUser([ 'userName' => 'admin-tester', 'type' => 'admin', ]); $this->auth('admin-tester'); $app = $this->createApplication(); $data = $app->getContainer() ->get('injectableFactory') ->create(SettingsService::class) ->getConfigData(); $this->assertTrue(property_exists($data, 'version')); $this->assertTrue(property_exists($data, 'outboundEmailFromAddress')); $this->assertTrue(property_exists($data, 'jobPeriod')); $this->assertFalse(property_exists($data, 'cryptKey')); } public function testReadOnly(): void { $this->createUser([ 'userName' => 'admin-tester', 'type' => User::TYPE_ADMIN, ]); $this->auth('admin-tester'); $this->setApplication($this->createApplication()); $this->getInjectableFactory() ->create(SettingsService::class) ->setConfigData((object) [ 'systemUserId' => 'test' ]); $this->assertNull($this->getConfig()->get('systemUserId')); } }