github.com/infraboard/keyauth@v0.8.1/apps/user/http/http.go (about) 1 package http 2 3 import ( 4 "github.com/infraboard/mcube/app" 5 "github.com/infraboard/mcube/http/router" 6 7 "github.com/infraboard/keyauth/apps/domain" 8 "github.com/infraboard/keyauth/apps/user" 9 "github.com/infraboard/keyauth/apps/user/types" 10 ) 11 12 var ( 13 api = &handler{} 14 ) 15 16 type handler struct { 17 service user.ServiceServer 18 domain domain.ServiceServer 19 } 20 21 // Registry 注册HTTP服务路由 22 func (h *handler) Registry(router router.SubRouter) { 23 prmary := router.ResourceRouter("primary_account") 24 prmary.Allow(types.UserType_SUPPER) 25 prmary.BasePath("users") 26 prmary.Handle("POST", "/", h.CreatePrimayAccount) 27 prmary.Handle("DELETE", "/", h.DestroyPrimaryAccount) 28 29 ram := router.ResourceRouter("ram_account") 30 ram.Allow(types.UserType_PRIMARY, types.UserType_DOMAIN_ADMIN, types.UserType_ORG_ADMIN) 31 ram.BasePath("sub_users") 32 ram.Handle("POST", "/", h.CreateSubAccount) 33 ram.Handle("GET", "/", h.QuerySubAccount) 34 ram.Handle("GET", "/:account", h.DescribeSubAccount) 35 ram.Handle("PATCH", "/:account", h.PatchSubAccount) 36 ram.Handle("DELETE", "/:account", h.DestroySubAccount) 37 ram.BasePath("manage") 38 ram.Handle("POST", "/block", h.BlockSubAccount) 39 40 portal := router.ResourceRouter("profile") 41 portal.BasePath("profile") 42 portal.Handle("GET", "/", h.QueryProfile) 43 portal.Handle("GET", "/domain", h.QueryDomain) 44 portal.Handle("PUT", "/", h.PutProfile) 45 portal.Handle("PATCH", "/", h.PatchProfile) 46 47 dom := router.ResourceRouter("domain") 48 dom.Allow(types.UserType_DOMAIN_ADMIN) 49 dom.BasePath("settings/domain") 50 dom.Handle("PUT", "/info", h.UpdateDomainInfo) 51 dom.Handle("PUT", "/security", h.UpdateDomainSecurity) 52 53 pass := router.ResourceRouter("password") 54 pass.BasePath("password") 55 pass.Handle("POST", "/", h.GeneratePassword) 56 pass.Handle("PUT", "/", h.UpdatePassword) 57 } 58 59 func (h *handler) Config() error { 60 h.service = app.GetGrpcApp(user.AppName).(user.ServiceServer) 61 h.domain = app.GetGrpcApp(domain.AppName).(domain.ServiceServer) 62 return nil 63 } 64 65 func (h *handler) Name() string { 66 return user.AppName 67 } 68 69 func init() { 70 app.RegistryHttpApp(api) 71 }