Role.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using System.ComponentModel.DataAnnotations;
  2. using System.ComponentModel.DataAnnotations.Schema;
  3. using Abp.Domain.Entities;
  4. using Abp.Domain.Entities.Auditing;
  5. using VberZero.BaseSystem.Users;
  6. namespace VberZero.BaseSystem.Roles;
  7. [Table("Sys_Roles")]
  8. public class Role : FullAuditedEntity<int>, IFullAudited<User>, IMayHaveTenant
  9. {
  10. public const int MaxDisplayNameLength = 64;
  11. public const int MaxNameLength = 32;
  12. public const int MaxDescriptionLength = 5000;
  13. public virtual int? TenantId { get; set; }
  14. [Required]
  15. [StringLength(MaxNameLength)]
  16. public virtual string Name { get; set; }
  17. [Required]
  18. [StringLength(MaxDisplayNameLength)]
  19. public virtual string DisplayName { get; set; }
  20. /// <summary>
  21. /// 账户类型
  22. /// </summary>
  23. public virtual VzDefinition.AccountType AccountType { get; set; }
  24. /// <summary>
  25. /// 用户级别
  26. /// </summary>
  27. public virtual VzDefinition.UserType UserType { get; set; }
  28. [StringLength(MaxDescriptionLength)]
  29. public string Description { get; set; }
  30. public virtual bool IsStatic { get; set; }
  31. public virtual bool IsDefault { get; set; }
  32. public const int MaxConcurrencyStampLength = 128;
  33. /// <summary>
  34. /// 此角色的唯一名称。
  35. /// </summary>
  36. [Required]
  37. [StringLength(MaxNameLength)]
  38. public virtual string NormalizedName { get; set; }
  39. [ForeignKey("RoleId")]
  40. public virtual ICollection<RoleClaim> Claims { get; set; }
  41. /// <summary>
  42. /// 每当角色持久化到库时必须更改的随机值
  43. /// </summary>
  44. [StringLength(MaxConcurrencyStampLength)]
  45. public virtual string ConcurrencyStamp { get; set; } = Guid.NewGuid().ToString();
  46. public virtual User DeleterUser { get; set; }
  47. public virtual User CreatorUser { get; set; }
  48. public virtual User LastModifierUser { get; set; }
  49. [ForeignKey("RoleId")]
  50. public virtual ICollection<RolePermissionSetting> Permissions { get; set; }
  51. public Role()
  52. {
  53. Name = Guid.NewGuid().ToString("N");
  54. SetNormalizedName();
  55. AccountType = VzDefinition.AccountType.Client;
  56. UserType = VzDefinition.UserType.Ordinary;
  57. }
  58. public Role(int? tenantId, string displayName) : this()
  59. {
  60. TenantId = tenantId;
  61. DisplayName = displayName;
  62. SetNormalizedName();
  63. }
  64. public Role(int? tenantId, string name, string displayName)
  65. : this(tenantId, displayName)
  66. {
  67. Name = name;
  68. SetNormalizedName();
  69. }
  70. public virtual void SetNormalizedName()
  71. {
  72. NormalizedName = Name.ToUpperInvariant();
  73. }
  74. public override string ToString()
  75. {
  76. return $"[Role {Id}, Name={Name}]";
  77. }
  78. }