SysPermissionService.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using Infrastructure;
  2. using Infrastructure.Attribute;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. using ZR.Model.System;
  7. using ZR.Service.System.IService;
  8. namespace ZR.Service.System
  9. {
  10. /// <summary>
  11. /// 角色权限
  12. /// </summary>
  13. [AppService(ServiceType = typeof(ISysPermissionService), ServiceLifetime = LifeTime.Transient)]
  14. public class SysPermissionService : ISysPermissionService
  15. {
  16. private readonly ISysRoleService SysRoleService;
  17. private readonly ISysMenuService SysMenuService;
  18. public SysPermissionService(
  19. ISysRoleService sysRoleService,
  20. ISysMenuService sysMenuService)
  21. {
  22. SysRoleService = sysRoleService;
  23. SysMenuService = sysMenuService;
  24. }
  25. /// <summary>
  26. /// 获取角色数据权限
  27. /// </summary>
  28. /// <param name="user">用户信息</param>
  29. /// <returns>角色权限信息</returns>
  30. public List<string> GetRolePermission(SysUser user)
  31. {
  32. List<string> roles = new List<string>();
  33. // 管理员拥有所有权限
  34. if (user.IsAdmin())
  35. {
  36. roles.Add("admin");
  37. }
  38. else
  39. {
  40. roles.AddRange(SysRoleService.SelectUserRoleKeys(user.UserId));
  41. }
  42. return roles;
  43. }
  44. /// <summary>
  45. /// 获取菜单数据权限
  46. /// </summary>
  47. /// <param name="user">用户信息</param>
  48. /// <returns>菜单权限信息</returns>
  49. public List<string> GetMenuPermission(SysUser user)
  50. {
  51. List<string> perms = new();
  52. // 管理员拥有所有权限
  53. if (user.IsAdmin() || GetRolePermission(user).Exists(f => f.Equals(GlobalConstant.AdminRole)))
  54. {
  55. perms.Add(GlobalConstant.AdminPerm);
  56. }
  57. else
  58. {
  59. perms.AddRange(SysMenuService.SelectMenuPermsByUserId(user.UserId));
  60. }
  61. return perms;
  62. }
  63. }
  64. }