| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | 
							- using System;
 - using Luticate2.Auth.Controllers;
 - using Luticate2.Auth.Dbo.Users;
 - using Luticate2.Auth.Interfaces.Users;
 - using Luticate2.Utils.Controllers;
 - using Luticate2.Utils.Dbo.Result;
 - using Luticate2.Utils.Utils;
 - using Microsoft.AspNetCore.Mvc.Filters;
 - 
 - namespace Luticate2.Auth.Middlewares
 - {
 -     public class LuLoggedUserMiddleware : IActionFilter
 -     {
 -         public const string TokenCookieName = "luticate2-token";
 - 
 -         private readonly ILuUsersBusiness _luUsersBusiness;
 - 
 -         public LuLoggedUserMiddleware(ILuUsersBusiness luUsersBusiness)
 -         {
 -             _luUsersBusiness = luUsersBusiness;
 -         }
 - 
 -         public void OnActionExecuting(ActionExecutingContext context)
 -         {
 -             var token = context.HttpContext.Request.Cookies[TokenCookieName];
 -             var userId = Guid.Empty.ToDbo();
 -             if (!string.IsNullOrWhiteSpace(token))
 -             {
 -                 var tokenRes = _luUsersBusiness.GetToken(token);
 -                 if (tokenRes.Status == LuStatus.NotFound)
 -                 {
 -                     throw new LuResultException(LuResult<object>.Error(LuStatus.LoginError, $"{token}", "Invalid session"));
 -                 }
 -                 if (!tokenRes)
 -                 {
 -                     throw new LuResultException(tokenRes.To<object>());
 -                 }
 -                 userId = tokenRes.Data.UserId;
 -             }
 - 
 -             var userRes = _luUsersBusiness.GetSingleById(userId);
 -             if (!userRes)
 -             {
 -                 throw new LuResultException(userRes.To<object>());
 -             }
 - 
 -             context.HttpContext.SetLuLoggedUser(userRes.Data);
 -         }
 - 
 -         public void OnActionExecuted(ActionExecutedContext context)
 -         {
 -         }
 -     }
 - }
 
 
  |