diff --git a/Femto.Modules.Auth/Models/UserIdentity.cs b/Femto.Modules.Auth/Models/UserIdentity.cs index 587859d..756be41 100644 --- a/Femto.Modules.Auth/Models/UserIdentity.cs +++ b/Femto.Modules.Auth/Models/UserIdentity.cs @@ -1,6 +1,7 @@ using System.Text; using System.Text.Unicode; using Femto.Common.Domain; +using Femto.Modules.Auth.Contracts; using Femto.Modules.Auth.Models.Events; using Geralt; @@ -15,7 +16,7 @@ internal class UserIdentity : Entity public Password? Password { get; private set; } public ICollection Sessions { get; private set; } = []; - + public ICollection Roles { get; private set; } = []; private UserIdentity() { } @@ -25,6 +26,8 @@ internal class UserIdentity : Entity this.Id = Guid.CreateVersion7(); this.Username = username; + this.Roles = [new UserRole(Role.User)]; + this.AddDomainEvent(new UserWasCreatedEvent(this)); } @@ -45,24 +48,24 @@ internal class UserIdentity : Entity { return false; } - + return this.Password.Check(requestPassword); } public UserSession PossiblyRefreshSession(string sessionId) { var session = this.Sessions.Single(s => s.Id == sessionId); - + if (session.ExpiresSoon) return this.StartNewSession(); - + return session; } public UserSession StartNewSession() { var session = UserSession.Create(); - + this.Sessions.Add(session); return session; diff --git a/Femto.Modules.Auth/Models/UserRole.cs b/Femto.Modules.Auth/Models/UserRole.cs index a00b52d..5a30d11 100644 --- a/Femto.Modules.Auth/Models/UserRole.cs +++ b/Femto.Modules.Auth/Models/UserRole.cs @@ -7,4 +7,11 @@ internal class UserRole public Guid UserId { get; set; } public Role Role { get; set; } + + private UserRole() {} + + public UserRole( Role role){ + Role = role; + + } } \ No newline at end of file