Passed
Push — master ( 5cca9a...5e004b )
by Nikita
10:18 queued 03:43
created

TokensController   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Importance

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

5 Methods

Rating   Name   Duplication   Size   Complexity  
A index() 0 9 1
A __construct() 0 5 1
A destroy() 0 6 1
A create() 0 9 1
A generate() 0 8 1
1
<?php
2
3
namespace Gameap\Http\Controllers;
4
5
use Gameap\Http\Requests\GeneratePersonalAccessTokenRequest;
6
use Gameap\Models\PersonalAccessToken;
7
use Gameap\Models\User;
8
use Gameap\Services\PersonalAccessTokenService;
9
use Illuminate\Http\RedirectResponse;
10
use Illuminate\Support\Facades\Auth;
11
12
class TokensController extends AuthController
13
{
14
    /** @var PersonalAccessTokenService */
15
    private $personalAccessTokenService;
16
17
    public function __construct(PersonalAccessTokenService $personalAccessTokenService)
18
    {
19
        parent::__construct();
20
21
        $this->personalAccessTokenService = $personalAccessTokenService;
22
    }
23
24
    public function index()
25
    {
26
        /** @var User $user */
27
        $user = Auth::user();
28
29
        $tokens = $user->tokens;
30
31
        return view('profile.tokens', [
32
            'tokens' => $tokens,
33
        ]);
34
    }
35
36
    public function generate()
37
    {
38
        /** @var User $user */
39
        $user = Auth::user();
40
        $tokenAbilities = $this->personalAccessTokenService->getGrouppedAbilitiesDescriptions($user);
41
42
        return view('profile.generate_token', [
43
            'abilities' => $tokenAbilities,
44
        ]);
45
    }
46
47
    public function create(GeneratePersonalAccessTokenRequest $request): RedirectResponse
48
    {
49
        /** @var User $user */
50
        $user  = Auth::user();
51
        $token = $user->createToken($request->token_name, $request->abilities);
52
53
        return redirect()->route('tokens')
54
            ->with('notification', __('tokens.token_created_notification'))
55
            ->with('token', $token->plainTextToken);
56
    }
57
58
    public function destroy(PersonalAccessToken $token): RedirectResponse
59
    {
60
        $token->delete();
61
62
        return redirect()->route('tokens')
63
            ->with('success', __('tokens.token_removed_msg', ['token' => $token->plainTextToken]));
0 ignored issues
show
Bug Best Practice introduced by
The property plainTextToken does not exist on Gameap\Models\PersonalAccessToken. Since you implemented __get, consider adding a @property annotation.
Loading history...
64
    }
65
}
66