aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-10-28 19:17:55 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-10-28 19:17:55 -0400
commit5ca4d60c34c7ead76c388bd2c3ca192b38aae1f0 (patch)
tree9e9bc711c6b422c7f3eabdac5cd3cf2a8e5a11b8 /MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs
parent67528a07992326472a4e6dfe826ddcc5358a6f67 (diff)
connect updates
Diffstat (limited to 'MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs')
-rw-r--r--MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs20
1 files changed, 11 insertions, 9 deletions
diff --git a/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs b/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs
index a1a68586b..3a2bd7b75 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Net;
using MediaBrowser.Controller.Session;
@@ -45,8 +44,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security
public void Authenticate(IRequest request,
IResponse response,
object requestDto,
- bool allowLocal,
- string[] roles)
+ IAuthenticated authAttribtues)
{
if (HostContext.HasValidAuthSecret(request))
return;
@@ -54,16 +52,15 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security
//ExecuteBasic(req, res, requestDto); //first check if session is authenticated
//if (res.IsClosed) return; //AuthenticateAttribute already closed the request (ie auth failed)
- ValidateUser(request, allowLocal, roles);
+ ValidateUser(request, response, authAttribtues);
}
- private void ValidateUser(IRequest req, bool allowLocal,
- IEnumerable<string> roles)
+ private void ValidateUser(IRequest req, IResponse response, IAuthenticated authAttribtues)
{
// This code is executed before the service
var auth = AuthorizationContext.GetAuthorizationInfo(req);
- if (!allowLocal || !req.IsLocal)
+ if (!authAttribtues.AllowLocal || !req.IsLocal)
{
if (!string.IsNullOrWhiteSpace(auth.Token) ||
!_config.Configuration.InsecureApps2.Contains(auth.Client ?? string.Empty, StringComparer.OrdinalIgnoreCase))
@@ -91,12 +88,17 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security
throw new AuthenticationException("User account has been disabled.");
}
- if (!user.Configuration.IsAdministrator && !user.IsParentalScheduleAllowed())
+ if (!user.Configuration.IsAdministrator &&
+ !authAttribtues.EscapeParentalControl &&
+ !user.IsParentalScheduleAllowed())
{
+ response.AddHeader("X-Application-Error-Code", "ParentalControl");
throw new AuthenticationException("This user account is not allowed access at this time.");
}
}
+ var roles = authAttribtues.GetRoles().ToList();
+
if (roles.Contains("admin", StringComparer.OrdinalIgnoreCase))
{
if (user == null || !user.Configuration.IsAdministrator)