AuthorBuddy/Data/UserEntity.cs
2026-06-21 07:52:03 +02:00

30 lines
822 B
C#

using LiteDB;
namespace AuthorBuddy.Web.Data;
public enum UserRole
{
Author,
Administrator,
Blogger,
Chat
}
public class UserEntity
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public string PasswordHash { get; set; } = string.Empty;
public string TwoFactorSecret { get; set; } = string.Empty;
public bool TwoFactorEnabled { get; set; }
public List<UserRole> Roles { get; set; } = new() { UserRole.Author };
public bool IsActive { get; set; } = true;
[BsonIgnore]
public bool IsAdministrator => Roles.Contains(UserRole.Administrator);
public bool HasRole(UserRole role) => Roles.Contains(role);
public bool HasAnyRole(params UserRole[] roles) => roles.Any(HasRole);
}