mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-14 10:36:54 -07:00
Added the user login for emby users #435
This commit is contained in:
parent
4193cb88fd
commit
643676e7ea
15 changed files with 296 additions and 137 deletions
|
@ -22,7 +22,7 @@ namespace Ombi.Core
|
|||
Func<NancyContext, Response> HttpStatusCodeIfNot(HttpStatusCode statusCode, Func<NancyContext, bool> test);
|
||||
bool IsLoggedIn(NancyContext context);
|
||||
bool IsNormalUser(IUserIdentity user);
|
||||
bool IsPlexUser(IUserIdentity user);
|
||||
bool IsExternalUser(IUserIdentity user);
|
||||
bool HasPermissions(string userName, Permissions perm);
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -36,6 +36,7 @@ using Ombi.Core.SettingModels;
|
|||
using Ombi.Core.Users;
|
||||
using Ombi.Helpers;
|
||||
using Ombi.Helpers.Permissions;
|
||||
using Ombi.Store.Models.Emby;
|
||||
using Ombi.Store.Models.Plex;
|
||||
using Ombi.Store.Repository;
|
||||
|
||||
|
@ -43,17 +44,20 @@ namespace Ombi.Core
|
|||
{
|
||||
public class SecurityExtensions : ISecurityExtensions
|
||||
{
|
||||
public SecurityExtensions(IUserRepository userRepository, IResourceLinker linker, IExternalUserRepository<PlexUsers> plexUsers, ISettingsService<UserManagementSettings> umSettings)
|
||||
public SecurityExtensions(IUserRepository userRepository, IResourceLinker linker, IExternalUserRepository<PlexUsers> plexUsers, ISettingsService<UserManagementSettings> umSettings,
|
||||
IExternalUserRepository<EmbyUsers> embyUsers)
|
||||
{
|
||||
UserRepository = userRepository;
|
||||
Linker = linker;
|
||||
PlexUsers = plexUsers;
|
||||
UserManagementSettings = umSettings;
|
||||
EmbyUsers = embyUsers;
|
||||
}
|
||||
|
||||
private IUserRepository UserRepository { get; }
|
||||
private IResourceLinker Linker { get; }
|
||||
private IExternalUserRepository<PlexUsers> PlexUsers { get; }
|
||||
private IExternalUserRepository<EmbyUsers> EmbyUsers { get; }
|
||||
private ISettingsService<UserManagementSettings> UserManagementSettings { get; }
|
||||
|
||||
public bool IsLoggedIn(NancyContext context)
|
||||
|
@ -70,16 +74,18 @@ namespace Ombi.Core
|
|||
return realUser || plexUser;
|
||||
}
|
||||
|
||||
public bool IsPlexUser(IUserIdentity user)
|
||||
public bool IsExternalUser(IUserIdentity user)
|
||||
{
|
||||
if (user == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
var plexUser = PlexUsers.GetUserByUsername(user.UserName);
|
||||
return plexUser != null;
|
||||
}
|
||||
var embyUser = EmbyUsers.GetUserByUsername(user.UserName);
|
||||
|
||||
return plexUser != null || embyUser != null;
|
||||
}
|
||||
|
||||
public bool IsNormalUser(IUserIdentity user)
|
||||
{
|
||||
if (user == null)
|
||||
|
@ -107,6 +113,12 @@ namespace Ombi.Core
|
|||
return !string.IsNullOrEmpty(plexUser.UserAlias) ? plexUser.UserAlias : plexUser.Username;
|
||||
}
|
||||
|
||||
var embyUser = EmbyUsers.GetUserByUsername(username);
|
||||
if (embyUser != null)
|
||||
{
|
||||
return !string.IsNullOrEmpty(embyUser.UserAlias) ? embyUser.UserAlias : embyUser.Username;
|
||||
}
|
||||
|
||||
var dbUser = UserRepository.GetUserByUsername(username);
|
||||
if (dbUser != null)
|
||||
{
|
||||
|
@ -303,6 +315,12 @@ namespace Ombi.Core
|
|||
return permissions;
|
||||
}
|
||||
|
||||
var embyUsers = EmbyUsers.GetUserByUsername(userName);
|
||||
if (embyUsers != null)
|
||||
{
|
||||
return (Permissions) embyUsers.Permissions;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue