ElementAttributePolicy::delete()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 5
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 2
1
<?php
2
3
namespace App\Policies;
4
5
use App\Models\Access\User\User;
6
use App\Models\ElementAttribute;
7
use App\Models\Elementset;
8
use Illuminate\Auth\Access\HandlesAuthorization;
9
10
class ElementAttributePolicy
11
{
12
    use HandlesAuthorization;
13
14
    public function before(User $user)
15
    {
16
        if ($user->is_administrator) {
17
            return true;
18
        }
19
    }
20
21
    /**
22
     * Determine whether the user can view the elementAttribute.
23
     *
24
     * @param  \App\Models\Access\User\User  $user
25
     * @param  \App\Models\ElementAttribute  $elementAttribute
26
     * @return mixed
27
     */
28
    public function view(User $user, ElementAttribute $elementAttribute)
29
    {
30
        $project = $elementAttribute->element->elementSet->project;
0 ignored issues
show
Bug introduced by
The property elementSet does not exist on App\Models\Element. Did you mean elementset?
Loading history...
31
        if ($project->is_private && $user->isMemberOfProject($project)) {
32
            return true;
33
        }
34
        if (! $project->is_private) {
35
            return true;
36
        }
37
    }
38
39
    /**
40
     * Determine whether the user can create elementAttributes.
41
     *
42
     * @param  \App\Models\Access\User\User  $user
43
     * @return mixed
44
     */
45
    public function create(User $user, Elementset $elementset)
46
    {
47
        //User must be one of: admin, projectadmin, vocabularyadmin
48
        if ($user->isMaintainerForElementSet($elementset)) {
49
            return true;
50
        }
51
    }
52
53
    /**
54
     * Determine whether the user can update the elementAttribute.
55
     *
56
     * @param  \App\Models\Access\User\User  $user
57
     * @param  \App\Models\ElementAttribute  $elementAttribute
58
     * @return mixed
59
     */
60
    public function update(User $user, ElementAttribute $elementAttribute)
61
    {
62
        //User must be one of: admin, projectadmin, vocabularyadmin
63
        if ($user->isMaintainerForElementSet($elementAttribute->element->elementSet)) {
0 ignored issues
show
Bug introduced by
The property elementSet does not exist on App\Models\Element. Did you mean elementset?
Loading history...
64
            return true;
65
        }
66
    }
67
68
    /**
69
     * Determine whether the user can delete the elementAttribute.
70
     *
71
     * @param  \App\Models\Access\User\User  $user
72
     * @param  \App\Models\ElementAttribute  $elementAttribute
73
     * @return mixed
74
     */
75
    public function delete(User $user, ElementAttribute $elementAttribute)
76
    {
77
        //User must be one of: admin, projectadmin, vocabularyadmin
78
        if ($user->isMaintainerForElementSet($elementAttribute->element->elementSet)) {
0 ignored issues
show
Bug introduced by
The property elementSet does not exist on App\Models\Element. Did you mean elementset?
Loading history...
79
            return true;
80
        }
81
    }
82
}
83