private static function checkAccessRoles($roles)
{
if (empty($roles)) {
return false;
}
/** @var User $user */
$user = Instance::ensure('user', User::className());
$roles = ArrayHelper::toArray($roles);
foreach ($roles as $role) {
if ($role === '?' && $user->getIsGuest()) {
return true;
} elseif ($role === '@' && !$user->getIsGuest()) {
return true;
} elseif ($user->can($role)) {
return true;
}
}
return false;
}