Code Duplication    Length = 81-81 lines in 2 locations

src/Majora/Component/OAuth/Entity/AccessToken.php 1 location

@@ 13-93 (lines=81) @@
10
/**
11
 * Access token class.
12
 */
13
class AccessToken implements AccessTokenInterface
14
{
15
    /**
16
     * @var string
17
     */
18
    protected $hash;
19
20
    /**
21
     * @var int
22
     */
23
    protected $expireIn;
24
25
    /**
26
     * @var AccountInterface
27
     */
28
    protected $account;
29
30
    /**
31
     * @var ApplicationInterface
32
     */
33
    protected $application;
34
35
    /**
36
     * @see AccessTokenInterface::__construct()
37
     */
38
    public function __construct(
39
        ApplicationInterface $application,
40
        AccountInterface $account = null,
41
        $expireIn = AccessTokenInterface::DEFAULT_TTL,
42
        $hash = null
43
    ) {
44
        $this->application = $application;
45
        $this->account = $account;
46
        $this->expireIn = $expireIn;
47
48
        $this->hash = $hash ?: (new MessageDigestPasswordEncoder())->encodePassword(
49
            sprintf('[%s\o/%s]', $application->getSecret(), $account->getPassword() ?: time()),
50
            uniqid(mt_rand(), true)
51
        );
52
    }
53
54
    /**
55
     * @see AccessTokenInterface::getHash()
56
     */
57
    public function getHash()
58
    {
59
        return $this->hash;
60
    }
61
62
    /**
63
     * @see AccessTokenInterface::getExpireIn()
64
     */
65
    public function getExpireIn()
66
    {
67
        return $this->expireIn;
68
    }
69
70
    /**
71
     * @see AccessTokenInterface::getAccount()
72
     */
73
    public function getAccount()
74
    {
75
        return $this->account;
76
    }
77
78
    /**
79
     * @see AccessTokenInterface::getApplication()
80
     */
81
    public function getApplication()
82
    {
83
        return $this->application;
84
    }
85
86
    /**
87
     * @see AccessTokenInterface::getRoles()
88
     */
89
    public function getRoles()
90
    {
91
        return array_intersect($this->account->getRoles(), $this->application->getRoles());
92
    }
93
}
94

src/Majora/Component/OAuth/Entity/RefreshToken.php 1 location

@@ 15-95 (lines=81) @@
12
 *
13
 * @author Raphael De Freitas <[email protected]>
14
 */
15
class RefreshToken implements RefreshTokenInterface
16
{
17
    /**
18
     * @var string
19
     */
20
    protected $hash;
21
22
    /**
23
     * @var int
24
     */
25
    protected $expireIn;
26
27
    /**
28
     * @var AccountInterface
29
     */
30
    protected $account;
31
32
    /**
33
     * @var ApplicationInterface
34
     */
35
    protected $application;
36
37
    /**
38
     * @see RefreshTokenInterface::__construct()
39
     */
40
    public function __construct(
41
        ApplicationInterface $application,
42
        AccountInterface $account = null,
43
        $expireIn = RefreshTokenInterface::DEFAULT_TTL,
44
        $hash = null
45
    ) {
46
        $this->application = $application;
47
        $this->account = $account;
48
        $this->expireIn = $expireIn;
49
50
        $this->hash = $hash ?: (new MessageDigestPasswordEncoder())->encodePassword(
51
            sprintf('[%s\o/%s]', $application->getSecret(), $account->getPassword() ?: time()),
52
            uniqid(mt_rand(), true)
53
        );
54
    }
55
56
    /**
57
     * @see RefreshTokenInterface::getHash()
58
     */
59
    public function getHash()
60
    {
61
        return $this->hash;
62
    }
63
64
    /**
65
     * @see RefreshTokenInterface::getExpireIn()
66
     */
67
    public function getExpireIn()
68
    {
69
        return $this->expireIn;
70
    }
71
72
    /**
73
     * @see RefreshTokenInterface::getAccount()
74
     */
75
    public function getAccount()
76
    {
77
        return $this->account;
78
    }
79
80
    /**
81
     * @see RefreshTokenInterface::getApplication()
82
     */
83
    public function getApplication()
84
    {
85
        return $this->application;
86
    }
87
88
    /**
89
     * @see RefreshTokenInterface::getRoles()
90
     */
91
    public function getRoles()
92
    {
93
        return array_intersect($this->account->getRoles(), $this->application->getRoles());
94
    }
95
}
96