aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/ConnectService.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-10-18 15:02:54 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-10-18 15:02:54 -0400
commitf1a602f5a87f666eec03b9afd3f3edfa27d337f6 (patch)
tree25cca82b4b125104654282ebdc47814d6f322349 /MediaBrowser.Api/ConnectService.cs
parent76cabe82269ff92d5950b8cf738c00976ca60e93 (diff)
disable nuget package restore
Diffstat (limited to 'MediaBrowser.Api/ConnectService.cs')
-rw-r--r--MediaBrowser.Api/ConnectService.cs41
1 files changed, 38 insertions, 3 deletions
diff --git a/MediaBrowser.Api/ConnectService.cs b/MediaBrowser.Api/ConnectService.cs
index 5a2c04ab6..3c3ad16b1 100644
--- a/MediaBrowser.Api/ConnectService.cs
+++ b/MediaBrowser.Api/ConnectService.cs
@@ -1,13 +1,18 @@
-using MediaBrowser.Controller.Connect;
+using MediaBrowser.Common.Extensions;
+using MediaBrowser.Controller.Connect;
+using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Net;
using MediaBrowser.Model.Connect;
using ServiceStack;
+using System;
using System.Collections.Generic;
+using System.Linq;
using System.Threading.Tasks;
namespace MediaBrowser.Api
{
[Route("/Users/{Id}/Connect/Link", "POST", Summary = "Creates a Connect link for a user")]
+ [Authenticated(Roles = "Admin")]
public class CreateConnectLink : IReturn<UserLinkResult>
{
[ApiMember(Name = "Id", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")]
@@ -18,6 +23,7 @@ namespace MediaBrowser.Api
}
[Route("/Users/{Id}/Connect/Link", "DELETE", Summary = "Removes a Connect link for a user")]
+ [Authenticated(Roles = "Admin")]
public class DeleteConnectLink : IReturnVoid
{
[ApiMember(Name = "Id", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "DELETE")]
@@ -25,6 +31,7 @@ namespace MediaBrowser.Api
}
[Route("/Connect/Invite", "POST", Summary = "Creates a Connect link for a user")]
+ [Authenticated(Roles = "Admin")]
public class CreateConnectInvite : IReturn<UserLinkResult>
{
[ApiMember(Name = "ConnectUsername", Description = "Connect username", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")]
@@ -36,26 +43,37 @@ namespace MediaBrowser.Api
[Route("/Connect/Pending", "GET", Summary = "Creates a Connect link for a user")]
+ [Authenticated(Roles = "Admin")]
public class GetPendingGuests : IReturn<List<ConnectAuthorization>>
{
}
[Route("/Connect/Pending", "DELETE", Summary = "Deletes a Connect link for a user")]
+ [Authenticated(Roles = "Admin")]
public class DeleteAuthorization : IReturnVoid
{
[ApiMember(Name = "Id", Description = "Authorization Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "DELETE")]
public string Id { get; set; }
}
- [Authenticated(Roles = "Admin")]
+ [Route("/Connect/Exchange", "GET", Summary = "Gets the corresponding local user from a connect user id")]
+ [Authenticated]
+ public class GetLocalUser : IReturn<ConnectAuthenticationExchangeResult>
+ {
+ [ApiMember(Name = "ConnectUserId", Description = "ConnectUserId", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")]
+ public string ConnectUserId { get; set; }
+ }
+
public class ConnectService : BaseApiService
{
private readonly IConnectManager _connectManager;
+ private readonly IUserManager _userManager;
- public ConnectService(IConnectManager connectManager)
+ public ConnectService(IConnectManager connectManager, IUserManager userManager)
{
_connectManager = connectManager;
+ _userManager = userManager;
}
public object Post(CreateConnectLink request)
@@ -88,5 +106,22 @@ namespace MediaBrowser.Api
Task.WaitAll(task);
}
+
+ public object Get(GetLocalUser request)
+ {
+ var user = _userManager.Users
+ .FirstOrDefault(i => string.Equals(i.ConnectUserId, request.ConnectUserId, StringComparison.OrdinalIgnoreCase));
+
+ if (user == null)
+ {
+ throw new ResourceNotFoundException();
+ }
+
+ return ToOptimizedResult(new ConnectAuthenticationExchangeResult
+ {
+ AccessToken = user.ConnectAccessKey,
+ LocalUserId = user.Id.ToString("N")
+ });
+ }
}
}