diff --git a/Ombi.Core/Users/UserHelper.cs b/Ombi.Core/Users/UserHelper.cs index ccb211a05..18c8bfc9f 100644 --- a/Ombi.Core/Users/UserHelper.cs +++ b/Ombi.Core/Users/UserHelper.cs @@ -63,7 +63,9 @@ namespace Ombi.Core.Users Username = localUsers.UserName, UserAlias = props.UserAlias, EmailAddress = props.EmailAddress, - Permissions = (Permissions) localUsers.Permissions + Permissions = (Permissions) localUsers.Permissions, + UserId = localUsers.UserGuid, + Features = (Features)localUsers.Features }; } @@ -76,7 +78,10 @@ namespace Ombi.Core.Users Username = plexUsers.Username, UserAlias = plexUsers.UserAlias, EmailAddress = plexUsers.EmailAddress, - Permissions = (Permissions)plexUsers.Permissions + Permissions = (Permissions)plexUsers.Permissions, + UserId = plexUsers.PlexUserId, + + Features = (Features)plexUsers.Features }; } @@ -89,7 +94,9 @@ namespace Ombi.Core.Users Username = embyUsers.Username, UserAlias = embyUsers.UserAlias, EmailAddress = embyUsers.EmailAddress, - Permissions = (Permissions)embyUsers.Permissions + Permissions = (Permissions)embyUsers.Permissions, + UserId = embyUsers.EmbyUserId, + Features = (Features)embyUsers.Features }; } return null; diff --git a/Ombi.Core/Users/UserHelperModel.cs b/Ombi.Core/Users/UserHelperModel.cs index ace42d4f9..3d7defb38 100644 --- a/Ombi.Core/Users/UserHelperModel.cs +++ b/Ombi.Core/Users/UserHelperModel.cs @@ -39,6 +39,7 @@ namespace Ombi.Core.Users public Features Features { get; set; } public string EmailAddress { get; set; } public UserType Type { get; set; } + public string UserId { get; set; } [JsonIgnore] public string UsernameOrAlias => string.IsNullOrEmpty(UserAlias) ? Username : UserAlias; diff --git a/Ombi.Services/Jobs/RecentlyAddedNewsletter/PlexRecentlyAddedNewsletter.cs b/Ombi.Services/Jobs/RecentlyAddedNewsletter/PlexRecentlyAddedNewsletter.cs index a5426e229..6ac7d76db 100644 --- a/Ombi.Services/Jobs/RecentlyAddedNewsletter/PlexRecentlyAddedNewsletter.cs +++ b/Ombi.Services/Jobs/RecentlyAddedNewsletter/PlexRecentlyAddedNewsletter.cs @@ -49,7 +49,7 @@ using PlexMediaType = Ombi.Store.Models.Plex.PlexMediaType; namespace Ombi.Services.Jobs.RecentlyAddedNewsletter { - public class + public class PlexRecentlyAddedNewsletter : HtmlTemplateGenerator, IPlexNewsletter { public PlexRecentlyAddedNewsletter(IPlexApi api, ISettingsService plexSettings, @@ -168,7 +168,7 @@ namespace Ombi.Services.Jobs.RecentlyAddedNewsletter recentlyAddedModel.Add(new PlexRecentlyAddedModel { Metadata = i, - EpisodeMetadata = new List() {episodeInfo}, + EpisodeMetadata = new List() { episodeInfo }, Content = relatedSeries }); } @@ -186,33 +186,12 @@ namespace Ombi.Services.Jobs.RecentlyAddedNewsletter continue; } - //var ep = filteredEp.Where(x => x.ShowTitle == t.Title); - if (filteredEp.Any()) + info.Add(new PlexRecentlyAddedModel { - var episodeList = new List(); - foreach (var ep in filteredEp) - { - var epInfo = Api.GetEpisodeMetaData(plexSettings.PlexAuthToken, plexSettings.FullUri, - ep.RatingKey); - episodeList.Add(epInfo); - } - - info.Add(new PlexRecentlyAddedModel - { - Metadata = i, - Content = t, - EpisodeMetadata = episodeList - }); - } - else - { - info.Add(new PlexRecentlyAddedModel - { - Metadata = i, - Content = t - }); - } + Metadata = i, + Content = t + }); } } GenerateTvHtml(info, sb); diff --git a/Ombi.UI/Content/app/userManagement/Directives/table.html b/Ombi.UI/Content/app/userManagement/Directives/table.html index 8c7b381e5..c53d391a7 100644 --- a/Ombi.UI/Content/app/userManagement/Directives/table.html +++ b/Ombi.UI/Content/app/userManagement/Directives/table.html @@ -76,7 +76,7 @@ Local User - Plex User + Plex User Emby User diff --git a/Ombi.UI/Modules/UserLoginModule.cs b/Ombi.UI/Modules/UserLoginModule.cs index 386c1ded2..58cd8255b 100644 --- a/Ombi.UI/Modules/UserLoginModule.cs +++ b/Ombi.UI/Modules/UserLoginModule.cs @@ -59,7 +59,8 @@ namespace Ombi.UI.Modules { public UserLoginModule(ISettingsService auth, IPlexApi api, ISettingsService plexSettings, ISettingsService pr, ISettingsService lp, IAnalytics a, IResourceLinker linker, IRepository userLogins, IExternalUserRepository plexUsers, ICustomUserMapper custom, - ISecurityExtensions security, ISettingsService userManagementSettings, IEmbyApi embyApi, ISettingsService emby, IExternalUserRepository embyU) + ISecurityExtensions security, ISettingsService userManagementSettings, IEmbyApi embyApi, ISettingsService emby, IExternalUserRepository embyU, + IUserHelper userHelper) : base("userlogin", pr, security) { AuthService = auth; @@ -75,6 +76,7 @@ namespace Ombi.UI.Modules EmbySettings = emby; EmbyApi = embyApi; EmbyUserRepository = embyU; + UserHelper = userHelper; Post["/", true] = async (x, ct) => await LoginUser(); Get["/logout"] = x => Logout(); @@ -135,6 +137,7 @@ namespace Ombi.UI.Modules private IExternalUserRepository EmbyUserRepository { get; } private ICustomUserMapper CustomUserMapper { get; } private ISettingsService UserManagementSettings { get; } + private IUserHelper UserHelper { get; } private static Logger Log = LogManager.GetCurrentClassLogger(); @@ -683,6 +686,14 @@ namespace Ombi.UI.Modules { type = UserType.EmbyUser;; } + if (string.IsNullOrEmpty(userId)) + { + // It's possible we have no auth enabled meaning the userId is empty + // Let's find that user! + + var user = UserHelper.GetUser(username); + userId = user.UserId; + } UserLogins.Insert(new UserLogins { UserId = userId, Type = type, LastLoggedIn = DateTime.UtcNow }); return m;