Commit 1f1a3f1

mokhan <mokhan@ce5e1baf-6525-42e4-a1b2-857ea38da20a>
2009-05-05 19:09:49
git-svn-id: https://svn.xp-dev.com/svn/mokhan-mo.money@204 ce5e1baf-6525-42e4-a1b2-857ea38da20a
1 parent e2c1e66
Changed files (4)
trunk
product
Gorilla.Commons.Utility
MyMoney
boot
container
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();
         }
     }