Files

36 lines
876 B
Go
Raw Normal View History

2021-09-28 11:47:19 +08:00
package user
import (
2022-01-06 17:11:57 +08:00
"SciencesServer/app/api/admin/controller/menu"
2022-01-05 18:40:08 +08:00
"SciencesServer/app/api/admin/model"
2022-01-06 17:11:57 +08:00
model2 "SciencesServer/app/common/model"
2022-01-06 10:43:27 +08:00
"SciencesServer/app/session"
2021-09-28 11:47:19 +08:00
)
2022-01-06 10:43:27 +08:00
type Menu struct{ *session.Admin }
2021-09-28 11:47:19 +08:00
2022-01-06 10:43:27 +08:00
type MenuHandle func(session *session.Admin) *Menu
2021-09-28 11:47:19 +08:00
2022-01-06 17:11:57 +08:00
// Index 菜单列表
func (c *Menu) Index() ([]*menu.Tree, error) {
2022-01-05 18:40:08 +08:00
mSysMenu := model.NewSysMenu()
2021-09-28 11:47:19 +08:00
2022-01-06 17:11:57 +08:00
kinds := []model2.SysMenuKind{
model2.SysMenuKindForCatalogue,
model2.SysMenuKindForMenu,
}
2021-09-28 11:47:19 +08:00
if c.IsAdmin {
2022-01-06 17:11:57 +08:00
return menu.MenuForSystem(mSysMenu, model2.NewWhereIn("kind", kinds))
2021-09-28 11:47:19 +08:00
}
2022-03-05 15:31:22 +08:00
if c.IsSystemAdmin {
return menu.MenuForTenant(mSysMenu, c.TenantID, model2.NewWhereIn("m.kind", kinds))
}
2022-01-06 17:11:57 +08:00
return menu.MenuForUser(mSysMenu, c.TenantID, c.UID, model2.NewWhereIn("m.kind", kinds))
2021-09-28 11:47:19 +08:00
}
func NewMenu() MenuHandle {
2022-01-06 10:43:27 +08:00
return func(session *session.Admin) *Menu {
return &Menu{Admin: session}
2021-09-28 11:47:19 +08:00
}
}