Skip to content

Commit 61fcfea

Browse files
authored
Merge pull request #92 from OxCom/master
Add support of the Cache.SerializerPermissions for default profile
2 parents 331a14d + 9712ab7 commit 61fcfea

File tree

4 files changed

+34
-0
lines changed

4 files changed

+34
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ had specified the following configuration:
2828

2929
exercise_html_purifier:
3030
default_cache_serializer_path: '%kernel.cache_dir%/htmlpurifier'
31+
# 493 int => ocl "0755"
32+
default_cache_serializer_permissions: 493
3133
```
3234
3335
The `default` profile is special, it is *always* defined and its configuration

src/DependencyInjection/Configuration.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ public function getConfigTreeBuilder(): TreeBuilder
2121
->scalarNode('default_cache_serializer_path')
2222
->defaultValue('%kernel.cache_dir%/htmlpurifier')
2323
->end()
24+
->scalarNode('default_cache_serializer_permissions')
25+
// (format "%#o" 493) "0755"
26+
->defaultValue(493)
27+
->end()
2428
->arrayNode('html_profiles')
2529
->useAttributeAsKey('name')
2630
->normalizeKeys(false)

src/DependencyInjection/ExerciseHTMLPurifierExtension.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public function load(array $configs, ContainerBuilder $container): void
2727

2828
// Set default serializer cache path, while ensuring a default profile is defined
2929
$configs['html_profiles']['default']['config']['Cache.SerializerPath'] = $configs['default_cache_serializer_path'];
30+
$configs['html_profiles']['default']['config']['Cache.SerializerPermissions'] = $configs['default_cache_serializer_permissions'];
3031

3132
$serializerPaths = [];
3233
// Drop when require Symfony > 3.4

tests/DependencyInjection/ExerciseHTMLPurifierExtensionTest.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
class ExerciseHTMLPurifierExtensionTest extends TestCase
1616
{
1717
private const DEFAULT_CACHE_PATH = '%kernel.cache_dir%/htmlpurifier';
18+
private const DEFAULT_CACHE_PERMISSIONS = 493;
1819

1920
/**
2021
* @var ContainerBuilder|null
@@ -38,6 +39,7 @@ public function setUp(): void
3839
$this->extension = new ExerciseHTMLPurifierExtension();
3940
$this->defaultConfig = [
4041
'Cache.SerializerPath' => self::DEFAULT_CACHE_PATH,
42+
'Cache.SerializerPermissions' => self::DEFAULT_CACHE_PERMISSIONS,
4143
];
4244
}
4345

@@ -121,6 +123,31 @@ public function testShouldAllowOverridingDefaultConfigurationCacheSerializerPath
121123

122124
$this->assertDefaultConfigDefinition(array_merge($config['html_profiles']['default']['config'], [
123125
'Cache.SerializerPath' => null,
126+
'Cache.SerializerPermissions' => 493,
127+
]));
128+
$this->assertCacheWarmerSerializerArgs([], ['default']);
129+
$this->assertRegistryHasProfiles(['default']);
130+
}
131+
132+
public function testShouldAllowOverridingDefaultConfigurationCacheSerializerPermissions(): void
133+
{
134+
$config = [
135+
'default_cache_serializer_path' => null,
136+
'default_cache_serializer_permissions' => 511,
137+
'html_profiles' => [
138+
'default' => [
139+
'config' => [
140+
'AutoFormat.AutoParagraph' => true,
141+
],
142+
],
143+
],
144+
];
145+
146+
$this->extension->load([$config], $this->container);
147+
148+
$this->assertDefaultConfigDefinition(array_merge($config['html_profiles']['default']['config'], [
149+
'Cache.SerializerPath' => null,
150+
'Cache.SerializerPermissions' => 511,
124151
]));
125152
$this->assertCacheWarmerSerializerArgs([], ['default']);
126153
$this->assertRegistryHasProfiles(['default']);

0 commit comments

Comments
 (0)