@@ 126-141 (lines=16) @@ | ||
123 | * |
|
124 | * @return bool |
|
125 | */ |
|
126 | public function hasRole($roles): bool |
|
127 | { |
|
128 | if (\is_string($roles) && false !== \strpos($roles, '|')) { |
|
129 | $roles = \explode('|', $roles); |
|
130 | } |
|
131 | ||
132 | if (\is_string($roles) || $roles instanceof Role) { |
|
133 | return $this->roles->contains('name', $roles->name ?? $roles); |
|
134 | } |
|
135 | ||
136 | $roles = \collect()->make($roles)->map(function ($role) { |
|
137 | return $role instanceof Role ? $role->name : $role; |
|
138 | }); |
|
139 | ||
140 | return ! $roles->intersect($this->roles->pluck('name'))->isEmpty(); |
|
141 | } |
|
142 | ||
143 | /** |
|
144 | * Determine if the model has any of the given role(s). |
|
@@ 162-177 (lines=16) @@ | ||
159 | * |
|
160 | * @return bool |
|
161 | */ |
|
162 | public function hasAllRoles($roles): bool |
|
163 | { |
|
164 | if (\is_string($roles) && false !== strpos($roles, '|')) { |
|
165 | $roles = \explode('|', $roles); |
|
166 | } |
|
167 | ||
168 | if (\is_string($roles) || $roles instanceof Role) { |
|
169 | return $this->hasRole($roles); |
|
170 | } |
|
171 | ||
172 | $roles = \collect()->make($roles)->map(function ($role) { |
|
173 | return $role instanceof Role ? $role->name : $role; |
|
174 | }); |
|
175 | ||
176 | return $roles->intersect($this->roles->pluck('name')) == $roles; |
|
177 | } |
|
178 | ||
179 | /** |
|
180 | * Return Role object |