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 }