From 5ca4d60c34c7ead76c388bd2c3ca192b38aae1f0 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 28 Oct 2014 19:17:55 -0400 Subject: connect updates --- .../Net/AuthenticatedAttribute.cs | 34 ++++++++++++++++++---- MediaBrowser.Controller/Net/IAuthService.cs | 4 +-- 2 files changed, 29 insertions(+), 9 deletions(-) (limited to 'MediaBrowser.Controller/Net') diff --git a/MediaBrowser.Controller/Net/AuthenticatedAttribute.cs b/MediaBrowser.Controller/Net/AuthenticatedAttribute.cs index 31bb7c66b..83e404dfc 100644 --- a/MediaBrowser.Controller/Net/AuthenticatedAttribute.cs +++ b/MediaBrowser.Controller/Net/AuthenticatedAttribute.cs @@ -1,10 +1,11 @@ using ServiceStack.Web; using System; +using System.Collections.Generic; using System.Linq; namespace MediaBrowser.Controller.Net { - public class AuthenticatedAttribute : Attribute, IHasRequestFilter + public class AuthenticatedAttribute : Attribute, IHasRequestFilter, IAuthenticated { public IAuthService AuthService { get; set; } @@ -14,8 +15,18 @@ namespace MediaBrowser.Controller.Net /// true if [allow local]; otherwise, false. public bool AllowLocal { get; set; } + /// + /// Gets or sets the roles. + /// + /// The roles. public string Roles { get; set; } + /// + /// Gets or sets a value indicating whether [escape parental control]. + /// + /// true if [escape parental control]; otherwise, false. + public bool EscapeParentalControl { get; set; } + /// /// The request filter is executed before the service. /// @@ -24,11 +35,7 @@ namespace MediaBrowser.Controller.Net /// The request DTO public void RequestFilter(IRequest request, IResponse response, object requestDto) { - var roles = (Roles ?? string.Empty).Split(',') - .Where(i => !string.IsNullOrWhiteSpace(i)) - .ToArray(); - - AuthService.Authenticate(request, response, requestDto, AllowLocal, roles); + AuthService.Authenticate(request, response, requestDto, this); } /// @@ -50,5 +57,20 @@ namespace MediaBrowser.Controller.Net { get { return 0; } } + + + public IEnumerable GetRoles() + { + return (Roles ?? string.Empty).Split(',') + .Where(i => !string.IsNullOrWhiteSpace(i)); + } + } + + public interface IAuthenticated + { + bool EscapeParentalControl { get; } + + bool AllowLocal { get; } + IEnumerable GetRoles(); } } diff --git a/MediaBrowser.Controller/Net/IAuthService.cs b/MediaBrowser.Controller/Net/IAuthService.cs index 69014d0ff..9d335566f 100644 --- a/MediaBrowser.Controller/Net/IAuthService.cs +++ b/MediaBrowser.Controller/Net/IAuthService.cs @@ -1,5 +1,4 @@ using ServiceStack.Web; -using System.Collections.Generic; namespace MediaBrowser.Controller.Net { @@ -8,7 +7,6 @@ namespace MediaBrowser.Controller.Net void Authenticate(IRequest request, IResponse response, object requestDto, - bool allowLocal, - string[] roles); + IAuthenticated authAttribtues); } } -- cgit v1.2.3