package models import ( "errors" "git.nobla.cn/golang/aeus-admin/pb" "git.nobla.cn/golang/aeus-admin/types" restTypes "git.nobla.cn/golang/rest/types" "gorm.io/gorm" ) type ( User struct { pb.UserModel } Menu struct { pb.MenuModel } Login struct { pb.LoginModel } Department struct { pb.DepartmentModel } Role struct { pb.RoleModel } Permission struct { pb.PermissionModel } RolePermission struct { pb.RolePermissionModel } Setting struct { pb.SettingModel } Activity struct { pb.ActivityModel } ) func (m *User) GetMenu() *types.Menu { return &types.Menu{ Name: "OrganizeUser", Parent: "Organize", } } func (m *Login) GetMenu() *types.Menu { return &types.Menu{ Name: "OrganizeLogin", Parent: "Organize", } } func (m *Login) Scenario() []string { return []string{restTypes.ScenarioList, restTypes.ScenarioExport} } func (m *Menu) GetMenu() *types.Menu { return &types.Menu{ Name: "OrganizeMenu", Parent: "Organize", } } func (m *Menu) BeforeDelete(tx *gorm.DB) (err error) { var count int64 if err = tx.Model(&Menu{}).Where("`parent` = ?", m.Name).Count(&count).Error; err != nil { return } if count > 0 { err = errors.New("please delete sub menus first") } return } func (m *Menu) ModelPermissions() map[string]string { return map[string]string{ "organize:permission:list": "权限", } } func (m *Department) GetMenu() *types.Menu { return &types.Menu{ Name: "OrganizeDepartment", Parent: "Organize", } } func (m *Department) BeforeDelete(tx *gorm.DB) (err error) { var count int64 if err = tx.Model(&Department{}).Where("`parent_id` = ?", m.Id).Count(&count).Error; err != nil { return } if count > 0 { return errors.New("please delete sub department first") } if err = tx.Model(&User{}).Where("`dept_id` = ?", m.Id).Count(&count).Error; err != nil { return } if count > 0 { err = errors.New("please delete user first") } return } func (m *Role) GetMenu() *types.Menu { return &types.Menu{ Name: "OrganizeRole", Parent: "Organize", } } func (m *Role) ModelPermissions() map[string]string { return map[string]string{ "organize:role_permission:list": "权限", } } func (m *Role) BeforeDelete(tx *gorm.DB) (err error) { var count int64 if err = tx.Model(&User{}).Where("`role` = ?", m.Name).Count(&count).Error; err != nil { return } if count > 0 { err = errors.New("please delete user first") } return } func (m *Permission) GetMenu() *types.Menu { return &types.Menu{ Name: "OrganizePermission", Parent: "Organize", Hidden: true, Uri: "/organize/menu/permission/:id", ViewPath: "../views/organize/menu/Permission.vue", } } func (m *Permission) GetPermission(s string) string { return "organize:permission:list" } func (m *RolePermission) GetMenu() *types.Menu { return &types.Menu{ Name: "OrganizeRolePermission", Parent: "Organize", Hidden: true, Uri: "/organize/role/permission/:id", ViewPath: "../views/organize/role/Permission.vue", } } func (m *RolePermission) GetPermission(s string) string { return "organize:role_permission:list" } func (m *Setting) GetMenu() *types.Menu { return &types.Menu{ Name: "SystemSetting", Parent: "System", } } func (m *Setting) ModuleName() string { return "system" } func (m *Activity) GetMenu() *types.Menu { return &types.Menu{ Name: "SystemActivity", Parent: "System", } } func (m *Activity) Scenario() []string { return []string{restTypes.ScenarioList, restTypes.ScenarioExport} } func (m *Activity) ModuleName() string { return "system" } func (m *Activity) GetPermission(s string) string { return "system:activity:list" }