| @@ 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 |
|