Test Failed
Push — master ( dd2d06...7fea41 )
by Gabor
07:04
created

AbstractAuthAdapter::getAuthResult()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
/**
3
 * WebHemi.
4
 *
5
 * PHP version 7.1
6
 *
7
 * @copyright 2012 - 2017 Gixx-web (http://www.gixx-web.com)
8
 * @license   https://opensource.org/licenses/MIT The MIT License (MIT)
9
 *
10
 * @link      http://www.gixx-web.com
11
 */
12
declare(strict_types = 1);
13
14
namespace WebHemi\Adapter\Auth;
15
16
use WebHemi\Auth\Result;
17
use WebHemi\Auth\AuthStorageInterface;
18
use WebHemi\Config\ConfigInterface;
19
use WebHemi\Data\Entity\DataEntityInterface;
20
use WebHemi\Data\Storage\DataStorageInterface;
21
22
/**
23
 * Class AbstractAuthAdapter
24
 */
25
abstract class AbstractAuthAdapter implements AuthAdapterInterface
26
{
27
    /** @var Result */
28
    private $authResult;
29
    /** @var AuthStorageInterface */
30
    private $authStorage;
31
    /** @var DataStorageInterface */
32
    private $dataStorage;
33
    /** @var ConfigInterface */
34
    protected $configuration;
35
36
    /**
37
     * AbstractAuthAdapter constructor.
38
     *
39
     * @param ConfigInterface      $configuration
40
     * @param Result               $authResultPrototype
41
     * @param AuthStorageInterface $authStorage
42
     * @param DataStorageInterface $dataStorage
43
     */
44 3
    public function __construct(
45
        ConfigInterface $configuration,
46
        Result $authResultPrototype,
47
        AuthStorageInterface $authStorage,
48
        DataStorageInterface $dataStorage
49
    ) {
50 3
        $this->configuration = $configuration->getConfig('auth');
51 3
        $this->authResult = $authResultPrototype;
52 3
        $this->authStorage = $authStorage;
53 3
        $this->dataStorage = $dataStorage;
54 3
    }
55
56
    /**
57
     * Gets the auth storage instance. (e.g.: AuthSessionStorage)
58
     *
59
     * @return AuthStorageInterface
60
     */
61 1
    protected function getAuthStorage() : AuthStorageInterface
62
    {
63 1
        return $this->authStorage;
64
    }
65
66
    /**
67
     * Gets the data storage instance. (e.g.: UserStorage)
68
     *
69
     * @return DataStorageInterface
70
     */
71 2
    protected function getDataStorage() : DataStorageInterface
72
    {
73 2
        return $this->dataStorage;
74
    }
75
76
    /**
77
     * Gets a new instance of the auth result container.
78
     *
79
     * @return Result
80
     */
81 2
    protected function getNewAuthResultInstance() : Result
82
    {
83 2
        return clone $this->authResult;
84
    }
85
86
    /**
87
     * Authenticates the user.
88
     *
89
     * @return Result
90
     */
91
    abstract public function authenticate() : Result;
92
93
    /**
94
     * Sets the authenticated user.
95
     *
96
     * @param DataEntityInterface $dataEntity
97
     * @return AuthAdapterInterface
98
     */
99 1
    public function setIdentity(DataEntityInterface $dataEntity) : AuthAdapterInterface
100
    {
101 1
        $this->authStorage->setIdentity($dataEntity);
102
103 1
        return $this;
104
    }
105
106
    /**
107
     * Checks whether the user is authenticated or not.
108
     *
109
     * @return bool
110
     */
111 2
    public function hasIdentity() : bool
112
    {
113 2
        return $this->authStorage->hasIdentity();
114
    }
115
116
    /**
117
     * Gets the authenticated user's entity.
118
     *
119
     * @return DataEntityInterface|null
120
     */
121 2
    public function getIdentity() : ? DataEntityInterface
122
    {
123 2
        return $this->authStorage->getIdentity();
124
    }
125
126
    /**
127
     * Clears the session.
128
     *
129
     * @return AuthAdapterInterface
130
     */
131 1
    public function clearIdentity() : AuthAdapterInterface
132
    {
133 1
        $this->authStorage->clearIdentity();
134 1
        return $this;
135
    }
136
}
137