Files
2021-10-15 15:06:02 +08:00

41 lines
1.1 KiB
Go

package user
import (
"SciencesServer/app/api/manage/controller"
menu2 "SciencesServer/app/api/manage/controller/menu"
model3 "SciencesServer/app/api/manage/model"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
)
type Menu struct{ *controller.Platform }
type MenuHandle func(session *service.Session) *Menu
// List 菜单列表
func (c *Menu) List() (interface{}, error) {
mSysMenu := model3.NewSysMenu()
if c.IsAdmin {
return menu2.MenuForSystem(mSysMenu)
}
mSysUserTenant := model3.NewSysUserTenant()
if isExist, err := model2.FirstField(mSysUserTenant.SysUserTenant, []string{"id", "identity"},
model2.NewWhere("tenant_id", c.TenantID), model2.NewWhere("uid", c.UID)); err != nil {
return nil, err
} else if !isExist {
return nil, nil
}
if mSysUserTenant.Identity == model2.SysUserTenantIdentityForSystemAdmin {
return menu2.MenuForTenant(mSysMenu, c.TenantID)
}
return menu2.MenuForUser(mSysMenu, c.TenantID, c.UID)
}
func NewMenu() MenuHandle {
return func(session *service.Session) *Menu {
return &Menu{Platform: &controller.Platform{Session: session}}
}
}