From 5b0a78894ecda351875ccbbc22321ad61e186a7e Mon Sep 17 00:00:00 2001 From: tidusjar Date: Tue, 8 Mar 2016 17:04:27 +0000 Subject: [PATCH] Initial Use authentication is working. Need to do the password bit --- PlexRequests.UI/Modules/UserLoginModule.cs | 35 ++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/PlexRequests.UI/Modules/UserLoginModule.cs b/PlexRequests.UI/Modules/UserLoginModule.cs index d8292a05b..9e4fe9403 100644 --- a/PlexRequests.UI/Modules/UserLoginModule.cs +++ b/PlexRequests.UI/Modules/UserLoginModule.cs @@ -24,9 +24,12 @@ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // ************************************************************************/ #endregion +using System.Linq; + using Nancy; using Nancy.Responses.Negotiation; +using PlexRequests.Api; using PlexRequests.Core; using PlexRequests.Core.SettingModels; using PlexRequests.UI.Models; @@ -55,12 +58,40 @@ namespace PlexRequests.UI.Modules private Response LoginUser() { + var authenticated = false; + var api = new PlexApi(); + var settings = AuthService.GetSettings(); var username = Request.Form.username.Value; + var password = string.Empty; + if (settings.UsePassword) + { + password = Request.Form.password.Value; + } + + + if (settings.UserAuthentication && settings.UsePassword) // Authenticate with Plex + { + + } + else if(settings.UserAuthentication) // Check against the users in Plex + { + var users = api.GetUsers(settings.PlexAuthToken); + if (users.User.Any(x => x.Username == username)) + { + authenticated = true; + } + } + else if(!settings.UserAuthentication) + { + authenticated = true; + } + // Add to the session Session[SessionKeys.UsernameKey] = (string)username; - - return Response.AsJson(new { Result = true }); + return Response.AsJson(authenticated + ? new JsonResponseModel { Result = true } + : new JsonResponseModel { Result = false, Message = "Incorrect User or Password"}); } } } \ No newline at end of file