public function hasRoles($expectedRoles, $oneRoleIsEnough = true, $providedRoles = null)
{
if ($providedRoles !== null) {
$roles = $providedRoles;
} else {
$roles = $this->roles();
}
$expectedRoles = (array) $expectedRoles;
if (!$expectedRoles) {
return false;
}
$count = 0;
foreach ($expectedRoles as $expectedRole) {
if ($this->hasRole($expectedRole, $roles)) {
if ($oneRoleIsEnough) {
return true;
}
$count++;
} else {
if (!$oneRoleIsEnough) {
return false;
}
}
}
if ($count === count($expectedRoles)) {
return true;
}
return false;
}