using System; using Nancy; using Nancy.Security; using PlexRequests.Helpers.Permissions; namespace PlexRequests.UI.Helpers { public interface ISecurityExtensions { Response AdminLoginRedirect(Permissions perm, NancyContext context); bool DoesNotHavePermissions(Permissions perm, IUserIdentity currentUser); bool DoesNotHavePermissions(int perm, IUserIdentity currentUser); Func ForbiddenIfNot(Func test); bool HasAnyPermissions(IUserIdentity user, params Permissions[] perm); bool HasPermissions(IUserIdentity user, Permissions perm); 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); } }