Completed
Push — dev5 ( f3ede3...502bc5 )
by Ron
08:16
created

GatePolicy::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 0
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 2
rs 10
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
    public function __construct()
19
    {
20
        //
21
    }
22
    
23
    //  Determine if the user is a Installer/Super Admin
24
    public function isInstaller(User $user)
25
    {
26
        if($user->is_installer)
27
        {
28
            return true;
29
        }
30
        
31
        return false;
32
    }
33
    
34
    //  Determine if a user can see the Administration Nav Link
35
    public function seeAdminLink(User $user)
36
    {
37
        $permissions = UserPermissions::find($user->user_id);
38
            
39
        if($this->isInstaller($user))
40
        {
41
            return true;
42
        }
43
        else if($permissions->manage_users || $permissions->create_category || $permissions->modify_category)
44
        {
45
            return true;
46
        }
47
48
        return false;
49
    }
50
    
51
    //  Determine if a user has permissions for a task
52
    public function hasAccess(User $user, $task)
53
    {
54
        //  Check if user is super user first
55
        if($this->isInstaller($user))
56
        {
57
            return true;
58
        }
59
        
60
        $permissions = UserPermissions::select($task)->where('user_id', $user->user_id)->first();  
61
        
62
        return $permissions->$task;
63
    }
64
}
65