Commit 1f1a3f1
Changed files (4)
trunk
product
Gorilla.Commons.Utility
MyMoney
boot
container
registration
proxy_configuration
trunk/product/Gorilla.Commons.Utility/Core/FilteredVisitor.cs
@@ -0,0 +1,19 @@
+namespace Gorilla.Commons.Utility.Core
+{
+ public class FilteredVisitor<T> : IVisitor<T>
+ {
+ readonly ISpecification<T> condition;
+ readonly IVisitor<T> visitor;
+
+ public FilteredVisitor(ISpecification<T> condition, IVisitor<T> visitor)
+ {
+ this.condition = condition;
+ this.visitor = visitor;
+ }
+
+ public void visit(T item_to_visit)
+ {
+ if (condition.is_satisfied_by(item_to_visit)) visitor.visit(item_to_visit);
+ }
+ }
+}
\ No newline at end of file
trunk/product/Gorilla.Commons.Utility/Gorilla.Commons.Utility.csproj
@@ -69,6 +69,7 @@
<Compile Include="Core\EmptyCommand.cs" />
<Compile Include="Core\ComponentFactory.cs" />
<Compile Include="Core\Factory.cs" />
+ <Compile Include="Core\FilteredVisitor.cs" />
<Compile Include="Core\IBuilder.cs" />
<Compile Include="Core\ICallback.cs" />
<Compile Include="Core\ICommand.cs" />
trunk/product/MyMoney/boot/container/registration/proxy_configuration/InterceptingFilter.cs
@@ -18,7 +18,7 @@ namespace MoMoney.boot.container.registration.proxy_configuration
public void Intercept(IInvocation invocation)
{
if (filter.is_satisfied_by(Thread.CurrentPrincipal)) invocation.Proceed();
- else this.log().debug("call to {0} was blocked");
+ else this.log().debug("call to {0} was blocked", invocation);
}
}
}
\ No newline at end of file
trunk/product/MyMoney/boot/container/registration/proxy_configuration/ServiceLayerConfiguration.cs
@@ -13,8 +13,7 @@ namespace MoMoney.boot.container.registration.proxy_configuration
{
item.add_interceptor(Lazy.load<IUnitOfWorkInterceptor>()).intercept_all();
item.add_interceptor(
- new InterceptingFilter(new IsInRole("Users")
- .and(new IsInRole("Administrators"))))
+ new InterceptingFilter(new IsInRole("Users").or(new IsInRole("Administrators"))))
.intercept_all();
}
}