From bc87a406ebb8aa9d595526e4fc3b726f7ef5ad13 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 12 Nov 2020 16:42:46 +0800 Subject: refactor(database): Add user permission table. --- BackEnd/Timeline/Entities/UserAvatarEntity.cs | 1 - BackEnd/Timeline/Entities/UserEntity.cs | 5 ++++- BackEnd/Timeline/Entities/UserPermissionEntity.cs | 21 +++++++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 BackEnd/Timeline/Entities/UserPermissionEntity.cs (limited to 'BackEnd/Timeline/Entities') diff --git a/BackEnd/Timeline/Entities/UserAvatarEntity.cs b/BackEnd/Timeline/Entities/UserAvatarEntity.cs index 3c2720f7..96a8e3ff 100644 --- a/BackEnd/Timeline/Entities/UserAvatarEntity.cs +++ b/BackEnd/Timeline/Entities/UserAvatarEntity.cs @@ -4,7 +4,6 @@ using System.ComponentModel.DataAnnotations.Schema; namespace Timeline.Entities { - [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1819:Properties should not return arrays", Justification = "This is data base entity.")] [Table("user_avatars")] public class UserAvatarEntity { diff --git a/BackEnd/Timeline/Entities/UserEntity.cs b/BackEnd/Timeline/Entities/UserEntity.cs index 0cfaa335..83fe9aea 100644 --- a/BackEnd/Timeline/Entities/UserEntity.cs +++ b/BackEnd/Timeline/Entities/UserEntity.cs @@ -11,7 +11,6 @@ namespace Timeline.Entities public const string User = "user"; } - [System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "This is an entity class.")] [Table("users")] public class UserEntity { @@ -47,10 +46,14 @@ namespace Timeline.Entities public UserAvatarEntity? Avatar { get; set; } +#pragma warning disable CA2227 // Collection properties should be read only + public List Permissions { get; set; } = default!; + public List Timelines { get; set; } = default!; public List TimelinePosts { get; set; } = default!; public List TimelinesJoined { get; set; } = default!; +#pragma warning restore CA2227 // Collection properties should be read only } } diff --git a/BackEnd/Timeline/Entities/UserPermissionEntity.cs b/BackEnd/Timeline/Entities/UserPermissionEntity.cs new file mode 100644 index 00000000..395ad0bd --- /dev/null +++ b/BackEnd/Timeline/Entities/UserPermissionEntity.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Timeline.Entities +{ + [Table("user_permission")] + public class UserPermissionEntity + { + [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public long Id { get; set; } + + [Column("user_id")] + public long UserId { get; set; } + + [ForeignKey(nameof(UserId))] + public UserEntity User { get; set; } = default!; + + [Column("permission")] + public string Permission { get; set; } = default!; + } +} -- cgit v1.2.3