github.com/infraboard/keyauth@v0.8.1/apps/provider/http/ldap.go (about) 1 package http 2 3 import ( 4 "net/http" 5 6 "github.com/infraboard/mcube/exception" 7 "github.com/infraboard/mcube/http/context" 8 "github.com/infraboard/mcube/http/request" 9 "github.com/infraboard/mcube/http/response" 10 11 "github.com/infraboard/keyauth/apps/provider" 12 "github.com/infraboard/keyauth/apps/token" 13 "github.com/infraboard/keyauth/apps/user/types" 14 ) 15 16 func (h *handler) List(w http.ResponseWriter, r *http.Request) { 17 page := request.NewPageRequestFromHTTP(r) 18 req := provider.NewQueryLDAPConfigRequest(page) 19 20 apps, err := h.service.QueryConfig(req) 21 if err != nil { 22 response.Failed(w, err) 23 return 24 } 25 26 response.Success(w, apps) 27 } 28 29 // CreateApplication 创建主账号 30 func (h *handler) Create(w http.ResponseWriter, r *http.Request) { 31 ctx := context.GetContext(r) 32 tk := ctx.AuthInfo.(*token.Token) 33 34 req := provider.NewSaveLDAPConfigRequest() 35 req.WithToken(tk) 36 req.GetDryRunParamFromHTTP(r) 37 if err := request.GetDataFromRequest(r, req); err != nil { 38 response.Failed(w, err) 39 return 40 } 41 42 if !tk.UserType.IsIn(types.UserType_SUPPER, types.UserType_PRIMARY) { 43 response.Failed(w, exception.NewPermissionDeny("只有域管理员可以设置域的LDAP")) 44 return 45 } 46 47 d, err := h.service.SaveConfig(req) 48 if err != nil { 49 response.Failed(w, err) 50 return 51 } 52 53 response.Success(w, d) 54 } 55 56 func (h *handler) Get(w http.ResponseWriter, r *http.Request) { 57 ctx := context.GetContext(r) 58 tk := ctx.AuthInfo.(*token.Token) 59 60 req := provider.NewDescribeLDAPConfigWithDomain(tk.Domain) 61 d, err := h.service.DescribeConfig(req) 62 if err != nil { 63 response.Failed(w, err) 64 return 65 } 66 67 d.Desensitize() 68 response.Success(w, d) 69 } 70 71 func (h *handler) Check(w http.ResponseWriter, r *http.Request) { 72 ctx := context.GetContext(r) 73 tk := ctx.AuthInfo.(*token.Token) 74 75 req := provider.NewDescribeLDAPConfigWithDomain(tk.Domain) 76 if err := h.service.CheckConnect(req); err != nil { 77 response.Failed(w, err) 78 return 79 } 80 81 response.Success(w, "passed") 82 }