NoDatabaseUserProvider.php 1.92 KB
Newer Older
jiangbowen's avatar
jiangbowen committed
1 2 3 4
<?php

namespace Adldap\Laravel\Auth;

jiangbowen's avatar
jiangbowen committed
5
use Adldap\Laravel\Events\AuthenticatedWithCredentials;
jiangbowen's avatar
jiangbowen committed
6 7 8
use Adldap\Laravel\Events\AuthenticationRejected;
use Adldap\Laravel\Events\AuthenticationSuccessful;
use Adldap\Laravel\Events\DiscoveredWithCredentials;
jiangbowen's avatar
jiangbowen committed
9
use Adldap\Laravel\Facades\Resolver;
jiangbowen's avatar
jiangbowen committed
10
use Illuminate\Contracts\Auth\Authenticatable;
jiangbowen's avatar
jiangbowen committed
11
use Illuminate\Support\Facades\Event;
jiangbowen's avatar
jiangbowen committed
12

jiangbowen's avatar
jiangbowen committed
13
class NoDatabaseUserProvider extends UserProvider
jiangbowen's avatar
jiangbowen committed
14 15 16 17 18 19 20 21
{
    /**
     *  {@inheritdoc}
     */
    public function retrieveById($identifier)
    {
        $user = Resolver::byId($identifier);

jiangbowen's avatar
jiangbowen committed
22 23 24
        // We'll verify we have the correct instance just to ensure we
        // don't return an incompatible model that may be returned.
        return $user instanceof Authenticatable ? $user : null;
jiangbowen's avatar
jiangbowen committed
25 26 27 28 29 30 31
    }

    /**
     *  {@inheritdoc}
     */
    public function retrieveByToken($identifier, $token)
    {
jiangbowen's avatar
jiangbowen committed
32 33
        // We can't retrieve LDAP users via remember
        // token, as we have nowhere to store them.
jiangbowen's avatar
jiangbowen committed
34 35 36 37 38 39 40
    }

    /**
     *  {@inheritdoc}
     */
    public function updateRememberToken(Authenticatable $user, $token)
    {
jiangbowen's avatar
jiangbowen committed
41
        // LDAP users cannot contain remember tokens.
jiangbowen's avatar
jiangbowen committed
42 43 44 45 46 47 48 49
    }

    /**
     *  {@inheritdoc}
     */
    public function retrieveByCredentials(array $credentials)
    {
        if ($user = Resolver::byCredentials($credentials)) {
jiangbowen's avatar
jiangbowen committed
50
            Event::dispatch(new DiscoveredWithCredentials($user));
jiangbowen's avatar
jiangbowen committed
51 52 53 54 55 56 57 58 59 60 61

            return $user;
        }
    }

    /**
     * {@inheritdoc}
     */
    public function validateCredentials(Authenticatable $user, array $credentials)
    {
        if (Resolver::authenticate($user, $credentials)) {
jiangbowen's avatar
jiangbowen committed
62
            Event::dispatch(new AuthenticatedWithCredentials($user));
jiangbowen's avatar
jiangbowen committed
63 64

            if ($this->passesValidation($user)) {
jiangbowen's avatar
jiangbowen committed
65
                Event::dispatch(new AuthenticationSuccessful($user));
jiangbowen's avatar
jiangbowen committed
66 67 68 69

                return true;
            }

jiangbowen's avatar
jiangbowen committed
70
            Event::dispatch(new AuthenticationRejected($user));
jiangbowen's avatar
jiangbowen committed
71 72 73 74 75
        }

        return false;
    }
}