38 lines
884 B
Go
38 lines
884 B
Go
package handler
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/glauth/glauth/v2/pkg/config"
|
|
"github.com/glauth/ldap"
|
|
)
|
|
|
|
type HelperMaker interface {
|
|
FindUser(ctx context.Context, userName string, searchByUPN bool) (bool, config.User, error)
|
|
FindGroup(ctx context.Context, groupName string) (bool, config.Group, error)
|
|
}
|
|
|
|
// Handler is the common interface for all datastores
|
|
type Handler interface {
|
|
// read support
|
|
ldap.Binder
|
|
ldap.Searcher
|
|
ldap.Closer
|
|
|
|
// write support
|
|
ldap.Adder
|
|
ldap.Modifier // Note: modifying eg the uid or cn might change the dn because the hierarchy is determined by the backend
|
|
ldap.Deleter
|
|
|
|
// helper
|
|
HelperMaker
|
|
}
|
|
|
|
// TODO When I grow up, I want to handle pointers same as I would in C
|
|
// and not need a counter because I would not allocate statically
|
|
// but use idiomatic slicing instead
|
|
type HandlerWrapper struct {
|
|
Handlers []Handler
|
|
Count *int
|
|
}
|