mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-10-31 02:27:18 -04:00 
			
		
		
		
	* Use Guid.Equals(Guid) instead of the == override * Ban the usage of Guid.Equals(Object) to prevent accidental boxing * Compare to default(Guid) instead of Guid.Empty
		
			
				
	
	
		
			61 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| #pragma warning disable CS1591
 | |
| 
 | |
| using System;
 | |
| using System.Threading.Tasks;
 | |
| using Jellyfin.Data.Entities;
 | |
| using MediaBrowser.Common.Extensions;
 | |
| using MediaBrowser.Controller.Library;
 | |
| using MediaBrowser.Controller.Net;
 | |
| using MediaBrowser.Controller.Session;
 | |
| using Microsoft.AspNetCore.Http;
 | |
| 
 | |
| namespace Emby.Server.Implementations.HttpServer.Security
 | |
| {
 | |
|     public class SessionContext : ISessionContext
 | |
|     {
 | |
|         private readonly IUserManager _userManager;
 | |
|         private readonly ISessionManager _sessionManager;
 | |
|         private readonly IAuthorizationContext _authContext;
 | |
| 
 | |
|         public SessionContext(IUserManager userManager, IAuthorizationContext authContext, ISessionManager sessionManager)
 | |
|         {
 | |
|             _userManager = userManager;
 | |
|             _authContext = authContext;
 | |
|             _sessionManager = sessionManager;
 | |
|         }
 | |
| 
 | |
|         public async Task<SessionInfo> GetSession(HttpContext requestContext)
 | |
|         {
 | |
|             var authorization = await _authContext.GetAuthorizationInfo(requestContext).ConfigureAwait(false);
 | |
| 
 | |
|             var user = authorization.User;
 | |
|             return await _sessionManager.LogSessionActivity(
 | |
|                 authorization.Client,
 | |
|                 authorization.Version,
 | |
|                 authorization.DeviceId,
 | |
|                 authorization.Device,
 | |
|                 requestContext.GetNormalizedRemoteIp().ToString(),
 | |
|                 user).ConfigureAwait(false);
 | |
|         }
 | |
| 
 | |
|         public Task<SessionInfo> GetSession(object requestContext)
 | |
|         {
 | |
|             return GetSession((HttpContext)requestContext);
 | |
|         }
 | |
| 
 | |
|         public async Task<User?> GetUser(HttpContext requestContext)
 | |
|         {
 | |
|             var session = await GetSession(requestContext).ConfigureAwait(false);
 | |
| 
 | |
|             return session.UserId.Equals(default)
 | |
|                 ? null
 | |
|                 : _userManager.GetUserById(session.UserId);
 | |
|         }
 | |
| 
 | |
|         public Task<User?> GetUser(object requestContext)
 | |
|         {
 | |
|             return GetUser(((HttpRequest)requestContext).HttpContext);
 | |
|         }
 | |
|     }
 | |
| }
 |