github.com/infraboard/keyauth@v0.8.1/apps/role/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/role" 8 "github.com/infraboard/keyauth/apps/user/types" 9 ) 10 11 var ( 12 api = &handler{} 13 ) 14 15 type handler struct { 16 service role.ServiceServer 17 } 18 19 // Registry 注册HTTP服务路由 20 func (h *handler) Registry(router router.SubRouter) { 21 r := router.ResourceRouter("role") 22 23 r.BasePath("roles") 24 r.Handle("POST", "/", h.CreateRole).SetAllow(types.UserType_PERM_ADMIN) 25 r.Handle("GET", "/", h.QueryRole) 26 r.Handle("GET", "/:id", h.DescribeRole) 27 r.Handle("DELETE", "/:id", h.DeleteRole).SetAllow(types.UserType_PERM_ADMIN) 28 r.Handle("GET", "/:id/permissions", h.ListRolePermission) 29 r.Handle("POST", "/:id/permissions", h.AddPermissionToRole).SetAllow(types.UserType_PERM_ADMIN) 30 r.Handle("DELETE", "/:id/permissions", h.RemovePermissionFromRole).SetAllow(types.UserType_PERM_ADMIN) 31 r.BasePath("permissions") 32 r.Handle("PUT", "/:id", h.UpdatePermission).SetAllow(types.UserType_PERM_ADMIN) 33 } 34 35 func (h *handler) Config() error { 36 h.service = app.GetGrpcApp(role.AppName).(role.ServiceServer) 37 return nil 38 } 39 40 func (h *handler) Name() string { 41 return role.AppName 42 } 43 44 func init() { 45 app.RegistryHttpApp(api) 46 }