Skip to content

Commit f38f8ac

Browse files
committed
Set config resolver in constructor
1 parent 0df592d commit f38f8ac

File tree

3 files changed

+15
-17
lines changed

3 files changed

+15
-17
lines changed

src/contracts/Repository/PasswordHashService.php

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,8 @@
88

99
namespace Ibexa\Contracts\Core\Repository;
1010

11-
use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface;
12-
1311
interface PasswordHashService
1412
{
15-
/**
16-
* Sets the ConfigResolver instance.
17-
*
18-
* @param \Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface $configResolver
19-
*/
20-
public function setConfigResolver(ConfigResolverInterface $configResolver): void;
21-
2213
/**
2314
* Returns default password hash type.
2415
*

src/lib/Repository/User/PasswordHashService.php

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@ final class PasswordHashService implements PasswordHashServiceInterface
2323

2424
private ConfigResolverInterface $configResolver;
2525

26-
public function __construct(int $hashType = User::DEFAULT_PASSWORD_HASH)
26+
public function __construct(int $hashType = User::DEFAULT_PASSWORD_HASH, ConfigResolverInterface $configResolver = null)
2727
{
28-
// Kept for BC, but overwritten by @see setConfigResolver()
29-
$this->defaultHashType = $hashType;
30-
}
28+
if ($configResolver === null) {
29+
// Kept for BC, but overwritten by @see setConfigResolver() if set
30+
$this->defaultHashType = $hashType;
31+
32+
return;
33+
}
3134

32-
public function setConfigResolver(ConfigResolverInterface $configResolver): void
33-
{
3435
$this->configResolver = $configResolver;
3536
$this->defaultHashType = $this->configResolver->getParameter('password_hash.default_type');
3637
}
@@ -114,6 +115,11 @@ public function isValidPassword(
114115

115116
public function updatePasswordHashTypeOnChange(): bool
116117
{
118+
if (!isset($this->configResolver)) {
119+
// If the ConfigResolver is not set, default to false
120+
return false;
121+
}
122+
117123
return $this->configResolver->getParameter('password_hash.update_type_on_change');
118124
}
119125
}

src/lib/Resources/settings/fieldtype_services.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,9 @@ services:
6161
Ibexa\Core\FieldType\FieldTypeRegistry: ~
6262

6363
Ibexa\Core\Repository\User\PasswordHashService:
64-
calls:
65-
- [ setConfigResolver, [ '@ibexa.config.resolver' ] ]
64+
arguments:
65+
$hashType: '%ibexa.site_access.config.password_hash.default_type%'
66+
$configResolver: '@ibexa.config.resolver'
6667

6768
Ibexa\Contracts\Core\Repository\PasswordHashService:
6869
alias: Ibexa\Core\Repository\User\PasswordHashService

0 commit comments

Comments
 (0)