package roles

import "slices"

// subject — реализация IHasRole: субъект с фиксированным набором ролей.
type subject struct {
	roles []string
}

// NewSubject создаёт субъект с заданными ролями (например, для тестов
// авторизации или in-memory проверок прав).
func NewSubject(roles ...string) IHasRole {
	return &subject{roles: roles}
}

// HasRole возвращает true, если роль есть в наборе ролей субъекта.
func (s *subject) HasRole(role string) bool {
	return slices.Contains(s.roles, role)
}
