TokenModel.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Linq;
  5. namespace Infrastructure.Model
  6. {
  7. public class TokenModel
  8. {
  9. /// <summary>
  10. /// 用户id
  11. /// </summary>
  12. public long UserId { get; set; }
  13. /// <summary>
  14. /// 部门id
  15. /// </summary>
  16. public long DeptId { get; set; }
  17. /// <summary>
  18. /// 登录用户名
  19. /// </summary>
  20. public string UserName { get; set; }
  21. /// <summary>
  22. /// 用户昵称
  23. /// </summary>
  24. public string NickName { get; set; }
  25. /// <summary>
  26. /// 角色集合(eg:admin,common)
  27. /// </summary>
  28. public List<string> RoleKeys { get; set; } = [];
  29. /// <summary>
  30. /// 角色集合(数据权限过滤使用)
  31. /// </summary>
  32. public List<Roles> Roles { get; set; }
  33. /// <summary>
  34. /// Jwt过期时间
  35. /// </summary>
  36. public DateTime ExpireTime { get; set; }
  37. /// <summary>
  38. /// 租户ID
  39. /// </summary>
  40. public string TenantId { get; set; }
  41. /// <summary>
  42. /// 用户所有权限
  43. /// </summary>
  44. public List<string> Permissions { get; set; } = [];
  45. public TokenModel()
  46. {
  47. }
  48. public TokenModel(TokenModel info, List<Roles> roles)
  49. {
  50. UserId = info.UserId;
  51. UserName = info.UserName;
  52. DeptId = info.DeptId;
  53. Roles = roles;
  54. NickName = info.NickName;
  55. RoleKeys = roles.Select(f => f.RoleKey).ToList();
  56. }
  57. public bool HasPermission(string permission)
  58. {
  59. if (IsAdmin()) return true;
  60. return Permissions != null && Permissions.Contains(permission);
  61. }
  62. /// <summary>
  63. /// 是否管理员
  64. /// </summary>
  65. /// <returns></returns>
  66. public bool IsAdmin()
  67. {
  68. return RoleKeys.Contains(GlobalConstant.AdminRole) || UserId == 1;
  69. }
  70. }
  71. public class Roles
  72. {
  73. public long RoleId { get; set; }
  74. public string RoleKey { get; set; }
  75. public int DataScope { get; set; }
  76. }
  77. }