Passed
Push — master ( feb246...605e0e )
by Conrad
01:29
created

src/Repositories/UserRepository.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
namespace AdvancedLearning\Oauth2Server\Repositories;
4
5
6
use AdvancedLearning\Oauth2Server\Entities\UserEntity;
7
use League\OAuth2\Server\Entities\ClientEntityInterface;
8
use League\OAuth2\Server\Repositories\UserRepositoryInterface;
9
use SilverStripe\Core\Injector\Injector;
10
use SilverStripe\ORM\ValidationResult;
11
use SilverStripe\Security\Member;
12
use SilverStripe\Security\MemberAuthenticator\MemberAuthenticator;
13
14
class UserRepository implements UserRepositoryInterface
15
{
16
    /**
17
     * {@inheritdoc}
18
     */
19
    public function getUserEntityByUserCredentials(
20
        $username,
21
        $password,
22
        $grantType,
23
        ClientEntityInterface $clientEntity
24
    ) {
25
        $member = Member::get()->filter(['Email' => $username])->first();
26
27
        /**
28
         * @var ValidationResult $result
29
         */
30
        $result = Injector::inst()->get(MemberAuthenticator::class)->checkPassword($member, $password);
31
32
        return $result->isValid() ? new UserEntity($member) : null;
0 ignored issues
show
$member is of type object<SilverStripe\ORM\DataObject>|null, but the function expects a object<SilverStripe\Security\Member>.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
33
    }
34
}
35