Passed
Push — master ( 58d207...d4720a )
by Paul
07:20
created

AccessTokenPolicy::create()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 3
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 7
rs 10
1
<?php
2
3
namespace  Devpri\Tinre\Policies;
4
5
use Devpri\Tinre\Models\AccessToken;
6
use Devpri\Tinre\Models\User;
7
use Illuminate\Auth\Access\HandlesAuthorization;
8
9
class AccessTokenPolicy
10
{
11
    use HandlesAuthorization;
12
13
    public function viewAny(User $user): bool
14
    {
15
        if ($user->hasPermissionTo('access_token:view:any')) {
16
            return true;
17
        }
18
19
        return false;
20
    }
21
22
    public function view(User $user, AccessToken $accessToken): bool
23
    {
24
        if ($user->hasPermissionTo('access_token:view:any')) {
25
            return true;
26
        }
27
28
        if (!$user->hasPermissionTo('access_token:view')) {
29
            return false;
30
        }
31
        
32
        if($user->id === $accessToken->user_id) {
33
            return true;
34
        }
35
36
        return false;
37
    }
38
39
    public function create(User $user): bool
40
    {
41
        if ($user->hasPermissionTo('access_token:create')) {
42
            return true;
43
        }
44
45
        return false;
46
    }
47
48
    public function update(User $user, AccessToken $accessToken): bool
49
    {
50
        if ($user->hasPermissionTo('access_token:update:any')) {
51
            return true;
52
        }
53
        
54
        if (!$user->hasPermissionTo('access_token:update')) {
55
            return false;
56
        }
57
        
58
        if ($user->id === $accessToken->user_id) {
59
            return true;
60
        }
61
62
        return false;
63
    }
64
65
    public function delete(User $user, AccessToken $accessToken): bool
66
    {
67
        if ($user->hasPermissionTo('access_token:delete:any')) {
68
            return true;
69
        }
70
        
71
        if (!$user->hasPermissionTo('access_token:delete')) {
72
            return false;
73
        }
74
        
75
        if ($user->id === $accessToken->id) {
76
            return true;
77
        }
78
79
        return false;
80
    }
81
}
82