AccountPasswordEncoder::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace BWC\Share\Symfony\Security\User;
4
5
use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface;
6
7
class AccountPasswordEncoder implements AccountPasswordEncoderInterface
8
{
9
    /** @var \Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface  */
10
    private $encoderFactory;
11
12
13
    public function __construct(EncoderFactoryInterface $encoderFactory)
14
    {
15
        $this->encoderFactory = $encoderFactory;
16
    }
17
18
    /**
19
     * @param AdvancedUserAccountInterface $account
20
     * @return void
21
     */
22
    public function encodePassword(AdvancedUserAccountInterface $account)
23
    {
24
        if (null === $account->getPassword()) {
25
            $account->setPassword('');
26
        }
27
        if (0 !== strlen($password = $account->getPlainPassword())) {
28
            $encoder = $this->getEncoder($account);
29
            $account->setPassword($encoder->encodePassword($password, $account->getSalt()));
30
        }
31
        $account->eraseCredentials();
32
    }
33
34
35
    /**
36
     * @param AdvancedUserAccountInterface $account
37
     * @return \Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface
38
     */
39
    protected function getEncoder(AdvancedUserAccountInterface $account)
40
    {
41
        return $this->encoderFactory->getEncoder($account);
42
    }
43
44
}