mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-20 21:33:15 -07:00
Added user logout method and unit tests to cover it
This commit is contained in:
parent
55560611e8
commit
759540c837
4 changed files with 51 additions and 6 deletions
|
@ -32,10 +32,11 @@ using Nancy.Authentication.Forms;
|
|||
using Nancy.Extensions;
|
||||
|
||||
using PlexRequests.Core;
|
||||
using PlexRequests.UI.Models;
|
||||
|
||||
namespace PlexRequests.UI.Modules
|
||||
{
|
||||
public class LoginModule : BaseModule
|
||||
public class LoginModule : NancyModule
|
||||
{
|
||||
public LoginModule()
|
||||
{
|
||||
|
@ -54,17 +55,21 @@ namespace PlexRequests.UI.Modules
|
|||
|
||||
Post["/login"] = x =>
|
||||
{
|
||||
var userId = UserMapper.ValidateUser((string)Request.Form.Username, (string)Request.Form.Password);
|
||||
var username = (string)Request.Form.Username;
|
||||
var password = (string)Request.Form.Password;
|
||||
|
||||
var userId = UserMapper.ValidateUser(username, password);
|
||||
|
||||
if (userId == null)
|
||||
{
|
||||
return Context.GetRedirect("~/login?error=true&username=" + (string)Request.Form.Username);
|
||||
return Context.GetRedirect("~/login?error=true&username=" + username);
|
||||
}
|
||||
DateTime? expiry = null;
|
||||
if (Request.Form.RememberMe.HasValue)
|
||||
{
|
||||
expiry = DateTime.Now.AddDays(7);
|
||||
}
|
||||
Session[SessionKeys.UsernameKey] = username;
|
||||
return this.LoginAndRedirect(userId.Value, expiry);
|
||||
};
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
using System.Linq;
|
||||
|
||||
using Nancy;
|
||||
using Nancy.Extensions;
|
||||
using Nancy.Responses.Negotiation;
|
||||
|
||||
using PlexRequests.Api.Interfaces;
|
||||
|
@ -46,6 +47,7 @@ namespace PlexRequests.UI.Modules
|
|||
Api = api;
|
||||
Get["/"] = _ => Index();
|
||||
Post["/"] = x => LoginUser();
|
||||
Get["/logout"] = x => Logout();
|
||||
}
|
||||
|
||||
private ISettingsService<AuthenticationSettings> AuthService { get; }
|
||||
|
@ -104,6 +106,15 @@ namespace PlexRequests.UI.Modules
|
|||
: new JsonResponseModel { Result = false, Message = "Incorrect User or Password"});
|
||||
}
|
||||
|
||||
private Response Logout()
|
||||
{
|
||||
if (Session[SessionKeys.UsernameKey] != null)
|
||||
{
|
||||
Session.Delete(SessionKeys.UsernameKey);
|
||||
}
|
||||
return Context.GetRedirect("~/userlogin");
|
||||
}
|
||||
|
||||
private bool CheckIfUserIsInPlexFriends(string username, string authToken)
|
||||
{
|
||||
var users = Api.GetUsers(authToken);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue