forked from GoAdminGroup/go-admin
/
router.go
64 lines (53 loc) · 1.81 KB
/
router.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package admin
import (
"github.com/chenhg5/go-admin/context"
"github.com/chenhg5/go-admin/modules/auth"
"github.com/chenhg5/go-admin/plugins/admin/controller"
"github.com/chenhg5/go-admin/template"
)
func InitRouter(prefix string) *context.App {
app := context.NewApp()
app.Group(prefix)
{
// auth
app.GET("/login", controller.ShowLogin)
app.POST("/signin", controller.Auth)
// auto install
app.GET("/install", controller.ShowInstall)
app.POST("/install/database/check", controller.CheckDatabase)
for _, path := range template.Get("adminlte").GetAssetList() {
app.GET("/assets"+path, controller.Assert)
}
for _, path := range template.GetComp("login").GetAssetList() {
app.GET("/assets"+path, controller.Assert)
}
authenticator := auth.SetPrefix(prefix).SetAuthFailCallback(func(ctx *context.Context) {
ctx.Write(302, map[string]string{
"Location": prefix + "/login",
}, ``)
}).SetPermissionDenyCallback(func(ctx *context.Context) {
controller.ShowErrorPage(ctx, "permission denied")
})
app.Group("", authenticator.Middleware)
{
// auth
app.GET("/logout", controller.Logout)
// menus
app.GET("/menu", controller.ShowMenu)
app.POST("/menu/delete", controller.DeleteMenu)
app.POST("/menu/new", controller.NewMenu)
app.GET("/menu/new", controller.ShowMenu)
app.POST("/menu/edit", controller.EditMenu)
app.GET("/menu/edit/show", controller.ShowEditMenu)
app.POST("/menu/order", controller.MenuOrder)
// add delete modify query
app.GET("/info/:prefix", controller.ShowInfo)
app.GET("/info/:prefix/edit", controller.ShowForm)
app.GET("/info/:prefix/new", controller.ShowNewForm)
app.POST("/edit/:prefix", controller.EditForm)
app.POST("/delete/:prefix", controller.DeleteData)
app.POST("/new/:prefix", controller.NewForm)
}
}
return app
}