DefaultOwnerProvider::getOwnerId()   A
last analyzed

Complexity

Conditions 4
Paths 3

Size

Total Lines 14
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 6
c 1
b 0
f 0
dl 0
loc 14
rs 10
cc 4
nc 3
nop 0
1
<?php
2
3
namespace Azine\JsCryptoStoreBundle\Service;
4
5
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
0 ignored issues
show
Bug introduced by
The type Symfony\Component\Securi...e\TokenStorageInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
6
7
class DefaultOwnerProvider implements OwnerProviderInterface
8
{
9
    /** @var TokenStorageInterface */
10
    private $tokenStorage;
11
12
    /**
13
     * DefaultOwnerProvider constructor.
14
     *
15
     * @param TokenStorageInterface|null $token
16
     */
17
    public function __construct(TokenStorageInterface $tokenStorage = null)
18
    {
19
        $this->tokenStorage = $tokenStorage;
20
    }
21
22
    /**
23
     * Return the current users user-id or a random string if no user is logged in.
24
     *
25
     * @return string
26
     */
27
    public function getOwnerId()
28
    {
29
        if (null == $this->tokenStorage || null == $this->tokenStorage->getToken()) {
30
            return md5(microtime());
31
        }
32
33
        $token = $this->tokenStorage->getToken();
34
35
        if (!\is_object($user = $token->getUser())) {
36
            // e.g. anonymous authentication
37
            return md5(microtime());
38
        }
39
40
        return $user->getId();
41
    }
42
}
43