Files
agents_and_robots/pkg/acl/config.go
T
egutierrez 386e4d3dcb feat: añadir paquete pkg/acl para control de acceso puro
Nuevo paquete puro (sin I/O) que implementa RBAC basado en roles.
Incluye: ACL, Role, RoleDef, FromMap constructor, CanDo para verificar
permisos, RoleFor para resolver rol de un usuario, y soporte para
wildcards tanto en usuarios ("*") como en acciones ("command:*").
Incluye tests completos cubriendo: ACL vacío, admin wildcard, acciones
específicas, prefix wildcards, prioridad exacto>wildcard, y múltiples
roles por usuario.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:59:00 +00:00

22 lines
487 B
Go

package acl
// RoleDef is the input shape for building an ACL — matches config.RoleCfg.
type RoleDef struct {
Users []string
Actions []string
}
// FromMap builds an ACL from a map of role name → RoleDef.
// This is the primary constructor used from the runtime.
func FromMap(roles map[string]RoleDef) ACL {
var rs []Role
for name, def := range roles {
rs = append(rs, Role{
Name: name,
Users: def.Users,
Actions: def.Actions,
})
}
return ACL{roles: rs}
}