private void modifyEditAction(ActionCall action) { // At least one Crud controller 'ignores' its Edit method if (action == null) { return; } var chain = action.ParentChain(); chain.Route = action.BuildRouteForPattern("{0}/{{Id}}".ToFormat(_routeName)); // If there are no if (!action.HasAttribute <AuthorizationAttribute>()) { var permissionName = CrudRules.SecurableNameForViewing(_entityType); chain.Authorization.AddRole(permissionName); } // apply data restrictions var policyType = typeof(RestrictedDataAuthorizationPolicy <>).MakeGenericType(_entityType); chain.Authorization.AddPolicy(policyType); action.AddAfter(Wrapper.For <CrudUrlBehavior>()); }
private void addCreatorCall(ActionCall call) { var actionType = typeof(EntityCreator <,>).MakeGenericType(_editModelType, _entityType); var method = actionType.GetMethod("Create"); var createAction = new ActionCall(actionType, method); call.AddAfter(createAction); }
public void enrich_puts_the_new_chain_node_directly_behind_the_call() { action = ActionCall.For<ControllerTarget>(x => x.OneInOneOut(null)); var next = new RenderJsonNode(typeof (Model2)); action.AddToEnd(next); var enricher = new Wrapper(typeof (string)); action.AddAfter(enricher); action.Next.ShouldBeTheSameAs(enricher); enricher.Next.ShouldBeTheSameAs(next); }
public void append_to_descendent_when_next_is_not_null() { action = ActionCall.For<ControllerTarget>(x => x.OneInOneOut(null)); var wrapper = new Wrapper(typeof (FakeBehavior)); action.AddAfter(wrapper); var next = new RenderJsonNode(typeof (Model2)); action.AddToEnd(next); action.Next.ShouldBeTheSameAs(wrapper); wrapper.Next.ShouldBeTheSameAs(next); action.ShouldHaveTheSameElementsAs(wrapper, next); }
public void enrich_puts_the_new_chain_node_directly_behind_the_call() { action = ActionCall.For <ControllerTarget>(x => x.OneInOneOut(null)); var next = new OutputNode(typeof(Model2)); action.AddToEnd(next); var enricher = new Wrapper(typeof(DebugReportTester.StubBehavior)); action.AddAfter(enricher); action.Next.ShouldBeTheSameAs(enricher); enricher.Next.ShouldBeTheSameAs(next); }
public void append_to_descendent_when_next_is_not_null() { action = ActionCall.For <ControllerTarget>(x => x.OneInOneOut(null)); var wrapper = new Wrapper(typeof(FakeBehavior)); action.AddAfter(wrapper); var next = new OutputNode(typeof(Model2)); action.AddToEnd(next); action.Next.ShouldBeTheSameAs(wrapper); wrapper.Next.ShouldBeTheSameAs(next); action.ShouldHaveTheSameElementsAs(wrapper, next); }
private void addNewEntityPipeline(ActionCall action) { var lastAction = action; if (action.OutputType() == _entityType) { var handlerType = action.HandlerType; var editMethod = handlerType.GetMethod("Edit"); var editPass = new ActionCall(handlerType, editMethod); action.AddAfter(editPass); lastAction = editPass; } lastAction.AddAfter(Wrapper.For <CrudUrlBehavior>()); }
public void enrich_puts_the_new_chain_node_directly_behind_the_call() { action = ActionCall.For <ControllerTarget>(x => x.OneInOneOut(null)); var next = new RenderJsonNode(typeof(Model2)); action.AddToEnd(next); var enricher = new Wrapper(typeof(string)); action.AddAfter(enricher); action.Next.ShouldBeTheSameAs(enricher); enricher.Next.ShouldBeTheSameAs(next); }
private void addNewEntityPipeline(ActionCall action) { var lastAction = action; if (action.OutputType() == _entityType) { var handlerType = action.HandlerType; var editMethod = handlerType.GetMethod("Edit"); var editPass = new ActionCall(handlerType, editMethod); action.AddAfter(editPass); lastAction = editPass; } lastAction.AddAfter(Wrapper.For<CrudUrlBehavior>()); }
private void addCreatorCall(ActionCall call) { var actionType = typeof(EntityCreator<,>).MakeGenericType(_editModelType, _entityType); var method = actionType.GetMethod("Create"); var createAction = new ActionCall(actionType, method); call.AddAfter(createAction); }
private void modifyEditAction(ActionCall action) { // At least one Crud controller 'ignores' its Edit method if (action == null) return; var chain = action.ParentChain(); chain.Route = action.BuildRouteForPattern("{0}/{{Id}}".ToFormat(_routeName)); // If there are no if (!action.HasAttribute<AuthorizationAttribute>()) { var permissionName = CrudRules.SecurableNameForViewing(_entityType); chain.Authorization.AddRole(permissionName); } // apply data restrictions var policyType = typeof(RestrictedDataAuthorizationPolicy<>).MakeGenericType(_entityType); chain.Authorization.AddPolicy(policyType); action.AddAfter(Wrapper.For<CrudUrlBehavior>()); }