diff --git a/PlexRequests.Core/ISecurityExtensions.cs b/PlexRequests.Core/ISecurityExtensions.cs index 0db6689b1..10db3ccfe 100644 --- a/PlexRequests.Core/ISecurityExtensions.cs +++ b/PlexRequests.Core/ISecurityExtensions.cs @@ -20,8 +20,8 @@ namespace PlexRequests.Core Response HasPermissionsRedirect(Permissions perm, NancyContext context, string routeName, HttpStatusCode code); Func HttpStatusCodeIfNot(HttpStatusCode statusCode, Func test); bool IsLoggedIn(NancyContext context); - bool IsNormalUser(NancyContext context); - bool IsPlexUser(NancyContext context); + bool IsNormalUser(IUserIdentity user); + bool IsPlexUser(IUserIdentity user); bool HasPermissions(string userName, Permissions perm); /// diff --git a/PlexRequests.Core/SecurityExtensions.cs b/PlexRequests.Core/SecurityExtensions.cs index ce2b89651..28f1df41c 100644 --- a/PlexRequests.Core/SecurityExtensions.cs +++ b/PlexRequests.Core/SecurityExtensions.cs @@ -65,15 +65,15 @@ namespace PlexRequests.Core return realUser || plexUser; } - public bool IsPlexUser(NancyContext context) + public bool IsPlexUser(IUserIdentity user) { - var plexUser = PlexUsers.GetUserByUsername(context.CurrentUser.UserName); + var plexUser = PlexUsers.GetUserByUsername(user.UserName); return plexUser != null; } - public bool IsNormalUser(NancyContext context) + public bool IsNormalUser(IUserIdentity user) { - var dbUser = UserRepository.GetUserByUsername(context.CurrentUser.UserName); + var dbUser = UserRepository.GetUserByUsername(user.UserName); return dbUser != null; } diff --git a/PlexRequests.UI/Content/requests.js b/PlexRequests.UI/Content/requests.js index bb0c0a062..deadcb8cd 100644 --- a/PlexRequests.UI/Content/requests.js +++ b/PlexRequests.UI/Content/requests.js @@ -16,10 +16,13 @@ var base = $('#baseUrl').text(); var tvLoaded = false; var albumLoaded = false; +var isAdmin = $('#isAdmin').val(); +var defaultFiler = isAdmin == 'True' ? '.approved-fase' : 'all'; + var mixItUpDefault = { animation: { enable: true }, load: { - filter: '.approved-false', + filter: defaultFiler, sort: 'requestorder:desc' }, layout: { @@ -259,7 +262,7 @@ $('#deleteMusic').click(function (e) { }); // filtering/sorting -$('.filter,.sort', '.dropdown-menu').click(function (e) { +$('.filter', '.dropdown-menu').click(function (e) { var $this = $(this); $('.fa-check-square', $this.parents('.dropdown-menu:first')).removeClass('fa-check-square').addClass('fa-square-o'); $this.children('.fa').first().removeClass('fa-square-o').addClass('fa-check-square'); @@ -268,6 +271,12 @@ $('.filter,.sort', '.dropdown-menu').click(function (e) { }).fadeIn(); }); +$('.sort', '.dropdown-menu').click(function (e) { + var $this = $(this); + $('.fa-check-square', $this.parents('.dropdown-menu:first')).removeClass('fa-check-square').addClass('fa-square-o'); + $this.children('.fa').first().removeClass('fa-square-o').addClass('fa-check-square'); +}); + // Report Issue $(document).on("click", ".dropdownIssue", function (e) { diff --git a/PlexRequests.UI/Helpers/HtmlSecurityHelper.cs b/PlexRequests.UI/Helpers/HtmlSecurityHelper.cs index 4f3898dc1..1aa6a72a7 100644 --- a/PlexRequests.UI/Helpers/HtmlSecurityHelper.cs +++ b/PlexRequests.UI/Helpers/HtmlSecurityHelper.cs @@ -26,12 +26,9 @@ #endregion using Nancy; -using Nancy.Linker; using Nancy.Security; using Nancy.ViewEngines.Razor; -using Ninject; using PlexRequests.Helpers.Permissions; -using PlexRequests.Store.Repository; using ISecurityExtensions = PlexRequests.Core.ISecurityExtensions; namespace PlexRequests.UI.Helpers @@ -50,14 +47,14 @@ namespace PlexRequests.UI.Helpers private static ISecurityExtensions _security; - public static bool HasAnyPermission(this HtmlHelpers helper, int permission, bool authenticated = true) + public static bool HasAnyPermission(this HtmlHelpers helper, bool authenticated = true, params Permissions[] permission) { if (authenticated) { return helper.CurrentUser.IsAuthenticated() - && Security.HasPermissions(helper.CurrentUser, (Permissions) permission); + && Security.HasAnyPermissions(helper.CurrentUser, permission); } - return Security.HasPermissions(helper.CurrentUser, (Permissions)permission); + return Security.HasAnyPermissions(helper.CurrentUser, permission); } public static bool DoesNotHavePermission(this HtmlHelpers helper, int permission) @@ -67,12 +64,21 @@ namespace PlexRequests.UI.Helpers public static bool IsAdmin(this HtmlHelpers helper, bool isAuthenticated = true) { - return HasAnyPermission(helper, (int) Permissions.Administrator, isAuthenticated); + return HasAnyPermission(helper, isAuthenticated, Permissions.Administrator); } public static bool IsLoggedIn(this HtmlHelpers helper, NancyContext context) { return Security.IsLoggedIn(context); } + + public static bool IsPlexUser(this HtmlHelpers helper) + { + return Security.IsPlexUser(helper.CurrentUser); + } + public static bool IsNormalUser(this HtmlHelpers helper) + { + return Security.IsNormalUser(helper.CurrentUser); + } } } \ No newline at end of file diff --git a/PlexRequests.UI/Views/Issues/Details.cshtml b/PlexRequests.UI/Views/Issues/Details.cshtml index 21ca56637..fa89979af 100644 --- a/PlexRequests.UI/Views/Issues/Details.cshtml +++ b/PlexRequests.UI/Views/Issues/Details.cshtml @@ -11,7 +11,7 @@ formAction = "/" + baseUrl.ToHtmlString(); } - var isAdmin = Html.HasAnyPermission((int)Permissions.Administrator) || Html.HasAnyPermission((int)Permissions.ManageRequests); + var isAdmin = Html.HasAnyPermission(true, Permissions.Administrator) || Html.HasAnyPermission(Permissions.ManageRequests); }

Details

diff --git a/PlexRequests.UI/Views/Requests/Index.cshtml b/PlexRequests.UI/Views/Requests/Index.cshtml index ca8e09a51..d42203059 100644 --- a/PlexRequests.UI/Views/Requests/Index.cshtml +++ b/PlexRequests.UI/Views/Requests/Index.cshtml @@ -1,19 +1,22 @@ @using Nancy.Security @using Nancy.Security +@using PlexRequests.Helpers.Permissions @using PlexRequests.UI.Helpers @using PlexRequests.UI.Resources @{ var baseUrl = Html.GetBaseUrl(); var formAction = string.Empty; + var isAdmin = Html.HasAnyPermission(true, Permissions.Administrator, Permissions.ManageRequests); if (!string.IsNullOrEmpty(baseUrl.ToHtmlString())) { formAction = "/" + baseUrl.ToHtmlString(); } }
+

@UI.Requests_Title

@UI.Requests_Paragraph

-
+
-
+
@@ -38,38 +41,59 @@
- @if (Context.CurrentUser.IsAuthenticated()) //TODO replace with IsAdmin + @if (isAdmin) { @if (Model.SearchForMovies) - { - - - } + { + + + } @if (Model.SearchForTvShows) - { - - - } + { + + + } @if (Model.SearchForMusic) - { - - - } + { + + + } }
@if (Model.SearchForMovies) - { + {
-
-
+
+
@@ -102,12 +126,12 @@ } @if (Model.SearchForTvShows) - { + {
-
-
+
+
@@ -115,12 +139,12 @@ } @if (Model.SearchForMusic) - { + {
-
-
+
+
@@ -168,9 +192,14 @@

{{title}} ({{year}})

- {{status}}

+ {{#if_eq type "tv"}} + @UI.Search_TV_Show_Status: + {{else}} + @UI.Search_Movie_Status: + {{/if_eq}} + {{status}} {{#if denied}}
Denied: diff --git a/PlexRequests.UI/Views/Shared/Partial/_Navbar.cshtml b/PlexRequests.UI/Views/Shared/Partial/_Navbar.cshtml index 6f1f45313..0a77e8b36 100644 --- a/PlexRequests.UI/Views/Shared/Partial/_Navbar.cshtml +++ b/PlexRequests.UI/Views/Shared/Partial/_Navbar.cshtml @@ -69,7 +69,7 @@ } @*@if (Context.Request.Session[SessionKeys.UsernameKey] != null && !Context.CurrentUser.IsAuthenticated())*@ - else if (Context.CurrentUser != null && Context.CurrentUser.IsAuthenticated()) // Logged in but not admin + else if (Html.IsNormalUser()) // Logged in but not admin { + } + else if (Html.IsPlexUser()) // Logged in but not admin + { + + }