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 Laravel\Sanctum\Http\Middleware;
4
 
5
use Illuminate\Auth\AuthenticationException;
6
use Laravel\Sanctum\Exceptions\MissingAbilityException;
7
 
8
class CheckForAnyAbility
9
{
10
    /**
11
     * Handle the incoming request.
12
     *
13
     * @param  \Illuminate\Http\Request  $request
14
     * @param  \Closure  $next
15
     * @param  mixed  ...$abilities
16
     * @return \Illuminate\Http\Response
17
     *
18
     * @throws \Illuminate\Auth\AuthenticationException|\Laravel\Sanctum\Exceptions\MissingAbilityException
19
     */
20
    public function handle($request, $next, ...$abilities)
21
    {
22
        if (! $request->user() || ! $request->user()->currentAccessToken()) {
23
            throw new AuthenticationException;
24
        }
25
 
26
        foreach ($abilities as $ability) {
27
            if ($request->user()->tokenCan($ability)) {
28
                return $next($request);
29
            }
30
        }
31
 
32
        throw new MissingAbilityException($abilities);
33
    }
34
}