mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-31 03:50:08 -07:00
parent
33398084be
commit
5c023341b6
8 changed files with 49 additions and 11 deletions
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using Nancy;
|
using Nancy;
|
||||||
using Nancy.Security;
|
using Nancy.Security;
|
||||||
|
using Nancy.Session;
|
||||||
using PlexRequests.Helpers.Permissions;
|
using PlexRequests.Helpers.Permissions;
|
||||||
|
|
||||||
namespace PlexRequests.Core
|
namespace PlexRequests.Core
|
||||||
|
@ -29,6 +30,6 @@ namespace PlexRequests.Core
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="username">The username.</param>
|
/// <param name="username">The username.</param>
|
||||||
/// <returns><c>null</c> if we cannot find a user</returns>
|
/// <returns><c>null</c> if we cannot find a user</returns>
|
||||||
string GetUsername(string username);
|
string GetUsername(string username, ISession session);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -30,6 +30,7 @@ using Nancy;
|
||||||
using Nancy.Linker;
|
using Nancy.Linker;
|
||||||
using Nancy.Responses;
|
using Nancy.Responses;
|
||||||
using Nancy.Security;
|
using Nancy.Security;
|
||||||
|
using Nancy.Session;
|
||||||
using PlexRequests.Core.Models;
|
using PlexRequests.Core.Models;
|
||||||
using PlexRequests.Helpers;
|
using PlexRequests.Helpers;
|
||||||
using PlexRequests.Helpers.Permissions;
|
using PlexRequests.Helpers.Permissions;
|
||||||
|
@ -91,7 +92,7 @@ namespace PlexRequests.Core
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="username">The username.</param>
|
/// <param name="username">The username.</param>
|
||||||
/// <returns><c>null</c> if we cannot find a user</returns>
|
/// <returns><c>null</c> if we cannot find a user</returns>
|
||||||
public string GetUsername(string username)
|
public string GetUsername(string username, ISession session)
|
||||||
{
|
{
|
||||||
var plexUser = PlexUsers.GetUserByUsername(username);
|
var plexUser = PlexUsers.GetUserByUsername(username);
|
||||||
if (plexUser != null)
|
if (plexUser != null)
|
||||||
|
@ -119,7 +120,11 @@ namespace PlexRequests.Core
|
||||||
return dbUser.UserName;
|
return dbUser.UserName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
|
// could be a local user
|
||||||
|
var localName = session[SessionKeys.UsernameKey];
|
||||||
|
|
||||||
|
return localName as string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,7 @@ namespace PlexRequests.UI.Modules
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var username = Security.GetUsername(User.UserName);
|
var username = Security.GetUsername(User.UserName, Session);
|
||||||
if (string.IsNullOrEmpty(username))
|
if (string.IsNullOrEmpty(username))
|
||||||
{
|
{
|
||||||
return Session[SessionKeys.UsernameKey].ToString();
|
return Session[SessionKeys.UsernameKey].ToString();
|
||||||
|
|
|
@ -228,6 +228,20 @@ namespace PlexRequests.UI.Modules
|
||||||
loginGuid = Guid.Parse(dbUser.UserGuid);
|
loginGuid = Guid.Parse(dbUser.UserGuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (loginGuid != Guid.Empty)
|
||||||
|
{
|
||||||
|
if (!settings.UserAuthentication)// Do not need to auth make admin use login screen for now TODO remove this
|
||||||
|
{
|
||||||
|
var perms = (Permissions)dbUser.Permissions;
|
||||||
|
if (perms.HasFlag(Permissions.Administrator))
|
||||||
|
{
|
||||||
|
var uri = Linker.BuildRelativeUri(Context, "UserLoginIndex");
|
||||||
|
Session["TempMessage"] = Resources.UI.UserLogin_AdminUsePassword;
|
||||||
|
return Response.AsRedirect(uri.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(loginGuid == Guid.Empty && settings.UserAuthentication)
|
if(loginGuid == Guid.Empty && settings.UserAuthentication)
|
||||||
{
|
{
|
||||||
var defaultSettings = UserManagementSettings.GetSettings();
|
var defaultSettings = UserManagementSettings.GetSettings();
|
||||||
|
|
|
@ -473,4 +473,7 @@
|
||||||
<data name="Layout_Usermanagement" xml:space="preserve">
|
<data name="Layout_Usermanagement" xml:space="preserve">
|
||||||
<value>User Management</value>
|
<value>User Management</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
<data name="UserLogin_AdminUsePassword" xml:space="preserve">
|
||||||
|
<value>If you are an administrator, please use the other login page</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
11
PlexRequests.UI/Resources/UI1.Designer.cs
generated
11
PlexRequests.UI/Resources/UI1.Designer.cs
generated
|
@ -223,7 +223,7 @@ namespace PlexRequests.UI.Resources {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to A background process is currently running, so there might be some unexpected behavior. This shouldn't take too long..
|
/// Looks up a localized string similar to Currently we are indexing all of the available tv shows and movies on the Plex server, so there might be some unexpected behavior. This shouldn't take too long..
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string Layout_CacherRunning {
|
public static string Layout_CacherRunning {
|
||||||
get {
|
get {
|
||||||
|
@ -1113,6 +1113,15 @@ namespace PlexRequests.UI.Resources {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to If you are an administrator, please use the other login page.
|
||||||
|
/// </summary>
|
||||||
|
public static string UserLogin_AdminUsePassword {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("UserLogin_AdminUsePassword", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Incorrect User or Password.
|
/// Looks up a localized string similar to Incorrect User or Password.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -37,11 +37,6 @@
|
||||||
</li>
|
</li>
|
||||||
}
|
}
|
||||||
|
|
||||||
<li role="presentation" class="nav-tab-right nav-tab-icononly">
|
|
||||||
<a href="#NotificationsTab" aria-controls="profile" role="tab" data-toggle="tab"><i class="fa fa-bell"></i></a>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<!-- Tab panes -->
|
<!-- Tab panes -->
|
||||||
|
|
|
@ -93,6 +93,17 @@
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else if (Html.IsLoggedIn(Context)) // Logged in but not admin
|
||||||
|
{
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-user"></i> @UI.Layout_Welcome @Context.Request.Session[SessionKeys.UsernameKey] <span class="caret"></span></a>
|
||||||
|
<ul class="dropdown-menu" role="menu">
|
||||||
|
<li><a href="@url/logout"><i class="fa fa-sign-out"></i> @UI.Layout_Logout</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue