Completed
Push — master ( 22fa00...44c771 )
by ARCANEDEV
07:45
created

UsersPolicy   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 96
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 41.18%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 6
c 1
b 0
f 0
lcom 0
cbo 2
dl 0
loc 96
ccs 7
cts 17
cp 0.4118
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A listPolicy() 0 4 1
A showPolicy() 0 4 1
A createPolicy() 0 4 1
A updatePolicy() 0 4 1
A getPolicies() 0 10 1
A deletePolicy() 0 4 1
1
<?php namespace Arcanesoft\Auth\Policies;
2
3
use Arcanesoft\Contracts\Auth\Models\User;
4
5
/**
6
 * Class     UsersPolicy
7
 *
8
 * @package  Arcanesoft\Auth\Policies
9
 * @author   ARCANEDEV <[email protected]>
10
 */
11
class UsersPolicy extends Policy
12
{
13
    /* ------------------------------------------------------------------------------------------------
14
     |  Constants
15
     | ------------------------------------------------------------------------------------------------
16
     */
17
    const PERMISSION_LIST   = 'auth.users.list';
18
    const PERMISSION_SHOW   = 'auth.users.show';
19
    const PERMISSION_CREATE = 'auth.users.create';
20
    const PERMISSION_UPDATE = 'auth.users.update';
21
    const PERMISSION_DELETE = 'auth.users.delete';
22
23
    /* ------------------------------------------------------------------------------------------------
24
     |  Getters and Setters
25
     | ------------------------------------------------------------------------------------------------
26
     */
27
    /**
28
     * Get the policies.
29
     *
30
     * @return array
31
     */
32 12
    public static function getPolicies()
33
    {
34
        return [
35 12
            'listPolicy'   => static::PERMISSION_LIST,
36 12
            'showPolicy'   => static::PERMISSION_SHOW,
37 12
            'createPolicy' => static::PERMISSION_CREATE,
38 12
            'updatePolicy' => static::PERMISSION_UPDATE,
39 12
            'deletePolicy' => static::PERMISSION_DELETE,
40 12
        ];
41
    }
42
43
    /* ------------------------------------------------------------------------------------------------
44
     |  Policies Functions
45
     | ------------------------------------------------------------------------------------------------
46
     */
47
    /**
48
     * Allow to list all the users.
49
     *
50
     * @param  \Arcanesoft\Contracts\Auth\Models\User  $user
51
     *
52
     * @return bool
53
     */
54
    public function listPolicy(User $user)
55
    {
56
        return $user->may(static::PERMISSION_LIST);
57
    }
58
59
    /**
60
     * Allow to show a user details.
61
     *
62
     * @param  \Arcanesoft\Contracts\Auth\Models\User  $user
63
     *
64
     * @return bool
65
     */
66
    public function showPolicy(User $user)
67
    {
68
        return $user->may(static::PERMISSION_SHOW);
69
    }
70
71
    /**
72
     * Allow to create a user.
73
     *
74
     * @param  \Arcanesoft\Contracts\Auth\Models\User  $user
75
     *
76
     * @return bool
77
     */
78
    public function createPolicy(User $user)
79
    {
80
        return $user->may(static::PERMISSION_CREATE);
81
    }
82
83
    /**
84
     * Allow to update a user.
85
     *
86
     * @param  \Arcanesoft\Contracts\Auth\Models\User  $user
87
     *
88
     * @return bool
89
     */
90
    public function updatePolicy(User $user)
91
    {
92
        return $user->may(static::PERMISSION_UPDATE);
93
    }
94
95
    /**
96
     * Allow to delete a user.
97
     *
98
     * @param  \Arcanesoft\Contracts\Auth\Models\User  $user
99
     *
100
     * @return bool
101
     */
102
    public function deletePolicy(User $user)
103
    {
104
        return $user->may(static::PERMISSION_DELETE);
105
    }
106
}
107