diff --git a/src/Umbraco.Web/Install/UmbracoInstallAuthorizeAttribute.cs b/src/Umbraco.Web/Install/UmbracoInstallAuthorizeAttribute.cs
index 994703bfd3..3aafa86de3 100644
--- a/src/Umbraco.Web/Install/UmbracoInstallAuthorizeAttribute.cs
+++ b/src/Umbraco.Web/Install/UmbracoInstallAuthorizeAttribute.cs
@@ -13,9 +13,23 @@ namespace Umbraco.Web.Install
///
internal class UmbracoInstallAuthorizeAttribute : AuthorizeAttribute
{
- private readonly ApplicationContext _applicationContext;
+ private readonly ApplicationContext _applicationContext;
private readonly UmbracoContext _umbracoContext;
+ private ApplicationContext GetApplicationContext()
+ {
+ return _applicationContext ?? ApplicationContext.Current;
+ }
+
+ private UmbracoContext GetUmbracoContext()
+ {
+ return _umbracoContext ?? UmbracoContext.Current;
+ }
+
+ ///
+ /// THIS SHOULD BE ONLY USED FOR UNIT TESTS
+ ///
+ ///
public UmbracoInstallAuthorizeAttribute(UmbracoContext umbracoContext)
{
if (umbracoContext == null) throw new ArgumentNullException("umbracoContext");
@@ -23,11 +37,9 @@ namespace Umbraco.Web.Install
_applicationContext = _umbracoContext.Application;
}
- public UmbracoInstallAuthorizeAttribute()
- : this(UmbracoContext.Current)
- {
-
- }
+ public UmbracoInstallAuthorizeAttribute()
+ {
+ }
///
/// Ensures that the user must be logged in or that the application is not configured just yet.
@@ -41,13 +53,13 @@ namespace Umbraco.Web.Install
try
{
//if its not configured then we can continue
- if (!_applicationContext.IsConfigured)
+ if (!GetApplicationContext().IsConfigured)
{
return true;
}
-
+ var umbCtx = GetUmbracoContext();
//otherwise we need to ensure that a user is logged in
- var isLoggedIn = _umbracoContext.Security.ValidateUserContextId(_umbracoContext.Security.UmbracoUserContextId);
+ var isLoggedIn = umbCtx.Security.ValidateUserContextId(umbCtx.Security.UmbracoUserContextId);
if (isLoggedIn)
{
return true;
diff --git a/src/Umbraco.Web/Mvc/MemberAuthorizeAttribute.cs b/src/Umbraco.Web/Mvc/MemberAuthorizeAttribute.cs
index bdcbd275ba..dd9720cdcf 100644
--- a/src/Umbraco.Web/Mvc/MemberAuthorizeAttribute.cs
+++ b/src/Umbraco.Web/Mvc/MemberAuthorizeAttribute.cs
@@ -18,18 +18,24 @@ namespace Umbraco.Web.Mvc
public sealed class MemberAuthorizeAttribute : AuthorizeAttribute
{
- private readonly ApplicationContext _applicationContext;
private readonly UmbracoContext _umbracoContext;
+ private UmbracoContext GetUmbracoContext()
+ {
+ return _umbracoContext ?? UmbracoContext.Current;
+ }
+
+ ///
+ /// THIS SHOULD BE ONLY USED FOR UNIT TESTS
+ ///
+ ///
public MemberAuthorizeAttribute(UmbracoContext umbracoContext)
{
if (umbracoContext == null) throw new ArgumentNullException("umbracoContext");
_umbracoContext = umbracoContext;
- _applicationContext = _umbracoContext.Application;
}
public MemberAuthorizeAttribute()
- : this(UmbracoContext.Current)
{
}
@@ -76,7 +82,7 @@ namespace Umbraco.Web.Mvc
}
}
- return _umbracoContext.Security.IsMemberAuthorized(AllowAll,
+ return GetUmbracoContext().Security.IsMemberAuthorized(AllowAll,
AllowType.Split(','),
AllowGroup.Split(','),
members);
diff --git a/src/Umbraco.Web/Mvc/UmbracoAuthorizeAttribute.cs b/src/Umbraco.Web/Mvc/UmbracoAuthorizeAttribute.cs
index 19615706d6..ff7056838b 100644
--- a/src/Umbraco.Web/Mvc/UmbracoAuthorizeAttribute.cs
+++ b/src/Umbraco.Web/Mvc/UmbracoAuthorizeAttribute.cs
@@ -15,6 +15,20 @@ namespace Umbraco.Web.Mvc
private readonly ApplicationContext _applicationContext;
private readonly UmbracoContext _umbracoContext;
+ private ApplicationContext GetApplicationContext()
+ {
+ return _applicationContext ?? ApplicationContext.Current;
+ }
+
+ private UmbracoContext GetUmbracoContext()
+ {
+ return _umbracoContext ?? UmbracoContext.Current;
+ }
+
+ ///
+ /// THIS SHOULD BE ONLY USED FOR UNIT TESTS
+ ///
+ ///
public UmbracoAuthorizeAttribute(UmbracoContext umbracoContext)
{
if (umbracoContext == null) throw new ArgumentNullException("umbracoContext");
@@ -22,11 +36,9 @@ namespace Umbraco.Web.Mvc
_applicationContext = _umbracoContext.Application;
}
- public UmbracoAuthorizeAttribute()
- : this(UmbracoContext.Current)
- {
-
- }
+ public UmbracoAuthorizeAttribute()
+ {
+ }
///
/// Ensures that the user must be in the Administrator or the Install role
@@ -40,9 +52,10 @@ namespace Umbraco.Web.Mvc
try
{
//we need to that the app is configured and that a user is logged in
- if (!_applicationContext.IsConfigured)
+ if (!GetApplicationContext().IsConfigured)
return false;
- var isLoggedIn = _umbracoContext.Security.ValidateUserContextId(_umbracoContext.Security.UmbracoUserContextId);
+ var umbCtx = GetUmbracoContext();
+ var isLoggedIn = umbCtx.Security.ValidateUserContextId(umbCtx.Security.UmbracoUserContextId);
return isLoggedIn;
}
catch (Exception)
diff --git a/src/Umbraco.Web/WebApi/MemberAuthorizeAttribute.cs b/src/Umbraco.Web/WebApi/MemberAuthorizeAttribute.cs
index bb15fe7c47..0fc04a6206 100644
--- a/src/Umbraco.Web/WebApi/MemberAuthorizeAttribute.cs
+++ b/src/Umbraco.Web/WebApi/MemberAuthorizeAttribute.cs
@@ -16,21 +16,27 @@ namespace Umbraco.Web.WebApi
public sealed class MemberAuthorizeAttribute : AuthorizeAttribute
{
- private readonly ApplicationContext _applicationContext;
private readonly UmbracoContext _umbracoContext;
+ private UmbracoContext GetUmbracoContext()
+ {
+ return _umbracoContext ?? UmbracoContext.Current;
+ }
+
+ ///
+ /// THIS SHOULD BE ONLY USED FOR UNIT TESTS
+ ///
+ ///
public MemberAuthorizeAttribute(UmbracoContext umbracoContext)
{
if (umbracoContext == null) throw new ArgumentNullException("umbracoContext");
_umbracoContext = umbracoContext;
- _applicationContext = _umbracoContext.Application;
}
public MemberAuthorizeAttribute()
- : this(UmbracoContext.Current)
- {
+ {
- }
+ }
///
/// Flag for whether to allow all site visitors or just authenticated members
@@ -74,7 +80,7 @@ namespace Umbraco.Web.WebApi
}
}
- return _umbracoContext.Security.IsMemberAuthorized(AllowAll,
+ return GetUmbracoContext().Security.IsMemberAuthorized(AllowAll,
AllowType.Split(','),
AllowGroup.Split(','),
members);
diff --git a/src/Umbraco.Web/WebApi/UmbracoAuthorizeAttribute.cs b/src/Umbraco.Web/WebApi/UmbracoAuthorizeAttribute.cs
index dc83b043df..7fee8c34e4 100644
--- a/src/Umbraco.Web/WebApi/UmbracoAuthorizeAttribute.cs
+++ b/src/Umbraco.Web/WebApi/UmbracoAuthorizeAttribute.cs
@@ -13,6 +13,20 @@ namespace Umbraco.Web.WebApi
private readonly ApplicationContext _applicationContext;
private readonly UmbracoContext _umbracoContext;
+ private ApplicationContext GetApplicationContext()
+ {
+ return _applicationContext ?? ApplicationContext.Current;
+ }
+
+ private UmbracoContext GetUmbracoContext()
+ {
+ return _umbracoContext ?? UmbracoContext.Current;
+ }
+
+ ///
+ /// THIS SHOULD BE ONLY USED FOR UNIT TESTS
+ ///
+ ///
public UmbracoAuthorizeAttribute(UmbracoContext umbracoContext)
{
if (umbracoContext == null) throw new ArgumentNullException("umbracoContext");
@@ -21,9 +35,7 @@ namespace Umbraco.Web.WebApi
}
public UmbracoAuthorizeAttribute()
- : this(UmbracoContext.Current)
{
-
}
protected override bool IsAuthorized(System.Web.Http.Controllers.HttpActionContext actionContext)
@@ -31,9 +43,10 @@ namespace Umbraco.Web.WebApi
try
{
//we need to that the app is configured and that a user is logged in
- if (!_applicationContext.IsConfigured)
+ if (!GetApplicationContext().IsConfigured)
return false;
- var isLoggedIn = _umbracoContext.Security.ValidateUserContextId(_umbracoContext.Security.UmbracoUserContextId);
+ var umbCtx = GetUmbracoContext();
+ var isLoggedIn = umbCtx.Security.ValidateUserContextId(umbCtx.Security.UmbracoUserContextId);
return isLoggedIn;
}
catch (Exception)