github.com/infraboard/keyauth@v0.8.1/apps/provider/ldap.go (about) 1 package provider 2 3 import ( 4 "encoding/json" 5 "fmt" 6 7 "github.com/infraboard/mcube/http/request" 8 "github.com/infraboard/mcube/types/ftime" 9 ) 10 11 // NewLDAPConfig todo 12 func NewLDAPConfig(req *SaveLDAPConfigRequest) (*LDAPConfig, error) { 13 tk := req.GetToken() 14 if tk == nil { 15 return nil, fmt.Errorf("token requird") 16 } 17 18 if err := req.Config.Validate(); err != nil { 19 return nil, err 20 } 21 22 // 补充默认BaseDN 23 if req.BaseDN == "" { 24 req.BaseDN = req.GetBaseDNFromUser() 25 } 26 27 ins := &LDAPConfig{ 28 Domain: tk.Domain, 29 Creater: tk.Account, 30 CreateAt: ftime.Now(), 31 UpdateAt: ftime.Now(), 32 SaveLDAPConfigRequest: req, 33 } 34 return ins, nil 35 } 36 37 // NewDefaultLDAPConfig todo 38 func NewDefaultLDAPConfig() *LDAPConfig { 39 return &LDAPConfig{ 40 SaveLDAPConfigRequest: NewSaveLDAPConfigRequest(), 41 } 42 } 43 44 // LDAPConfig todo 45 type LDAPConfig struct { 46 Domain string `bson:"_id" json:"domain,omitempty"` // 所属域ID 47 Creater string `bson:"creater" json:"creater,omitempty"` // 创建人 48 CreateAt ftime.Time `bson:"create_at" json:"create_at,omitempty"` // 创建时间 49 UpdateAt ftime.Time `bson:"update_at" json:"update_at,omitempty"` // 更新时间 50 *SaveLDAPConfigRequest `bson:",inline"` 51 } 52 53 // Merge todo 54 func (ldap *LDAPConfig) Merge(data *LDAPConfig) { 55 mergeData, _ := json.Marshal(data) 56 json.Unmarshal(mergeData, ldap) 57 } 58 59 // NewLDAPSet 实例化 60 func NewLDAPSet(req *request.PageRequest) *LDAPSet { 61 return &LDAPSet{ 62 PageRequest: req, 63 Items: []*LDAPConfig{}, 64 } 65 } 66 67 // LDAPSet 列表 68 type LDAPSet struct { 69 *request.PageRequest 70 71 Total int64 `json:"total"` 72 Items []*LDAPConfig `json:"items"` 73 } 74 75 // Add 添加应用 76 func (s *LDAPSet) Add(item *LDAPConfig) { 77 s.Items = append(s.Items, item) 78 }