Passed
Branch dev5 (965064)
by Ron
06:18
created

GatePolicy::seeAdminLink()   A

Complexity

Conditions 5
Paths 3

Size

Total Lines 14
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 5.0729

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 5
eloc 6
c 1
b 0
f 0
nc 3
nop 1
dl 0
loc 14
ccs 6
cts 7
cp 0.8571
crap 5.0729
rs 9.6111
1
<?php
2
3
namespace App\Policies;
4
5
use App\User;
6
use App\UserPermissions;
7
use Illuminate\Auth\Access\HandlesAuthorization;
8
9
class GatePolicy
10
{
11
    use HandlesAuthorization;
12
13
    /**
14
     * Create a new policy instance.
15
     *
16
     * @return void
17
     */
18 4
    public function __construct()
19
    {
20
        //
21 4
    }
22
    
23
    //  Determine if the user is a Installer/Super Admin
24 4
    public function isInstaller(User $user)
25
    {
26 4
        if($user->is_installer)
27
        {
28
            return true;
29
        }
30
        
31 4
        return false;
32
    }
33
    
34
    //  Determine if a user can see the Administration Nav Link
35 4
    public function seeAdminLink(User $user)
36
    {
37 4
        $permissions = UserPermissions::find($user->user_id);
38
            
39 4
        if($this->isInstaller($user))
40
        {
41
            return true;
42
        }
43 4
        else if($permissions->manage_users || $permissions->create_category || $permissions->modify_category)
44
        {
45 3
            return true;
46
        }
47
48 1
        return false;
49
    }
50
    
51
    //  Determine if a user has permissions for a task
52 4
    public function hasAccess(User $user, $task)
53
    {
54
        //  Check if user is super user first
55 4
        if($this->isInstaller($user))
56
        {
57
            return true;
58
        }
59
        
60 4
        $permissions = UserPermissions::select($task)->where('user_id', $user->user_id)->first();  
61
        
62 4
        return $permissions->$task;
63
    }
64
}
65