Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Illuminate\Auth;
4
 
5
use Illuminate\Contracts\Auth\Guard;
6
use Illuminate\Contracts\Auth\UserProvider;
7
use Illuminate\Http\Request;
8
use Illuminate\Support\Traits\Macroable;
9
 
10
class RequestGuard implements Guard
11
{
12
    use GuardHelpers, Macroable;
13
 
14
    /**
15
     * The guard callback.
16
     *
17
     * @var callable
18
     */
19
    protected $callback;
20
 
21
    /**
22
     * The request instance.
23
     *
24
     * @var \Illuminate\Http\Request
25
     */
26
    protected $request;
27
 
28
    /**
29
     * Create a new authentication guard.
30
     *
31
     * @param  callable  $callback
32
     * @param  \Illuminate\Http\Request  $request
33
     * @param  \Illuminate\Contracts\Auth\UserProvider|null  $provider
34
     * @return void
35
     */
36
    public function __construct(callable $callback, Request $request, UserProvider $provider = null)
37
    {
38
        $this->request = $request;
39
        $this->callback = $callback;
40
        $this->provider = $provider;
41
    }
42
 
43
    /**
44
     * Get the currently authenticated user.
45
     *
46
     * @return \Illuminate\Contracts\Auth\Authenticatable|null
47
     */
48
    public function user()
49
    {
50
        // If we've already retrieved the user for the current request we can just
51
        // return it back immediately. We do not want to fetch the user data on
52
        // every call to this method because that would be tremendously slow.
53
        if (! is_null($this->user)) {
54
            return $this->user;
55
        }
56
 
57
        return $this->user = call_user_func(
58
            $this->callback, $this->request, $this->getProvider()
59
        );
60
    }
61
 
62
    /**
63
     * Validate a user's credentials.
64
     *
65
     * @param  array  $credentials
66
     * @return bool
67
     */
68
    public function validate(array $credentials = [])
69
    {
70
        return ! is_null((new static(
71
            $this->callback, $credentials['request'], $this->getProvider()
72
        ))->user());
73
    }
74
 
75
    /**
76
     * Set the current request instance.
77
     *
78
     * @param  \Illuminate\Http\Request  $request
79
     * @return $this
80
     */
81
    public function setRequest(Request $request)
82
    {
83
        $this->request = $request;
84
 
85
        return $this;
86
    }
87
}