permission_service.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package service
  2. import (
  3. "github.com/druidcaesa/gotool"
  4. dao2 "ulink-admin/modules/system/dao"
  5. "ulink-admin/modules/system/models/model"
  6. )
  7. type PermissionService struct {
  8. RoleDao *dao2.RoleDao `inject:""`
  9. MenuDao *dao2.MenuDao `inject:""`
  10. }
  11. // GetRolePermissionByUserId 查询用户角色集合
  12. func (s PermissionService) GetRolePermissionByUserId(user *model.SysUser) *[]string {
  13. admin := model.SysUser{}.IsAdmin(user.Id)
  14. roleKeys := s.RoleDao.GetRolePermissionByUserId(user.Id)
  15. if admin && roleKeys != nil {
  16. *roleKeys = append(*roleKeys, "admin")
  17. }
  18. duplication := gotool.StrArrayUtils.ArrayDuplication(*roleKeys)
  19. return &duplication
  20. }
  21. // GetMenuPermission 获取菜单数据权限
  22. func (s PermissionService) GetMenuPermission(user *model.SysUser) *[]string {
  23. flag := model.SysUser{}.IsAdmin(user.Id)
  24. //查询菜单数据权限
  25. permission := s.MenuDao.GetMenuPermission(user.Id)
  26. if flag && permission != nil {
  27. *permission = append(*permission, "*:*:*")
  28. }
  29. var ret []string
  30. duplication := gotool.StrArrayUtils.ArrayDuplication(*permission)
  31. for i := 0; i < len(duplication); i++ {
  32. if (i > 0 && duplication[i-1] == duplication[i]) || len(duplication[i]) == 0 {
  33. continue
  34. }
  35. ret = append(ret, duplication[i])
  36. }
  37. return &ret
  38. }
  39. // GetAllPermission 获取菜单数据权限
  40. func (s PermissionService) GetAllPermission() *[]string {
  41. //查询菜单数据权限
  42. permission := s.MenuDao.GetAllPermission()
  43. return permission
  44. }