aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Session
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-07-11 22:31:08 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-07-11 22:31:08 -0400
commitb5641013cea8542d3a992fb11811347e761a1f50 (patch)
treeedf14d9448f57e7e567668b6b1915844d9c5de58 /MediaBrowser.Server.Implementations/Session
parent59de5c0d14fbf0c09926e37dce0c2e6de69000dd (diff)
Add api key functions
Diffstat (limited to 'MediaBrowser.Server.Implementations/Session')
-rw-r--r--MediaBrowser.Server.Implementations/Session/SessionManager.cs19
-rw-r--r--MediaBrowser.Server.Implementations/Session/WebSocketController.cs26
2 files changed, 32 insertions, 13 deletions
diff --git a/MediaBrowser.Server.Implementations/Session/SessionManager.cs b/MediaBrowser.Server.Implementations/Session/SessionManager.cs
index 338bf8959..1d1910e40 100644
--- a/MediaBrowser.Server.Implementations/Session/SessionManager.cs
+++ b/MediaBrowser.Server.Implementations/Session/SessionManager.cs
@@ -1210,15 +1210,15 @@ namespace MediaBrowser.Server.Implementations.Session
/// <returns>Task{SessionInfo}.</returns>
/// <exception cref="System.UnauthorizedAccessException">Invalid user or password entered.</exception>
/// <exception cref="UnauthorizedAccessException"></exception>
- public async Task<AuthenticationResult> AuthenticateNewSession(string username,
- string password,
- string clientType,
- string appVersion,
- string deviceId,
- string deviceName,
+ public async Task<AuthenticationResult> AuthenticateNewSession(string username,
+ string password,
+ string clientType,
+ string appVersion,
+ string deviceId,
+ string deviceName,
string remoteEndPoint)
{
- var result = (IsLocalhost(remoteEndPoint) && string.Equals(clientType, "Dashboard", StringComparison.OrdinalIgnoreCase)) ||
+ var result = (IsLocalhost(remoteEndPoint) && string.Equals(clientType, "Dashboard", StringComparison.OrdinalIgnoreCase)) ||
await _userManager.AuthenticateUser(username, password).ConfigureAwait(false);
if (!result)
@@ -1332,6 +1332,11 @@ namespace MediaBrowser.Server.Implementations.Session
}
}
+ public Task RevokeToken(string token)
+ {
+ return Logout(token);
+ }
+
private bool IsLocalhost(string remoteEndpoint)
{
if (string.IsNullOrWhiteSpace(remoteEndpoint))
diff --git a/MediaBrowser.Server.Implementations/Session/WebSocketController.cs b/MediaBrowser.Server.Implementations/Session/WebSocketController.cs
index 5fc28e81b..e1d77c268 100644
--- a/MediaBrowser.Server.Implementations/Session/WebSocketController.cs
+++ b/MediaBrowser.Server.Implementations/Session/WebSocketController.cs
@@ -62,14 +62,28 @@ namespace MediaBrowser.Server.Implementations.Session
void connection_Closed(object sender, EventArgs e)
{
- var capabilities = new SessionCapabilities
+ if (!GetActiveSockets().Any())
{
- PlayableMediaTypes = Session.PlayableMediaTypes,
- SupportedCommands = Session.SupportedCommands,
- SupportsMediaControl = SupportsMediaControl
- };
+ try
+ {
+ _sessionManager.ReportSessionEnded(Session.Id);
+ }
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Error reporting session ended.", ex);
+ }
+ }
+ else
+ {
+ var capabilities = new SessionCapabilities
+ {
+ PlayableMediaTypes = Session.PlayableMediaTypes,
+ SupportedCommands = Session.SupportedCommands,
+ SupportsMediaControl = SupportsMediaControl
+ };
- _sessionManager.ReportCapabilities(Session.Id, capabilities);
+ _sessionManager.ReportCapabilities(Session.Id, capabilities);
+ }
}
private IWebSocketConnection GetActiveSocket()