Test Setup Failed
Pull Request — master (#26)
by guillaume
16:27 queued 10:25
created

RedirectIfAuthenticated   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 11
c 1
b 0
f 0
dl 0
loc 30
rs 10
wmc 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A redirectToWiki() 0 7 1
A handle() 0 11 4
1
<?php
2
3
namespace App\Http\Middleware;
4
5
use App\Providers\RouteServiceProvider;
6
use Closure;
7
use Illuminate\Support\Facades\Auth;
8
9
class RedirectIfAuthenticated
10
{
11
    /**
12
     * Handle an incoming request.
13
     *
14
     * @param  \Illuminate\Http\Request  $request
15
     * @param  \Closure  $next
16
     * @param  string|null  $guard
17
     * @return mixed
18
     */
19
    public function handle($request, Closure $next, $guard = null)
20
    {
21
        if($request->has('wiki_callback') && Auth::user() !== null){
22
            return $this->redirectToWiki($request);
23
        }
24
25
        if (Auth::guard($guard)->check()) {
26
            return redirect(RouteServiceProvider::HOME);
27
        }
28
29
        return $next($request);
30
    }
31
32
    private function redirectToWiki($request)
33
    {
34
        $user = Auth::user();
35
        $user->wiki_token = $request->input('wiki_token');
0 ignored issues
show
Bug Best Practice introduced by
The property wiki_token does not exist on App\User. Since you implemented __set, consider adding a @property annotation.
Loading history...
36
        $user->save();
37
        $callback = urldecode($request->input('wiki_callback'));
38
        return redirect($callback);
39
    }
40
}
41