Post-merge some issues were discovered with the ways typing is used for proto reflection. This will be reworked without moving the subtypes around.
53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package ldap
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/hashicorp/boundary/globals"
|
|
"github.com/hashicorp/boundary/internal/auth"
|
|
"github.com/hashicorp/boundary/internal/db"
|
|
"github.com/hashicorp/boundary/internal/errors"
|
|
"github.com/hashicorp/boundary/internal/types/subtypes"
|
|
)
|
|
|
|
func init() {
|
|
if err := subtypes.Register(auth.Domain, Subtype, globals.LdapAuthMethodPrefix, globals.LdapAccountPrefix, globals.LdapManagedGroupPrefix); err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
const (
|
|
Subtype = subtypes.Subtype("ldap")
|
|
)
|
|
|
|
func newAuthMethodId(ctx context.Context) (string, error) {
|
|
const op = "ldap.newAuthMethodId"
|
|
id, err := db.NewPublicId(ctx, globals.LdapAuthMethodPrefix)
|
|
if err != nil {
|
|
return "", errors.Wrap(ctx, err, op)
|
|
}
|
|
return id, nil
|
|
}
|
|
|
|
func newAccountId(ctx context.Context, authMethodId, loginName string) (string, error) {
|
|
const op = "ldap.newAccountId"
|
|
// there's a unique index on: auth method id + login name
|
|
id, err := db.NewPublicId(ctx, globals.LdapAccountPrefix, db.WithPrngValues([]string{authMethodId, loginName}))
|
|
if err != nil {
|
|
return "", errors.Wrap(ctx, err, op)
|
|
}
|
|
return id, nil
|
|
}
|
|
|
|
func newManagedGroupId(ctx context.Context) (string, error) {
|
|
const op = "ldap.newManagedGroupId"
|
|
id, err := db.NewPublicId(ctx, globals.LdapManagedGroupPrefix)
|
|
if err != nil {
|
|
return "", errors.Wrap(ctx, err, op)
|
|
}
|
|
return id, nil
|
|
}
|