36 lines
876 B
Go
36 lines
876 B
Go
package user
|
|
|
|
import (
|
|
"SciencesServer/app/api/admin/controller/menu"
|
|
"SciencesServer/app/api/admin/model"
|
|
model2 "SciencesServer/app/common/model"
|
|
"SciencesServer/app/session"
|
|
)
|
|
|
|
type Menu struct{ *session.Admin }
|
|
|
|
type MenuHandle func(session *session.Admin) *Menu
|
|
|
|
// Index 菜单列表
|
|
func (c *Menu) Index() ([]*menu.Tree, error) {
|
|
mSysMenu := model.NewSysMenu()
|
|
|
|
kinds := []model2.SysMenuKind{
|
|
model2.SysMenuKindForCatalogue,
|
|
model2.SysMenuKindForMenu,
|
|
}
|
|
if c.IsAdmin {
|
|
return menu.MenuForSystem(mSysMenu, model2.NewWhereIn("kind", kinds))
|
|
}
|
|
if c.IsSystemAdmin {
|
|
return menu.MenuForTenant(mSysMenu, c.TenantID, model2.NewWhereIn("m.kind", kinds))
|
|
}
|
|
return menu.MenuForUser(mSysMenu, c.TenantID, c.UID, model2.NewWhereIn("m.kind", kinds))
|
|
}
|
|
|
|
func NewMenu() MenuHandle {
|
|
return func(session *session.Admin) *Menu {
|
|
return &Menu{Admin: session}
|
|
}
|
|
}
|