Completed
Pull Request — master (#33)
by Andreas
01:59
created

src/UserToken.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/**
3
 * Copyright (c)2013-2013 heiglandreas
4
 *
5
 * Permission is hereby granted, free of charge, to any person obtaining a copy
6
 * of this software and associated documentation files (the "Software"), to deal
7
 * in the Software without restriction, including without limitation the rights
8
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
 * copies of the Software, and to permit persons to whom the Software is
10
 * furnished to do so, subject to the following conditions:
11
 *
12
 * The above copyright notice and this permission notice shall be included in
13
 * all copies or substantial portions of the Software.
14
 *
15
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
 * LIBILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
 * THE SOFTWARE.
22
 *
23
 * @category  HybridAuth
24
 * @author    Andreas Heigl<[email protected]>
25
 * @copyright ©2012-2013 Andreas Heigl
26
 * @license   http://www.opesource.org/licenses/mit-license.php MIT-License
27
 * @version   0.0
28
 * @since     11.01.13
29
 * @link      https://github.com/heiglandreas/HybridAuth
30
 */
31
32
namespace OrgHeiglHybridAuth;
33
34
use OrgHeiglHybridAuth\HybridAuthUserWrapper;
35
use OrgHeiglHybridAuth\DummyUserWrapper;
36
use OrgHeiglHybridAuth\UserTokenInterface;
37
38
/**
39
 * This class works as proxy to the HybridAuth-User-Object
40
 *
41
 * @category  HybridAuth
42
 * @author    Andreas Heigl<[email protected]>
43
 * @copyright ©2012-2013 Andreas Heigl
44
 * @license   http://www.opesource.org/licenses/mit-license.php MIT-License
45
 * @version   0.0
46
 * @since     11.01.13
47
 * @link      https://github.com/heiglandreas/HybridAuth
48
 */
49
class UserToken implements UserTokenInterface
50
{
51
    /**
52
     * The HybridAuth-User-object
53
     *
54
     * @var HybridAuthUserWrapper $userProfile
55
     */
56
    protected $user = null;
57
58
    /**
59
     * The service the user has been authenticated with
60
     *
61
     * @var string $service
62
     */
63
    protected $service = '';
64
65
    /**
66
     * Set the user-object
67
     *
68
     * @param HybridAuthUserWrapper $userProfile The userprofile to use
69
     *
70
     * @return UserToken
71
     */
72
    public function setUser(UserInterface $user)
73
    {
74
        $this->user = $user;
0 ignored issues
show
Documentation Bug introduced by
It seems like $user of type object<OrgHeiglHybridAuth\UserInterface> is incompatible with the declared type object<OrgHeiglHybridAuth\HybridAuthUserWrapper> of property $user.

Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..

Loading history...
75
        return $this;
76
    }
77
78
    /**
79
     * Set the service the user has been authenticated with
80
     *
81
     * @param string $service
82
     *
83
     * @return UserToken
84
     */
85
    public function setService($service)
86
    {
87
        $this->service = strtolower($service);
88
89
        return $this;
90
    }
91
92
    /**
93
     * Get the ID of the user
94
     *
95
     * @return string
96
     */
97
    public function getUID()
98
    {
99
        return $this->user->getUid();
100
    }
101
102
    /**
103
     * Get the name of the user
104
     *
105
     * @return string
106
     */
107
    public function getName()
108
    {
109
        return $this->user->getName();
110
    }
111
112
    /**
113
     * Get the eMail-Address of the user
114
     *
115
     * @return string
116
     */
117
    public function getMail()
118
    {
119
        return $this->user->getMail();
120
    }
121
122
    /**
123
     * Get the language of the user
124
     *
125
     * @return string
126
     */
127
    public function getLanguage()
128
    {
129
        return $this->user->getLanguage();
130
    }
131
132
    /**
133
     * Get the display-name of the user.
134
     */
135
    public function getDisplayName()
136
    {
137
        return $this->user->getDisplayName();
138
    }
139
140
    /**
141
     * Get the service
142
     *
143
     * @see UserTokenInterface::getService
144
     * @return string
145
     */
146
    public function getService()
147
    {
148
        return $this->service;
149
    }
150
151
    /**
152
     * Check whether the user has been authenticated or not
153
     *
154
     * @see UserTokenInterface::isAuthenticated
155
     * @return boolean
156
     */
157
    public function isAuthenticated()
158
    {
159
        if (! $this->getService()) {
160
            return false;
161
        }
162
163
        if (__NAMESPACE__ . '\DummyUserWrapper' === get_class($this->user)) {
164
            return false;
165
        }
166
167
        return true;
168
    }
169
}
170