• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

conedevelopment / root / 8572236702

05 Apr 2024 03:35PM UTC coverage: 67.572% (-0.04%) from 67.615%
8572236702

push

github

iamgergo
version

2140 of 3167 relevant lines covered (67.57%)

22.18 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Http/Controllers/Auth/TwoFactorController.php
1
<?php
2

3
namespace Cone\Root\Http\Controllers\Auth;
4

5
use Closure;
6
use Cone\Root\Http\Controllers\Controller;
7
use Cone\Root\Http\Middleware\Authenticate;
8
use Cone\Root\Interfaces\TwoFactorAuthenticatable;
9
use Cone\Root\Notifications\TwoFactorLink;
10
use Illuminate\Http\RedirectResponse;
11
use Illuminate\Http\Request;
12
use Illuminate\Http\Response;
13
use Illuminate\Support\Facades\Response as ResponseFactory;
14
use Illuminate\Support\Facades\URL;
15
use Symfony\Component\HttpFoundation\Response as BaseResponse;
16

17
class TwoFactorController extends Controller
18
{
19
    /**
20
     * Create a new controller instance.
21
     */
22
    public function __construct()
23
    {
24
        $this->middleware(Authenticate::class);
×
25
        $this->middleware('throttle:6,1')->only(['resend']);
×
26
        $this->middleware(static function (Request $request, Closure $next): BaseResponse {
×
27
            if (! $request->user() instanceof TwoFactorAuthenticatable
×
28
                || $request->session()->has('root.auth.two-factor')
×
29
            ) {
30
                return ResponseFactory::redirectToIntended(URL::route('root.dashboard'));
×
31
            }
32

33
            return $next($request);
×
34
        });
×
35
    }
36

37
    /**
38
     * Show the verification resend form.
39
     */
40
    public function show(Request $request): Response|RedirectResponse
41
    {
42
        return ResponseFactory::view('root::auth.two-factor');
×
43
    }
44

45
    /**
46
     * Verify the link.
47
     */
48
    public function verify(Request $request): RedirectResponse
49
    {
50
        if (! $request->hasValidSignature() || ! hash_equals($request->input('hash'), sha1($request->user()->email))) {
×
51
            return ResponseFactory::redirectToRoute('root.auth.two-factor.show')
×
52
                ->with('status', __('The authentication link is not valid! Please request a new link!'));
×
53
        }
54

55
        $request->session()->put('root.auth.two-factor', true);
×
56

57
        return ResponseFactory::redirectToIntended(URL::route('root.dashboard'));
×
58
    }
59

60
    /**
61
     * Resend the verification link.
62
     */
63
    public function resend(Request $request): RedirectResponse
64
    {
65
        $request->user()->notify(new TwoFactorLink());
×
66

67
        return ResponseFactory::redirectToRoute('root.auth.two-factor.show')
×
68
            ->with('status', __('The two factor authentication link has been sent!'));
×
69
    }
70
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc