You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
4.5 KiB
147 lines
4.5 KiB
package http |
|
|
|
import ( |
|
"net/http" |
|
|
|
"go-common/app/admin/main/manager/conf" |
|
"go-common/app/admin/main/manager/service" |
|
"go-common/library/log" |
|
bm "go-common/library/net/http/blademaster" |
|
"go-common/library/net/http/blademaster/middleware/permit" |
|
"go-common/library/net/http/blademaster/middleware/verify" |
|
"go-common/library/net/rpc/warden" |
|
) |
|
|
|
var ( |
|
mngSvc *service.Service |
|
vfySvc *verify.Verify |
|
permitSvc *permit.Permit |
|
) |
|
|
|
// Init init http sever instance. |
|
func Init(c *conf.Config, s *service.Service) { |
|
mngSvc = s |
|
vfySvc = verify.New(nil) |
|
wardenConf := &warden.ClientConfig{ |
|
NonBlock: true, |
|
} |
|
permitSvc = permit.New2(wardenConf) |
|
// init inner router |
|
engine := bm.DefaultServer(c.HTTPServer) |
|
innerRouter(engine) |
|
// init inner server |
|
if err := engine.Start(); err != nil { |
|
log.Error("engine.Start error(%v)", err) |
|
panic(err) |
|
} |
|
} |
|
|
|
func innerRouter(e *bm.Engine) { |
|
e.Ping(ping) |
|
g := e.Group("/x/admin/manager") |
|
{ |
|
g.GET("/auth", permitSvc.Verify2(), authUser) |
|
g.GET("/heartbeat", permitSvc.Verify2(), heartbeat) |
|
g.GET("/logout", logout) |
|
g.GET("/permission", vfySvc.Verify, permissions) |
|
log := g.Group("/log", permitSvc.Permit2("")) |
|
{ |
|
log.GET("/audit", searchLogAudit) |
|
log.GET("/action", searchLogAction) |
|
} |
|
internal := g.Group("/internal", vfySvc.Verify) |
|
{ |
|
internal.GET("/user/role", userRole) |
|
internal.GET("/business/role", roleList) |
|
internal.GET("/tag/list", tagList) |
|
internal.GET("/control/list", tagControl) |
|
internal.GET("/user/roles", userRoles) |
|
internal.GET("/user/state/up", stateUp) |
|
internal.GET("/user/list", userList) |
|
internal.GET("/roles", allRoles) |
|
internal.POST("/role/add", addRole) |
|
} |
|
gusers := g.Group("/users", vfySvc.Verify) |
|
{ |
|
gusers.GET("/department/all", departments) |
|
gusers.GET("/role/all", roles) |
|
gusers.GET("/department/relation", usersByDepartment) |
|
gusers.GET("/role/relation", usersByRole) |
|
gusers.GET("", users) |
|
gusers.GET("/total", usersTotal) |
|
gusers.GET("/unames", usersNames) |
|
gusers.GET("/uids", userIds) |
|
gusers.GET("/udepts", usersDepts) |
|
} |
|
grank := g.Group("/rank", permitSvc.Verify2()) |
|
{ |
|
grank.GET("/group/info", rankGroup) |
|
grank.GET("/group/list", rankGroups) |
|
grank.POST("/group/add", addRankGroup) |
|
grank.POST("/group/update", updateRankGroup) |
|
grank.POST("/group/del", delRankGroup) |
|
grank.POST("/user/add", addRankUser) |
|
grank.GET("/user/list", rankUsers) |
|
grank.POST("/user/save", saveRankUser) |
|
grank.POST("/user/del", delRankUser) |
|
} |
|
tag := g.Group("/tag", permitSvc.Permit2("")) |
|
{ |
|
tag.POST("/type/add", addType) |
|
tag.POST("/type/update", updateType) |
|
tag.POST("/type/delete", deleteType) |
|
tag.POST("/add", addTag) |
|
tag.POST("/update", updateTag) |
|
tag.POST("/batch/state/update", batchUpdateState) |
|
tag.POST("/control/add", addControl) |
|
tag.POST("/control/update", updateControl) |
|
tag.POST("/attr/update", attrUpdate) |
|
tag.GET("/attr/list", attrList) |
|
tag.GET("/list", tagList) |
|
tag.GET("/type/list", typeList) |
|
tag.GET("/control", tagControl) |
|
} |
|
reason := g.Group("/reason", permitSvc.Permit2("")) |
|
{ |
|
reason.GET("/catesecext/list", cateSecExtList) |
|
reason.POST("/catesecext/add", addCateSecExt) |
|
reason.POST("/catesecext/update", updateCateSecExt) |
|
reason.POST("/catesecext/ban", banCateSecExt) |
|
reason.GET("/association/list", associationList) |
|
reason.POST("/association/add", addAssociation) |
|
reason.POST("/association/update", updateAssociation) |
|
reason.POST("/association/ban", banAssociation) |
|
reason.GET("/list", reasonList) |
|
reason.POST("/add", addReason) |
|
reason.POST("/update", updateReason) |
|
reason.POST("/batch/state/update", batchUpdateReasonState) |
|
reason.GET("/dropdown/list", dropDownList) |
|
reason.GET("/business/attr", businessAttr) |
|
} |
|
business := g.Group("/business", permitSvc.Permit2("")) |
|
{ |
|
business.POST("/add", addBusiness) |
|
business.POST("/update", updateBusiness) |
|
business.POST("/role/add", addRole) |
|
business.POST("/role/update", updateRole) |
|
business.POST("/user/add", addUser) |
|
business.POST("/user/update", updateUser) |
|
business.POST("/state/update", updateState) |
|
business.POST("/user/delete", deleteUser) |
|
business.GET("/list", businessList) |
|
business.GET("/flow/list", flowList) |
|
business.GET("/user/list", userList) |
|
business.GET("/role/list", roleList) |
|
business.GET("/user/role", userRole) |
|
} |
|
} |
|
} |
|
|
|
// ping check server ok. |
|
func ping(c *bm.Context) { |
|
var err error |
|
if err = mngSvc.Ping(c); err != nil { |
|
log.Error("service ping error(%v)", err) |
|
c.AbortWithStatus(http.StatusServiceUnavailable) |
|
} |
|
}
|
|
|