generated from VLADIMIR/template
20 lines
655 B
Go
20 lines
655 B
Go
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)
|
|
}
|