github.com/infraboard/keyauth@v0.8.1/apps/provider/spec.go (about)

     1  package provider
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/infraboard/mcube/http/request"
     7  
     8  	"github.com/infraboard/keyauth/apps/provider/auth/ldap"
     9  	"github.com/infraboard/keyauth/apps/token/session"
    10  	"github.com/infraboard/keyauth/common/dryrun"
    11  )
    12  
    13  // LDAP todo
    14  type LDAP interface {
    15  	SaveConfig(*SaveLDAPConfigRequest) (*LDAPConfig, error)
    16  	QueryConfig(*QueryLDAPConfigRequest) (*LDAPSet, error)
    17  	DescribeConfig(*DescribeLDAPConfig) (*LDAPConfig, error)
    18  	DeleteConfig(*DeleteLDAPConfig) error
    19  	CheckConnect(*DescribeLDAPConfig) error
    20  }
    21  
    22  // NewSaveLDAPConfigRequest todo
    23  func NewSaveLDAPConfigRequest() *SaveLDAPConfigRequest {
    24  	return &SaveLDAPConfigRequest{
    25  		Session: session.NewSession(),
    26  		Enabled: true,
    27  		Config:  ldap.NewDefaultConfig(),
    28  		DryRun:  dryrun.NewDryRun(),
    29  	}
    30  }
    31  
    32  // SaveLDAPConfigRequest todo
    33  type SaveLDAPConfigRequest struct {
    34  	Enabled          bool `bson:"enabled" json:"enabled"`
    35  	*ldap.Config     `bson:",inline"`
    36  	*session.Session `bson:"-" json:"-"`
    37  	*dryrun.DryRun   `bson:"-" json:"-"`
    38  }
    39  
    40  // Validate todo
    41  func (req *SaveLDAPConfigRequest) Validate() error {
    42  	return nil
    43  }
    44  
    45  // NewQueryLDAPConfigRequest todo
    46  func NewQueryLDAPConfigRequest(pageReq *request.PageRequest) *QueryLDAPConfigRequest {
    47  	return &QueryLDAPConfigRequest{
    48  		Session:     session.NewSession(),
    49  		PageRequest: pageReq,
    50  	}
    51  }
    52  
    53  // QueryLDAPConfigRequest 查询LDAP配置
    54  type QueryLDAPConfigRequest struct {
    55  	*session.Session
    56  	*request.PageRequest
    57  }
    58  
    59  // NewDescribeLDAPConfigWithBaseDN todo
    60  func NewDescribeLDAPConfigWithBaseDN(baseDN string) *DescribeLDAPConfig {
    61  	return &DescribeLDAPConfig{
    62  		BaseDN: baseDN,
    63  	}
    64  }
    65  
    66  // NewDescribeLDAPConfigWithDomain todo
    67  func NewDescribeLDAPConfigWithDomain(domain string) *DescribeLDAPConfig {
    68  	return &DescribeLDAPConfig{
    69  		Domain: domain,
    70  	}
    71  }
    72  
    73  // DescribeLDAPConfig 描述配置
    74  type DescribeLDAPConfig struct {
    75  	Domain string
    76  	BaseDN string
    77  }
    78  
    79  // Validate todo
    80  func (req *DescribeLDAPConfig) Validate() error {
    81  	if req.Domain == "" && req.BaseDN == "" {
    82  		return fmt.Errorf("domain or base_dn required")
    83  	}
    84  
    85  	return nil
    86  }
    87  
    88  // DeleteLDAPConfig todo
    89  type DeleteLDAPConfig struct {
    90  	ID string
    91  }