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

conedevelopment / root / 8596562172

08 Apr 2024 07:59AM UTC coverage: 67.591% (+0.02%) from 67.572%
8596562172

push

github

iamgergo
wip

6 of 7 new or added lines in 3 files covered. (85.71%)

3 existing lines in 3 files now uncovered.

2144 of 3172 relevant lines covered (67.59%)

22.16 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
×
NEW
28
                || ! $request->user()->requiresTwoFactorAuthentication()
×
UNCOV
29
                || $request->session()->has('root.auth.two-factor')
×
30
            ) {
31
                return ResponseFactory::redirectToIntended(URL::route('root.dashboard'));
×
32
            }
33

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

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

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

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

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

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

68
        return ResponseFactory::redirectToRoute('root.auth.two-factor.show')
×
69
            ->with('status', __('The two factor authentication link has been sent!'));
×
70
    }
71
}
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