| "v.io/v23/services/security/access" |
| "v.io/v23/services/security/groups" |
| var _ ipc.Dispatcher = (*manager)(nil) |
| func NewManager(st Store, acl access.TaggedACLMap) *manager { |
| return &manager{st: st, acl: acl} |
| func (m *manager) Lookup(suffix string) (interface{}, security.Authorizer, error) { |
| suffix = strings.TrimPrefix(suffix, "/") |
| // TODO(sadovsky): Check that suffix is a valid group name. |
| // TODO(sadovsky): Use a real authorizer. Note, this authorizer will be |
| // relatively permissive. Stricter access control happens in the individual |
| // RPC methods. See syncgroupserver/main.go for example. |
| return groups.GroupServer(&group{name: suffix, m: m}), nil, nil |