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) }