sys_role_menu.go 3.07 KB
Newer Older
haoyanbin's avatar
1  
haoyanbin committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
package service

import (
	"github.com/go-admin-team/go-admin-core/sdk/service"
)

// SysRoleMenu 即将弃用结构体
type SysRoleMenu struct {
	service.Service
}

//func (e *SysRoleMenu) ReloadRule(tx *gorm.DB, roleId int, menuId []int) (err error) {
//	var role models.SysRole
//
//	msgID := e.MsgID
//
//	menu := make([]models.Menu, 0)
//	roleMenu := make([]models.RoleMenu, len(menuId))
//	casbinRule := make([]models.CasbinRule, 0)
//	//先删除所有的
//	err = e.DeleteRoleMenu(tx, roleId)
//	if err != nil {
//		return
//	}
//
//	// 在事务中做一些数据库操作(从这一点使用'tx',而不是'db')
//	err = tx.Where("role_id = ?", roleId).First(&role).Error
//	if err != nil {
//		log.Errorf("msgID[%s] get role error, %s", msgID, err.Error())
//		return
//	}
//	err = tx.Where("menu_id in (?)", menuId).
//		//Select("path, action, menu_id, menu_type").
//		Find(&menu).Error
//	if err != nil {
//		log.Errorf("msgID[%s] get menu error, %s", msgID, err.Error())
//		return
//	}
//	for i := range menu {
//		roleMenu[i] = models.RoleMenu{
//			RoleId:   role.RoleId,
//			MenuId:   menu[i].MenuId,
//			RoleName: role.RoleKey,
//		}
//		if menu[i].MenuType == "A" {
//			casbinRule = append(casbinRule, models.CasbinRule{
//				PType: "p",
//				V0:    role.RoleKey,
//				V1:    menu[i].Path,
//				V2:    menu[i].Action,
//			})
//		}
//	}
//	err = tx.Create(&roleMenu).Error
//	if err != nil {
//		log.Errorf("msgID[%s] batch create role's menu error, %s", msgID, err.Error())
//		return
//	}
//	if len(casbinRule) > 0 {
//		err = tx.Create(&casbinRule).Error
//		if err != nil {
//			log.Errorf("msgID[%s] batch create casbin rule error, %s", msgID, err.Error())
//			return
//		}
//	}
//
//	return
//}

//func (e *SysRoleMenu) DeleteRoleMenu(tx *gorm.DB, roleId int) (err error) {
//	msgID := e.MsgID
//	err = tx.Where("role_id = ?", roleId).
//		Delete(&models.SysRoleDept{}).Error
//	if err != nil {
//		log.Errorf("msgID[%s] delete role's dept error, %s", msgID, err.Error())
//		return
//	}
//	err = tx.Where("role_id = ?", roleId).
//		Delete(&models.RoleMenu{}).Error
//	if err != nil {
//		log.Errorf("msgID[%s] delete role's menu error, %s", msgID, err.Error())
//		return
//	}
//	var role models.SysRole
//	err = tx.Where("role_id = ?", roleId).
//		First(&role).Error
//	if err != nil {
//		log.Errorf("msgID[%s] get role error, %s", msgID, err.Error())
//		return
//	}
//	err = tx.Where("v0 = ?", role.RoleKey).
//		Delete(&models.CasbinRule{}).Error
//	if err != nil {
//		log.Errorf("msgID[%s] delete casbin rule error, %s", msgID, err.Error())
//		return
//	}
//	return
//}
//
//func (e *SysRoleMenu) GetIDS(tx *gorm.DB, roleName string) ([]models.MenuPath, error) {
//	var r []models.MenuPath
//	table := tx.Select("sys_menu.path").Table("sys_role_menu")
//	table = table.Joins("left join sys_role on sys_role.role_id=sys_role_menu.role_id")
//	table = table.Joins("left join sys_menu on sys_menu.id=sys_role_menu.menu_id")
//	table = table.Where("sys_role.role_name = ? and sys_menu.type=1", roleName)
//	if err := table.Find(&r).Error; err != nil {
//		return nil, err
//	}
//	return r, nil
//}