From 8b3f35edbb13a49879483d766a9b91b2a0092a3e Mon Sep 17 00:00:00 2001 From: tidusjar Date: Tue, 8 Mar 2016 17:18:13 +0000 Subject: [PATCH] Implimented the password part and authentication with Plex --- PlexRequests.Api/PlexApi.cs | 2 +- PlexRequests.UI/Modules/AdminModule.cs | 2 +- PlexRequests.UI/Modules/UserLoginModule.cs | 10 ++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/PlexRequests.Api/PlexApi.cs b/PlexRequests.Api/PlexApi.cs index 92b017361..c8d66b744 100644 --- a/PlexRequests.Api/PlexApi.cs +++ b/PlexRequests.Api/PlexApi.cs @@ -41,7 +41,7 @@ namespace PlexRequests.Api } private static string Version { get; set; } - public PlexAuthentication GetToken(string username, string password) + public PlexAuthentication SignIn(string username, string password) { var userModel = new PlexUserRequest { diff --git a/PlexRequests.UI/Modules/AdminModule.cs b/PlexRequests.UI/Modules/AdminModule.cs index 484106d52..d745e45cd 100644 --- a/PlexRequests.UI/Modules/AdminModule.cs +++ b/PlexRequests.UI/Modules/AdminModule.cs @@ -127,7 +127,7 @@ namespace PlexRequests.UI.Modules } var plex = new PlexApi(); - var model = plex.GetToken(user.username, user.password); + var model = plex.SignIn(user.username, user.password); if (model.user == null) { diff --git a/PlexRequests.UI/Modules/UserLoginModule.cs b/PlexRequests.UI/Modules/UserLoginModule.cs index 9e4fe9403..48cfdf8ff 100644 --- a/PlexRequests.UI/Modules/UserLoginModule.cs +++ b/PlexRequests.UI/Modules/UserLoginModule.cs @@ -30,6 +30,7 @@ using Nancy; using Nancy.Responses.Negotiation; using PlexRequests.Api; +using PlexRequests.Api.Models; using PlexRequests.Core; using PlexRequests.Core.SettingModels; using PlexRequests.UI.Models; @@ -72,6 +73,15 @@ namespace PlexRequests.UI.Modules if (settings.UserAuthentication && settings.UsePassword) // Authenticate with Plex { + var signedIn = (PlexAuthentication)api.SignIn(username, password); + if (signedIn.user?.authentication_token != null) + { + var users = api.GetUsers(settings.PlexAuthToken); + if (users.User.Any(x => x.Username == username)) + { + authenticated = true; + } + } } else if(settings.UserAuthentication) // Check against the users in Plex {