diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-10-18 15:02:54 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-10-18 15:02:54 -0400 |
| commit | f1a602f5a87f666eec03b9afd3f3edfa27d337f6 (patch) | |
| tree | 25cca82b4b125104654282ebdc47814d6f322349 /MediaBrowser.Api/ConnectService.cs | |
| parent | 76cabe82269ff92d5950b8cf738c00976ca60e93 (diff) | |
disable nuget package restore
Diffstat (limited to 'MediaBrowser.Api/ConnectService.cs')
| -rw-r--r-- | MediaBrowser.Api/ConnectService.cs | 41 |
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") + }); + } } } |
