public void RegisterDynamicActions(Controller controller) { foreach (IPresentationViewHandler handler in presentationTypesToViewHandlers.Values) { handler.RegisterDynamicActions(controller); } }
private string GetControllerName(Controller c) { string controllerName = c.Name; if (!String.IsNullOrEmpty(c.AreaName)) controllerName = c.AreaName + "/" + controllerName; return controllerName; }
public static IAction AddRelatedAction(string description, Controller c, string action, params string[] queryString) { IDictionary parameters = null; if (queryString != null && queryString.Length > 0) parameters = dictHelper.CreateDict(queryString); return AddRelatedAction(description, c.AreaName, c.Name, action, parameters); }
public AspViewBase CreateView(Type type, TextWriter output, IRailsEngineContext context, Controller controller) { ConstructorInfo constructor = (ConstructorInfo)constructors[type]; AspViewBase self = (AspViewBase)FormatterServices.GetUninitializedObject(type); constructor.Invoke(self, new object[] { this, output, context, controller }); return self; }
protected virtual string[] GetBooPaths(Controller controller, string[] myBoos){ var paths = new List<string>(); foreach (var s in myBoos){ paths.Add(controller.Context.Server.MapPath("~/views/report/" + s + ".boo")); } return paths.ToArray(); }
public bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller) { // Read previous authenticated principal from session // (could be from cookie although with more work) User user = (User) context.Session["user"]; // Sets the principal as the current user context.CurrentUser = user; // Checks if it is OK if (context.CurrentUser == null || !context.CurrentUser.Identity.IsAuthenticated) { // Not authenticated, redirect to login NameValueCollection parameters = new NameValueCollection(); parameters.Add("ReturnUrl", context.Url); controller.Redirect("login", "index", parameters); // Prevent request from continue return false; } // Everything is ok return true; }
/// <summary> /// Executa o filtro. /// </summary> public bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller) { if (!Enabled) return true; UserAgent ua = null; var uaString = context.UnderlyingContext.Request.UserAgent; if (uaString != null) { ua = (UserAgent) cache[uaString]; if (ua == null) cache[uaString] = ua = new UserAgent(uaString); } if (IsValid(ua)) return true; if (!logged) { Log.Error("Tentativa de acesso através de browser não suportado: {0}", uaString); logged = true; } controller.PropertyBag["invalidGecko"] = true; if (!Redirect) return true; throw new Exception("redir: " + Redirect); //RedirectToNotice(controller); //return false; }
public bool Perform(ExecuteEnum exec, IRailsEngineContext ctx, Controller c) { if (!controllersToSkip.IsMatch(GetControllerName(c))) if (ctx.CurrentUser == null || !ctx.CurrentUser.Identity.IsAuthenticated) return TryAutoLogin(); return true; }
/// <summary> /// Initializes a new instance of the <see cref="BrailBase"/> class. /// </summary> /// <param name="viewEngine">The view engine.</param> /// <param name="output">The output.</param> /// <param name="context">The context.</param> /// <param name="__controller">The controller.</param> public BrailBase(BooViewEngine viewEngine, TextWriter output, IRailsEngineContext context, Controller __controller) { this.viewEngine = viewEngine; this.outputStream = output; this.context = context; this.__controller = __controller; InitProperties(context, __controller); }
public static string GetCurrentLang(Controller controller) { string lang = controller.Request.ReadCookie(Constants.LOCALE_COOKIE); if ((lang == null) || (lang.Length == 0)) { lang = controller.Request.UserLanguages[0].Substring(0,2); } return lang; }
public bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller) { User user = (User)context.Session["logonUser"]; if (user == null) { return false; } return true; }
public INode BuildContent(IReportControllerExtension extension, Controller controller){ var content = Stub.Create(); SetValue("content", content); Extension = extension; Extension.CustomContentPreparatorPrepare(this); CustomPrepare(); processBrail(controller); return content; }
public bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller) { if (context.Request.Headers["mybadheader"] != null) { context.Response.Write("Denied!"); return false; } return true; }
public bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller) { if (context.Params["printable"] != null) { controller.LayoutName = "printabletheme"; } return true; }
public virtual bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller) { if (!PerformAuthentication(context)) { context.Response.Redirect("account", "authentication"); return false; } return true; }
public bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller) { _userAddFilter.Perform(exec,context,controller); if (Thread.CurrentPrincipal!=null && Thread.CurrentPrincipal.Identity.IsAuthenticated){ log.Debug("authenticated"); return true; } log.Debug("not authenticated"); controller.Redirect("intro","index"); return false; }
public bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller) { if (context.CurrentUser == null || !context.CurrentUser.Identity.IsAuthenticated) { context.Response.Redirect("admin", "login"); return false; } return true; }
protected override void PerformActionProcess(Controller controller) { base.PerformActionProcess(controller); controller.PropertyBag.Add( "items", PaginationHelper.CreatePagination(controller, PerformFindAll(), 10) ); controller.PropertyBag["properties"] = ObtainListableProperties(Model); controller.RenderView(controller.Name, "list" + Model.Type.Name); }
public override bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller) { if (context.CurrentUser.Identity.IsAuthenticated) { return true; } base.PerformAuthentication(context); return true; }
public bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller) { if (exec == ExecuteEnum.BeforeAction) { context.Response.Write("(before)"); } else if (exec == ExecuteEnum.AfterRendering) { context.Response.Write("(after)"); } return true; // Continue execution }
public bool Perform(ExecuteEnum exec, IRailsEngineContext context, Castle.MonoRail.Framework.Controller controller) { U_UserInfo u = context.Session["logonUser"] as U_UserInfo; if (u == null) { Hashtable p = new Hashtable(); p.Add("backUrl", context.Request.Uri.AbsoluteUri); controller.Redirect("/login", p); return(false); } return(true); }
public bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller) { String className = controller.GetType().FullName.Replace('.', '/'); if (className.StartsWith("SampleSite")) { className = className.Substring( "SampleSite/".Length ); } controller.PropertyBag.Add("controllerfile", className + ".cs"); return true; }
protected override void PerformActionProcess(Controller controller) { object instance = null; try { AssertIsPost(controller); instance = binder.BindObject(Model.Type, Model.Type.Name, builder.BuildSourceNode(controller.Request.Form)); CommonOperationUtils.SaveInstance(instance, controller, errors, ref prop2Validation, false); SessionScope.Current.Flush(); if (UseModelName) { controller.Redirect(controller.AreaName, controller.Name, "list" + Model.Type.Name); } else { controller.Redirect(controller.AreaName, controller.Name, "list"); } } catch(Exception ex) { errors.Add("Could not save " + Model.Type.Name + ". " + ex.Message); } if (errors.Count != 0) { controller.Context.Flash[Model.Type.Name] = instance; controller.Context.Flash["errors"] = errors; PropertyInfo keyProp = ObtainPKProperty(); IDictionary props = new Hashtable(); if (instance != null) { props[keyProp.Name] = keyProp.GetValue(instance, null); } if (UseModelName) { controller.Redirect(controller.AreaName, controller.Name, "edit" + Model.Type.Name, props); } else { controller.Redirect(controller.AreaName, controller.Name, "edit", props); } } }
public static void PrepareWorkbench(Controller controller) { foreach (var prop in Enumerable.ToArray<KeyValuePair<string, object>>(myapp.getProfile().GetAsDictionary())) { if (prop.Key.StartsWith("wb.")) { var key = prop.Key.Substring(3); controller.PropertyBag[key] = prop.Value; } } }
public void Process(Controller controller) { InitializeTemplateEngine(); bool useDefaultLayout = controller.MetaDescriptor.Layout == null; if (controller.MetaDescriptor.Scaffoldings.Count == 1) { ScaffoldingAttribute scaffoldAtt = (ScaffoldingAttribute) controller.MetaDescriptor.Scaffoldings[0]; controller.DynamicActions["new"] = new NewAction(scaffoldAtt.Model, templateEngine, false, useDefaultLayout); controller.DynamicActions["create"] = new CreateAction(scaffoldAtt.Model, templateEngine, false, useDefaultLayout); controller.DynamicActions["edit"] = new EditAction(scaffoldAtt.Model, templateEngine, false, useDefaultLayout); controller.DynamicActions["update"] = new UpdateAction(scaffoldAtt.Model, templateEngine, false, useDefaultLayout); controller.DynamicActions["remove"] = new RemoveAction(scaffoldAtt.Model, templateEngine, false, useDefaultLayout); controller.DynamicActions["confirm"] = new ConfirmRemoveAction(scaffoldAtt.Model, templateEngine, false, useDefaultLayout); controller.DynamicActions["list"] = new ListAction(scaffoldAtt.Model, templateEngine, false, useDefaultLayout); } else { foreach(ScaffoldingAttribute scaffoldAtt in controller.MetaDescriptor.Scaffoldings) { String name = scaffoldAtt.Model.Name; controller.DynamicActions[String.Format("new{0}", name)] = new NewAction(scaffoldAtt.Model, templateEngine, true, useDefaultLayout); controller.DynamicActions[String.Format("create{0}", name)] = new CreateAction(scaffoldAtt.Model, templateEngine, true, useDefaultLayout); controller.DynamicActions[String.Format("edit{0}", name)] = new EditAction(scaffoldAtt.Model, templateEngine, true, useDefaultLayout); controller.DynamicActions[String.Format("update{0}", name)] = new UpdateAction(scaffoldAtt.Model, templateEngine, true, useDefaultLayout); controller.DynamicActions[String.Format("remove{0}", name)] = new RemoveAction(scaffoldAtt.Model, templateEngine, true, useDefaultLayout); controller.DynamicActions[String.Format("confirm{0}", name)] = new ConfirmRemoveAction(scaffoldAtt.Model, templateEngine, true, useDefaultLayout); controller.DynamicActions[String.Format("list{0}", name)] = new ListAction(scaffoldAtt.Model, templateEngine, true, useDefaultLayout); } } }
protected override void PerformActionProcess(Controller controller) { base.PerformActionProcess(controller); if (instance == null) { instance = Activator.CreateInstance(Model.Type); } string prefix = Model.Type.Name; controller.PropertyBag["prefix"] = prefix; controller.PropertyBag[prefix + "type"] = Model.Type; controller.PropertyBag["instance"] = instance; }
public bool Perform(ExecuteEnum when, IRailsEngineContext context, Controller controller) { context.CurrentUser = context.Session["user"] as IPrincipal; if (context.CurrentUser == null || context.CurrentUser.Identity == null || !context.CurrentUser.Identity.IsAuthenticated) { context.Session["FromUrl"] = context.Url; context.Response.Redirect("home", "authentication"); return false; } return true; }
internal static void SaveInstance(object instance, Controller controller, ArrayList errors, ref IDictionary prop2Validation, bool create) { bool isValid = true; Type genType = typeof(ActiveRecordValidationBase<>).MakeGenericType(instance.GetType()); if (genType.IsAssignableFrom(instance.GetType())) { MethodInfo isValidMethod = instance.GetType().GetMethod("IsValid"); isValid = (bool) isValidMethod.Invoke(instance, null); if (!isValid) { MethodInfo getValidationErrorMessages = instance.GetType().GetMethod("get_ValidationErrorMessages"); MethodInfo getPropertiesValidationErrorMessage = instance.GetType().GetMethod("get_PropertiesValidationErrorMessage"); errors.AddRange((ICollection) getValidationErrorMessages.Invoke(instance, null)); prop2Validation = (IDictionary) getPropertiesValidationErrorMessage.Invoke(instance, null); } } else if (instance is ActiveRecordValidationBase) { ActiveRecordValidationBase instanceBase = instance as ActiveRecordValidationBase; isValid = instanceBase.IsValid(); if (!isValid) { errors.AddRange(instanceBase.ValidationErrorMessages); prop2Validation = instanceBase.PropertiesValidationErrorMessage; } } if (isValid) { if (create) { ActiveRecordMediator.Create(instance); } else { ActiveRecordMediator.Update(instance); } } }
public void SetUp() { controller = new ReturnBinderTestController(); viewEngineManager = new InjectableStubViewEngineManager(); PrepareController(controller); services = controller.Context.Services as StubMonoRailServices; services.ViewEngineManager = viewEngineManager; engineContext = controller.Context as StubEngineContext; engineContext.Request.Headers.Add("User-Agent", "Test Fixture"); controllerContext = services.ControllerContextFactory. Create("", "ReturnBinderTest", "Index", services.ControllerDescriptorProvider.BuildDescriptor(controller)); controller.Contextualize(controller.Context, controllerContext); viewEngineManager.RegisterTemplate(string.Format("ReturnBinderTest{0}Index", Path.DirectorySeparatorChar)); }
protected override void PerformActionProcess(Controller controller) { base.PerformActionProcess(controller); object idVal = CommonOperationUtils.ReadPkFromParams(controller, ObtainPKProperty()); try { object instance = ActiveRecordMediator.FindByPrimaryKey(Model.Type, idVal, true); controller.PropertyBag["instance"] = instance; controller.PropertyBag["id"] = idVal; } catch(Exception ex) { throw new ScaffoldException("Could not obtain instance by using this id", ex); } }
public bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller) { if ((appContext.CurrentProject == null) && !((controller is ProjectsController) && (controller.Action.Equals("new") || controller.Action.Equals("create")))) // Avoid infinite loop when redirecting { if (Project.Exists()) { appContext.CurrentProject = Project.FindFirst(); } else { context.Response.Redirect("projects", "new"); return false; } } controller.PropertyBag["currentproject"] = appContext.CurrentProject; return true; }