191 lines
3.6 KiB
Go
191 lines
3.6 KiB
Go
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"
|
|
}
|