mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-20 05:13:18 -07:00
Added first real test
This commit is contained in:
parent
f7a6614748
commit
68850fd8b7
29 changed files with 461 additions and 22 deletions
|
@ -36,6 +36,8 @@ using Nancy.Diagnostics;
|
|||
using Nancy.Session;
|
||||
using Nancy.TinyIoc;
|
||||
|
||||
using PlexRequests.Api;
|
||||
using PlexRequests.Api.Interfaces;
|
||||
using PlexRequests.Core;
|
||||
using PlexRequests.Core.SettingModels;
|
||||
using PlexRequests.Helpers;
|
||||
|
@ -73,6 +75,9 @@ namespace PlexRequests.UI
|
|||
container.Register<IAvailabilityChecker, PlexAvailabilityChecker>();
|
||||
container.Register<IConfigurationReader, ConfigurationReader>();
|
||||
container.Register<IIntervals, UpdateInterval>();
|
||||
|
||||
|
||||
container.Register<IPlexApi, PlexApi>();
|
||||
base.ConfigureRequestContainer(container, context);
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ using System.Linq;
|
|||
using Nancy;
|
||||
using Nancy.Responses.Negotiation;
|
||||
|
||||
using PlexRequests.Api;
|
||||
using PlexRequests.Api.Interfaces;
|
||||
using PlexRequests.Api.Models;
|
||||
using PlexRequests.Core;
|
||||
using PlexRequests.Core.SettingModels;
|
||||
|
@ -40,24 +40,27 @@ namespace PlexRequests.UI.Modules
|
|||
// TODO: Add ability to logout
|
||||
public class UserLoginModule : NancyModule
|
||||
{
|
||||
public UserLoginModule(ISettingsService<AuthenticationSettings> auth) : base("userlogin")
|
||||
public UserLoginModule(ISettingsService<AuthenticationSettings> auth, IPlexApi api) : base("userlogin")
|
||||
{
|
||||
AuthService = auth;
|
||||
Api = api;
|
||||
Get["/"] = _ => Index();
|
||||
Post["/"] = x => LoginUser();
|
||||
}
|
||||
|
||||
private ISettingsService<AuthenticationSettings> AuthService { get; set; }
|
||||
private IPlexApi Api { get; set; }
|
||||
|
||||
public Negotiator Index()
|
||||
{
|
||||
var settings = AuthService.GetSettings();
|
||||
return View["Index", settings];
|
||||
}
|
||||
private ISettingsService<AuthenticationSettings> AuthService { get; set; }
|
||||
|
||||
private Response LoginUser()
|
||||
{
|
||||
var authenticated = false;
|
||||
var api = new PlexApi();
|
||||
|
||||
var settings = AuthService.GetSettings();
|
||||
var username = Request.Form.username.Value;
|
||||
var password = string.Empty;
|
||||
|
@ -69,7 +72,7 @@ namespace PlexRequests.UI.Modules
|
|||
|
||||
if (settings.UserAuthentication && settings.UsePassword) // Authenticate with Plex
|
||||
{
|
||||
var signedIn = (PlexAuthentication)api.SignIn(username, password);
|
||||
var signedIn = (PlexAuthentication)Api.SignIn(username, password);
|
||||
if (signedIn.user?.authentication_token != null)
|
||||
{
|
||||
authenticated = CheckIfUserIsInPlexFriends(username, settings.PlexAuthToken);
|
||||
|
@ -95,8 +98,7 @@ namespace PlexRequests.UI.Modules
|
|||
|
||||
private bool CheckIfUserIsInPlexFriends(string username, string authToken)
|
||||
{
|
||||
var api = new PlexApi();
|
||||
var users = api.GetUsers(authToken);
|
||||
var users = Api.GetUsers(authToken);
|
||||
return users.User.Any(x => x.Username == username);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -282,6 +282,14 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\PlexRequests.Api.Interfaces\PlexRequests.Api.Interfaces.csproj">
|
||||
<Project>{95834072-A675-415D-AA8F-877C91623810}</Project>
|
||||
<Name>PlexRequests.Api.Interfaces</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\PlexRequests.Api.Models\PlexRequests.Api.Models.csproj">
|
||||
<Project>{CB37A5F8-6DFC-4554-99D3-A42B502E4591}</Project>
|
||||
<Name>PlexRequests.Api.Models</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\PlexRequests.Api\PlexRequests.Api.csproj">
|
||||
<Project>{8cb8d235-2674-442d-9c6a-35fcaeeb160d}</Project>
|
||||
<Name>PlexRequests.Api</Name>
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
@{
|
||||
Layout = "Views/Shared/_Layout.cshtml";
|
||||
Layout = "Shared/_Layout.cshtml";
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue