Beispiel #1
0
        public ActionResult HttpPost(Page_Context context, PagePositionContext positionContext)
        {
            var httpContext = context.ControllerContext.RequestContext.HttpContext;

            var site = context.PageRequestContext.Site;

            var repository = site.GetRepository();

            if (repository == null)
            {
                throw new SiteRepositoryNotExists();
            }
            object    model     = null;
            Exception exception = null;

            try
            {
                var folderName = context.ControllerContext.RequestContext.GetRequestValue("FolderName");
                if (!string.IsNullOrEmpty(folderName))
                {
                    var folder = FolderHelper.Parse <TextFolder>(repository, folderName);
                    model = DoPost(repository, folder, context.ControllerContext, context.ControllerContext.HttpContext.Request.Form);
                }
            }
            catch (Exception e)
            {
                exception = e;
            }

            return(PluginHelper.ReturnActionResult(context.ControllerContext, model, exception));
        }
Beispiel #2
0
 public System.Web.Mvc.ActionResult ExecutePage(Page_Context page_context)
 {
     //execute plugins
     //execute data rule/data source
     //initlize title/metadata
     //execute module actions
     return(ViewPage(page_context));
 }
Beispiel #3
0
 public System.Web.Mvc.ActionResult ExecutePage(Page_Context page_context)
 {
     //execute plugins
     //execute data rule/data source
     //initlize title/metadata
     //execute module actions
     return ViewPage(page_context);
 }
Beispiel #4
0
 private ActionResult Authorizate(Page_Context context)
 {
     if (!MemberAuth.IsAuthenticated())
     {
         return(new RedirectResult(context.Url.FrontUrl().PageUrl("SignIN", new { returnUrl = context.ControllerContext.HttpContext.Request.RawUrl }).ToString()));
     }
     return(null);
 }
Beispiel #5
0
        public virtual ActionResult Execute(Page_Context pageContext, PagePositionContext positionContext)
        {
            PageContext         = pageContext;
            PagePositionContext = positionContext;
            Context             = pageContext.ControllerContext.HttpContext;
            Request             = Context.Request;
            Response            = Context.Response;

            return(Execute());
        }
Beispiel #6
0
        public System.Web.Mvc.ActionResult HttpGet(Page_Context context, PagePositionContext positionContext)
        {
            _responseManager.SetHeader("SamplePlugin", "GET");

            //context.ControllerContext.Controller.ViewBag.ovos = "ovos";

            //context.ControllerContext.Controller.ControllerContext.

            return(null);
        }
Beispiel #7
0
        /// <summary>
        /// 结束页面请求
        /// </summary>
        /// <param name="page_Context"></param>
        public void EndPageRequest(Page_Context page_context)
        {
            Contract.Requires(page_context != null);
            foreach (var item in _events)
            {
                item.EndPageRequest(this, new EndPageRequestEvengArgs(page_context));
            }

            _pageRequestFlow.EndPageRequest(page_context);
        }
        public System.Web.Mvc.ActionResult HttpPost(Page_Context context, PagePositionContext positionContext)
        {
            HttpRequestBase request    = context.ControllerContext.HttpContext.Request;
            Controller      controller = (Controller)context.ControllerContext.Controller;
            string          username   = request.Params["UserName"];
            string          token      = request.Params["token"];

            if (!ValidateMemberPasswordToken(username, token))
            {
                context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", "The password token is invalid.".Localize());
                return(null);
            }
            AntiForgery.Validate();

            var newPassword     = request.Form["newpassword"];
            var confirmPassword = request.Form["confirmPassword"];

            if (newPassword != confirmPassword)
            {
                context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", "The passwords do not match.".RawLabel().ToString());
                return(null);
            }
            try
            {
                var httpContext = context.ControllerContext.HttpContext;
                var repository  = Repository.Current;
                var textFolder  = new TextFolder(repository, "Members");
                var content     = textFolder.CreateQuery().WhereEquals("UserName", username).FirstOrDefault();

                var passwordSalt = "";
                if (content["PasswordSalt"] == null)
                {
                    passwordSalt = MemberAuth.GenerateSalt();
                }
                else
                {
                    passwordSalt = content["PasswordSalt"].ToString();
                }

                newPassword = MemberAuth.EncryptPassword(newPassword, passwordSalt);

                ServiceFactory.TextContentManager.Update(textFolder, content.UUID,
                                                         new string[] { "Password", "ForgotPWToken", "PasswordSalt" }, new object[] { newPassword, "", passwordSalt });
                context.ControllerContext.Controller.ViewBag.Message = "The password has been changed.".Label();

                MemberAuth.SetAuthCookie(username, false);
                return(new RedirectResult(context.Url.FrontUrl().PageUrl("Dashboard").ToString()));
            }
            catch (Exception e)
            {
                context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", e.Message);
                Kooboo.HealthMonitoring.Log.LogException(e);
            }
            return(null);
        }
        public System.Web.Mvc.ActionResult HttpPost(Page_Context context, PagePositionContext positionContext)
        {
            HttpRequestBase request    = context.ControllerContext.HttpContext.Request;
            Controller      controller = (Controller)context.ControllerContext.Controller;
            string          username   = request.Form["username"];
            string          email      = request.Form["email"];

            try
            {
                if (string.IsNullOrEmpty(username) && string.IsNullOrEmpty(email))
                {
                    controller.ViewData.ModelState.AddModelError("", "Username or Email is required.".Localize());
                    return(null);
                }
                else if (controller.ViewData.ModelState.IsValid)
                {
                    var         repository = Repository.Current;
                    var         textFolder = new TextFolder(repository, "Members");
                    TextContent content    = null;
                    if (!string.IsNullOrEmpty(username))
                    {
                        content = textFolder.CreateQuery().WhereEquals("UserName", username).FirstOrDefault();
                        email   = content.Get <string>("Email");
                    }
                    else
                    {
                        content  = textFolder.CreateQuery().WhereEquals("Email", email).FirstOrDefault();
                        username = content.Get <string>("UserName");
                    }
                    if (content != null)
                    {
                        string randomValue = Kooboo.UniqueIdGenerator.GetInstance().GetBase32UniqueId(16);
                        ServiceFactory.TextContentManager.Update(textFolder, content.UUID, new string[] { "ForgotPWToken" }, new object[] { randomValue });

                        string link      = new Uri(request.Url, string.Format("ResetPassword?UserName={0}&token={1}".RawLabel().ToString(), username, randomValue)).ToString();
                        string emailBody = "<b>{0}</b> <br/><br/> To change your password, click on the following link:<br/> <br/> <a href='{1}'>{1}</a> <br/>".RawLabel().ToString();
                        string subject   = "Reset your password".RawLabel().ToString();
                        string body      = string.Format(emailBody, username, link);
                        SendMail(email, subject, body, false);
                    }
                    else
                    {
                        controller.ViewData.ModelState.AddModelError("", "The user does not exists.".RawLabel().ToString());
                    }
                    controller.ViewBag.Message = "An email with instructions to choose a new password has been sent to you.".RawLabel().ToString();
                }
            }
            catch (Exception e)
            {
                controller.ViewData.ModelState.AddModelError("", e.Message);
            }

            return(null);
        }
Beispiel #10
0
        protected override void BySchema(Page_Context pageContext, View.PagePositionContext positionContext, Repository repository, Schema schema)
        {
            string uuid = pageContext.ControllerContext.RequestContext.GetRequestValue("uuid");

            try
            {
                Content.Services.ServiceFactory.TextContentManager.Delete(repository, schema, uuid);
            }
            catch (RuleViolationException violationException)
            {
                violationException.FillIssues(positionContext == null ? pageContext.ControllerContext.Controller.ViewData.ModelState : positionContext.ViewData.ModelState);
            }
        }
        public System.Web.Mvc.ActionResult HttpGet(Page_Context context, PagePositionContext positionContext)
        {
            HttpRequestBase request    = context.ControllerContext.HttpContext.Request;
            Controller      controller = (Controller)context.ControllerContext.Controller;
            string          username   = request.Params["UserName"];
            string          token      = request.Params["token"];

            if (!ValidateMemberPasswordToken(username, token))
            {
                context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", "The password token is invalid.".Localize());
            }
            return(null);
        }
Beispiel #12
0
        public virtual IHtmlString Render(Page_Context pageContext, string positionId, string defaultHost, string defaultRequestPath, bool noProxy, CacheSettings cacheSetting)
        {
            string moduleURL = pageContext.PageRequestContext.ModuleUrlContext.GetModuleUrl(positionId);

            if (!string.IsNullOrEmpty(moduleURL))
            {
                defaultRequestPath = moduleURL.Trim('~');
            }
            var httpMethod = pageContext.ControllerContext.HttpContext.Request.HttpMethod;

            if (!defaultHost.StartsWith("http://"))
            {
                defaultHost = "http://" + defaultHost;
            }

            var requestUrl = UrlUtility.Combine(defaultHost, defaultRequestPath);

            Func <IHtmlString> getHtml = () =>
            {
                Func <string, bool, string> proxyUrl = null;

                if (!noProxy)
                {
                    proxyUrl = (url, isForm) => GenerateProxyUrl(pageContext, positionId, url, isForm);
                }
                if (httpMethod.ToUpper() == "POST")
                {
                    var postModule = pageContext.PageRequestContext.AllQueryString[Kooboo.CMS.Sites.View.ModuleUrlContext.PostModuleParameter];
                    if (postModule != positionId)
                    {
                        httpMethod = "GET";
                    }
                }


                var html = _webProxy.ProcessRequest(pageContext.ControllerContext.HttpContext, requestUrl, httpMethod, proxyUrl);

                return(html);
            };

            if (cacheSetting != null && cacheSetting.EnableCaching != null && cacheSetting.EnableCaching == true && httpMethod.ToUpper() == "GET")
            {
                string cacheKey = string.Format("{0}-{1}-{2}", positionId, requestUrl, noProxy);
                return(pageContext.PageRequestContext.Site.ObjectCache().GetCache(cacheKey, getHtml, cacheSetting.ToCachePolicy()));
            }
            else
            {
                return(getHtml());
            }
        }
Beispiel #13
0
        public virtual IHtmlString Render(Page_Context pageContext, string positionId, string defaultHost, string defaultRequestPath, bool noProxy, CacheSettings cacheSetting)
        {
            string moduleURL = pageContext.PageRequestContext.ModuleUrlContext.GetModuleUrl(positionId);
            if (!string.IsNullOrEmpty(moduleURL))
            {
                defaultRequestPath = moduleURL.Trim('~');
            }
            var httpMethod = pageContext.ControllerContext.HttpContext.Request.HttpMethod;

            if (!defaultHost.StartsWith("http://"))
            {
                defaultHost = "http://" + defaultHost;
            }

            var requestUrl = UrlUtility.Combine(defaultHost, defaultRequestPath);

            Func<IHtmlString> getHtml = () =>
            {

                Func<string, bool, string> proxyUrl = null;

                if (!noProxy)
                {
                    proxyUrl = (url, isForm) => GenerateProxyUrl(pageContext, positionId, url, isForm);
                }
                if (httpMethod.ToUpper() == "POST")
                {
                    var postModule = pageContext.PageRequestContext.AllQueryString[Kooboo.CMS.Sites.View.ModuleUrlContext.PostModuleParameter];
                    if (postModule != positionId)
                    {
                        httpMethod = "GET";
                    }
                }

                var html = _webProxy.ProcessRequest(pageContext.ControllerContext.HttpContext, requestUrl, httpMethod, proxyUrl);

                return html;
            };

            if (cacheSetting != null && cacheSetting.EnableCaching != null && cacheSetting.EnableCaching == true && httpMethod.ToUpper() == "GET")
            {
                string cacheKey = string.Format("{0}-{1}-{2}", positionId, requestUrl, noProxy);
                return pageContext.PageRequestContext.Site.ObjectCache().GetCache(cacheKey, getHtml, cacheSetting.ToCachePolicy());
            }
            else
            {
                return getHtml();
            }
        }
Beispiel #14
0
        protected override void BySchema(Page_Context pageContext, View.PagePositionContext positionContext, Repository repository, Schema schema)
        {
            var httpContext = pageContext.ControllerContext.RequestContext.HttpContext;

            string parentUUID = pageContext.ControllerContext.RequestContext.GetRequestValue("ParentUUID");

            try
            {
                Content.Services.ServiceFactory.TextContentManager.Add(repository, schema, parentUUID,
                                                                       httpContext.Request.Form, httpContext.Request.Files, httpContext.User.Identity.Name);
            }
            catch (RuleViolationException violationException)
            {
                violationException.FillIssues(positionContext == null ? pageContext.ControllerContext.Controller.ViewData.ModelState : positionContext.ViewData.ModelState);
            }
        }
        public System.Web.Mvc.ActionResult HttpPost(Page_Context context, PagePositionContext positionContext)
        {
            AntiForgery.Validate();

            try
            {
                var httpContext = context.ControllerContext.HttpContext;
                var repository  = Repository.Current;
                var textFolder  = new TextFolder(repository, "Members");
                var userContent = MemberAuth.GetMemberContent();

                var oldPassword = httpContext.Request.Form["OldPassword"];
                var newPassword = httpContext.Request.Form["NewPassword"];

                if (userContent["PasswordSalt"] != null)
                {
                    oldPassword = MemberAuth.EncryptPassword(oldPassword, userContent["PasswordSalt"].ToString());
                }
                if (userContent["password"].ToString() == oldPassword)
                {
                    var passwordSalt = "";
                    if (userContent["PasswordSalt"] == null)
                    {
                        passwordSalt = MemberAuth.GenerateSalt();
                    }
                    else
                    {
                        passwordSalt = userContent["PasswordSalt"].ToString();
                    }

                    newPassword = MemberAuth.EncryptPassword(newPassword, passwordSalt);

                    ServiceFactory.TextContentManager.Update(textFolder, userContent.UUID, new string[] { "Password", "PasswordSalt" }, new object[] { newPassword, passwordSalt });
                    context.ControllerContext.Controller.ViewBag.Message = "The password has been changed.".RawLabel().ToString();
                }
                else
                {
                    context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", "The old password is invalid.".RawLabel().ToString());
                }
            }
            catch (Exception e)
            {
                context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", e);
                Kooboo.HealthMonitoring.Log.LogException(e);
            }
            return(null);
        }
Beispiel #16
0
        public System.Web.Mvc.ActionResult HttpPost(Page_Context context, PagePositionContext positionContext)
        {
            AntiForgery.Validate();

            try
            {
                var httpContext = context.ControllerContext.HttpContext;
                var repository  = Repository.Current;
                var textFolder  = new TextFolder(repository, "Members");

                string username = httpContext.Request.Form["username"];
                string password = httpContext.Request.Form["password"];


                var member = textFolder.CreateQuery().WhereEquals("UserName", username).FirstOrDefault();

                if (member != null)
                {
                    var encryptedPassword = password;
                    if (member["PasswordSalt"] != null)
                    {
                        var passwordSalt = member["PasswordSalt"].ToString();
                        encryptedPassword = MemberAuth.EncryptPassword(password, passwordSalt);
                    }
                    if (encryptedPassword == member["Password"].ToString())
                    {
                        var rememberme = httpContext.Request.Form["rememberMe"].Contains("true");
                        var returnUrl  = httpContext.Request.QueryString["returnUrl"];
                        if (string.IsNullOrEmpty(returnUrl))
                        {
                            returnUrl = context.Url.FrontUrl().PageUrl("Dashboard").ToString();
                        }
                        MemberAuth.SetAuthCookie(username, rememberme);
                        return(new RedirectResult(returnUrl));
                    }
                }
                context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", "Username or password is invalid".RawLabel().ToString());
                return(null);
            }
            catch (Exception e)
            {
                context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", e);
                Kooboo.HealthMonitoring.Log.LogException(e);
            }
            return(null);
        }
Beispiel #17
0
        /// <summary>
        /// 渲染输出页面
        /// </summary>
        /// <param name="page_context"></param>
        /// <param name="actionResult"></param>
        public void RenderPage(Page_Context page_context, ActionResult actionResult)
        {
            Contract.Requires(page_context != null);
            Contract.Requires(actionResult != null);
            foreach (var item in _events)
            {
                item.PreRenderPage(this, new PreRenderPageEventArgs(page_context, actionResult));
            }

            _pageRequestFlow.RenderPage(page_context, actionResult);

            foreach (var item in _events)
            {
                var args = new PostRenderPageEventArgs(page_context, actionResult);
                item.PostRenderPage(this, args);
            }
        }
Beispiel #18
0
        public virtual IHtmlString RenderView(HtmlHelper htmlHelper, Page_Context pageContext, string viewName, ViewDataDictionary viewData, object parameters, bool executeDataRule)
        {
            Kooboo.CMS.Sites.Models.View view = (new Kooboo.CMS.Sites.Models.View(pageContext.PageRequestContext.Site, viewName).LastVersion()).AsActual();

            if (view != null)
            {
                //backup the parent view context
                var parentPositionContext = pageContext.ViewDataContext;

                var parameters1 = parameters is IDictionary <string, object>?((IDictionary <string, object>)parameters) : new RouteValueDictionary(parameters);
                pageContext.ViewDataContext = new PagePositionContext(view, parameters1, viewData);

                if (executeDataRule)
                {
                    viewData = new ViewDataDictionary(viewData);
                    var pageRequestContext = pageContext.PageRequestContext;
                    if (view.DataRules != null)
                    {
                        var valueProvider = pageRequestContext.GetValueProvider();
                        valueProvider.Insert(0, new ViewParameterValueProvider(pageContext.ViewDataContext.Parameters));
                        var dataRuleContext = new DataRuleContext(pageRequestContext.Site, pageRequestContext.Page)
                        {
                            ValueProvider = valueProvider
                        };
                        DataRuleExecutor.Execute(viewData, dataRuleContext, view.DataRules);
                    }
                }

                var html = RenderViewInternal(htmlHelper, view.TemplateFileVirutalPath, viewData, null);


                if (pageContext.EnableTrace)
                {
                    html = new HtmlString(string.Format(GeneratedByViewComment, viewName, html.ToString()));
                }

                //restore the parent view context
                pageContext.ViewDataContext = parentPositionContext;

                return(html);
            }
            else
            {
                return(new HtmlString(""));
            }
        }
Beispiel #19
0
        protected override void ByFolder(Page_Context pageContext, View.PagePositionContext positionContext, Repository repository, TextFolder folder)
        {
            var    httpContext = pageContext.ControllerContext.RequestContext.HttpContext;
            string uuid        = pageContext.ControllerContext.RequestContext.GetRequestValue("uuid");

            var addCategories    = GetCategories("AddCategories", pageContext.ControllerContext);
            var removeCategories = GetCategories("RemoveCategories", pageContext.ControllerContext);

            try
            {
                Content.Services.ServiceFactory.TextContentManager.Update(repository, folder, uuid, httpContext.Request.Form
                                                                          , httpContext.Request.Files, DateTime.UtcNow, addCategories, removeCategories, httpContext.User.Identity.Name);
            }
            catch (RuleViolationException violationException)
            {
                violationException.FillIssues(positionContext == null ? pageContext.ControllerContext.Controller.ViewData.ModelState : positionContext.ViewData.ModelState);
            }
        }
Beispiel #20
0
        /// <summary>
        /// <example>
        /// <div>
        //        <div>
        //    <form method="post">
        //    <input type="hidden" name="FolderName" value="news" />
        //    <input type="hidden" name="Published" value="true" />
        //    <input type="hidden" name="Categories[0].FolderName" value="<%: ViewBag.category.FolderName %>" />
        //    <input type="hidden" name="Categories[0].UUID" value="<%: ViewBag.category.UUID %>" />
        //    <table>
        //        <tr>
        //            <td>
        //                title:
        //            </td>
        //            <td>
        //                <input type="text" name="title" data-val-required="title is required" data-val="true" />
        //                <%: Html.ValidationMessageForInput("title") %>
        //            </td>
        //        </tr>
        //        <tr>
        //            <td>
        //                body:
        //            </td>
        //            <td>
        //                <textarea name="body" cols="20" rows="10"></textarea>
        //            </td>
        //        </tr>
        //    </table>
        //    <input type="submit" name="submit" value="submit" />
        //    </form>
        //</div>
        /// </example>
        /// </summary>
        /// <param name="pageContext"></param>
        /// <param name="repository"></param>
        /// <param name="folder"></param>
        protected override void ByFolder(Page_Context pageContext, View.PagePositionContext positionContext, Repository repository, TextFolder folder)
        {
            var httpContext = pageContext.ControllerContext.RequestContext.HttpContext;

            var categories = GetCategories("Categories", pageContext.ControllerContext);

            try
            {
                var parentFolder = httpContext.Request.Form["ParentFolder"];
                var parentUUID   = httpContext.Request.Form["ParentUUID"];
                Content.Services.ServiceFactory.TextContentManager.Add(repository, folder, parentFolder, parentUUID,
                                                                       httpContext.Request.Form, httpContext.Request.Files, categories, httpContext.User.Identity.Name);
            }
            catch (RuleViolationException violationException)
            {
                violationException.FillIssues(positionContext == null ? pageContext.ControllerContext.Controller.ViewData.ModelState : positionContext.ViewData.ModelState);
            }
        }
Beispiel #21
0
        /// <summary>
        /// 执行页面逻辑
        /// </summary>
        /// <param name="page_context"></param>
        /// <returns></returns>
        public ActionResult ExecutePage(Page_Context page_context)
        {
            Contract.Requires(page_context != null);
            foreach (var item in _events)
            {
                item.PreExecutePage(this, new PreExecutePageEventArgs(page_context));
            }

            var actionResult = _pageRequestFlow.ExecutePage(page_context);

            foreach (var item in _events)
            {
                var args = new PostExecutePageEventArgs(page_context, actionResult);
                item.PostExecutePage(this, args);
                actionResult = args.ActionResult;
            }

            return(actionResult);
        }
Beispiel #22
0
        public virtual IHtmlString RenderView(HtmlHelper htmlHelper, Page_Context pageContext, string viewName, ViewDataDictionary viewData, object parameters, bool executeDataRule)
        {
            Kooboo.CMS.Sites.Models.View view = (new Kooboo.CMS.Sites.Models.View(pageContext.PageRequestContext.Site, viewName).LastVersion()).AsActual();

            if (view != null)
            {
                //backup the parent view context
                var parentPositionContext = pageContext.ViewDataContext;

                var parameters1 = parameters is IDictionary<string, object> ? ((IDictionary<string, object>)parameters) : new RouteValueDictionary(parameters);
                pageContext.ViewDataContext = new PagePositionContext(view, parameters1, viewData);

                if (executeDataRule)
                {
                    viewData = new ViewDataDictionary(viewData);
                    var pageRequestContext = pageContext.PageRequestContext;
                    if (view.DataRules != null)
                    {
                        var valueProvider = pageRequestContext.GetValueProvider();
                        valueProvider.Insert(0, new ViewParameterValueProvider(pageContext.ViewDataContext.Parameters));
                        var dataRuleContext = new DataRuleContext(pageRequestContext.Site, pageRequestContext.Page) { ValueProvider = valueProvider };
                        DataRuleExecutor.Execute(viewData, dataRuleContext, view.DataRules);
                    }
                }

                var html = RenderViewInternal(htmlHelper, view.TemplateFileVirutalPath, viewData, null);

                if (pageContext.EnableTrace)
                {
                    html = new HtmlString(string.Format(GeneratedByViewComment, viewName, html.ToString()));
                }

                //restore the parent view context
                pageContext.ViewDataContext = parentPositionContext;

                return html;
            }
            else
            {
                return new HtmlString("");
            }
        }
Beispiel #23
0
        protected virtual ActionResult ViewPage(Page_Context page_context)
        {
            var layout = new Layout(page_context.PageRequestContext.SiteMappedContext.Site, page_context.PageLayout).LastVersion(page_context.PageRequestContext.SiteMappedContext.Site);

            if (layout == null)
            {
                throw new Exception(string.Format("The layout does not exists. Layout name:{0}".Localize(), page_context.PageLayout));
            }

            return new ContentResult() { Content = page_context.PageRequestContext.Page.Html };
            //ViewResult viewResult = new FrontViewResult(ControllerContext, layout.FileExtension.ToLower(), layout.TemplateFileVirutalPath);

            //if (viewResult != null)
            //{
            //    viewResult.ViewData = this.ViewData;
            //    viewResult.TempData = this.TempData;
            //}

            //return viewResult;
        }
Beispiel #24
0
        protected virtual ActionResult ViewPage(Page_Context page_context)
        {
            var layout = new Layout(page_context.PageRequestContext.SiteMappedContext.Site, page_context.PageLayout).LastVersion(page_context.PageRequestContext.SiteMappedContext.Site);

            if (layout == null)
            {
                throw new Exception(string.Format("The layout does not exists. Layout name:{0}".Localize(), page_context.PageLayout));
            }

            return(new ContentResult()
            {
                Content = page_context.PageRequestContext.Page.Html
            });
            //ViewResult viewResult = new FrontViewResult(ControllerContext, layout.FileExtension.ToLower(), layout.TemplateFileVirutalPath);

            //if (viewResult != null)
            //{
            //    viewResult.ViewData = this.ViewData;
            //    viewResult.TempData = this.TempData;
            //}

            //return viewResult;
        }
Beispiel #25
0
        public System.Web.Mvc.ActionResult HttpPost(Page_Context context, PagePositionContext positionContext)
        {
            AntiForgery.Validate();

            try
            {
                var httpContext = context.ControllerContext.HttpContext;
                var repository  = Repository.Current;
                var textFolder  = new TextFolder(repository, "Members");
                var userContent = MemberAuth.GetMemberContent();

                var email    = httpContext.Request.Form["Email"];
                var language = httpContext.Request.Form["Language"];

                ServiceFactory.TextContentManager.Update(textFolder, userContent.UUID, new string[] { "Email", "Language" }, new object[] { email, language });
            }
            catch (Exception e)
            {
                context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", e);
                Kooboo.HealthMonitoring.Log.LogException(e);
            }
            return(null);
        }
Beispiel #26
0
        public System.Web.Mvc.ActionResult HttpPost(Page_Context context, PagePositionContext positionContext)
        {
            AntiForgery.Validate();

            try
            {
                var httpContext = context.ControllerContext.HttpContext;
                var repository  = Repository.Current;
                var textFolder  = new TextFolder(repository, "Members");
                var values      = new NameValueCollection(httpContext.Request.Form);
                values["Published"] = true.ToString();

                var member = textFolder.CreateQuery().WhereEquals("UserName", values["username"]).FirstOrDefault();
                if (member != null)
                {
                    context.ControllerContext.Controller.ViewData.ModelState.AddModelError("UserName", "The user already exists.".RawLabel().ToString());
                }
                else
                {
                    values["PasswordSalt"] = MemberAuth.GenerateSalt();
                    values["Password"]     = MemberAuth.EncryptPassword(values["Password"], values["PasswordSalt"]);

                    var textContext = ServiceFactory.TextContentManager.Add(repository, textFolder, null, null,
                                                                            values, httpContext.Request.Files, null, httpContext.User.Identity.Name);

                    MemberAuth.SetAuthCookie(textContext["UserName"].ToString(), false);

                    return(new RedirectResult(context.Url.FrontUrl().PageUrl("Dashboard").ToString()));
                }
            }
            catch (Exception e)
            {
                context.ControllerContext.Controller.ViewData.ModelState.AddModelError("", e);
                Kooboo.HealthMonitoring.Log.LogException(e);
            }
            return(null);
        }
Beispiel #27
0
        protected string GenerateProxyUrl(Page_Context pageContext, string positionId, string url, bool isForm)
        {
            if (string.IsNullOrEmpty(url))
            {
                return("");
            }

            if (!url.StartsWith("#") && !url.StartsWith("javascript:") && !Uri.IsWellFormedUriString(url, UriKind.Absolute))
            {
                var encodedModuleUrl = ModuleUrlHelper.Encode(url);
                var routeValues      = pageContext.PageRequestContext.ModuleUrlContext.GetRouteValuesWithModuleUrl(positionId, encodedModuleUrl, false);
                var pageUrl          = pageContext.FrontUrl.PageUrl(pageContext.PageRequestContext.Page.FullName, routeValues).ToString();
                if (isForm)
                {
                    pageUrl = Kooboo.Web.Url.UrlUtility.AddQueryParam(pageUrl, Kooboo.CMS.Sites.View.ModuleUrlContext.PostModuleParameter, positionId);
                }

                return(pageUrl);
            }
            else
            {
                return(url);
            }
        }
Beispiel #28
0
 public void EndPageRequest(Page_Context page_context)
 {
 }
Beispiel #29
0
 public FrontHtmlHelper(Page_Context context, HtmlHelper html)
 {
     Page_Context = context;
     Html = html;
 }
Beispiel #30
0
 public System.Web.Mvc.ActionResult HttpPost(Page_Context context, PagePositionContext positionContext)
 {
     _responseManager.SetHeader("SamplePlugin", "POST");
     return(null);
 }
Beispiel #31
0
 public System.Web.Mvc.ActionResult Execute(Page_Context pageViewContext, PagePositionContext positionContext)
 {
     //pageViewContext.ControllerContext.HttpContext.Response.Write("Sample plugin executed.<br/>");
     return(null);
 }
 public PostRenderPageEventArgs(Page_Context page_context, ActionResult actionResult)
 {
     this.Page_Context = page_context;
     this.ActionResult = ActionResult;
 }
 public PostExecutePageEventArgs(Page_Context page_context, ActionResult actionResult)
 {
     this.Page_Context = page_context;
     this.ActionResult = actionResult;
 }
 public PostExecutePageEventArgs(Page_Context page_context, ActionResult actionResult)
 {
     this.Page_Context = page_context;
     this.ActionResult = actionResult;
 }
 public EndPageRequestEvengArgs(Page_Context page_context)
 {
     this.Page_Context = page_context;
 }
Beispiel #36
0
 public void RenderPage(Page_Context page_context, System.Web.Mvc.ActionResult actionResult)
 {
     actionResult.ExecuteResult(page_context.ControllerContext);
 }
Beispiel #37
0
 public System.Web.Mvc.ActionResult HttpGet(Page_Context context, PagePositionContext positionContext)
 {
     return(null);
 }
Beispiel #38
0
 public ActionResult HttpGet(Page_Context context, PagePositionContext positionContext)
 {
     return(null);
 }
Beispiel #39
0
 public FrontHtmlHelper(Page_Context context, HtmlHelper html)
 {
     Page_Context = context;
     Html         = html;
 }
Beispiel #40
0
        /// <summary>
        /// 结束页面请求
        /// </summary>
        /// <param name="page_Context"></param>
        public void EndPageRequest(Page_Context page_context)
        {
            Contract.Requires(page_context != null);
            foreach (var item in _events)
            {
                item.EndPageRequest(this, new EndPageRequestEvengArgs(page_context));
            }

            _pageRequestFlow.EndPageRequest(page_context);
        }
Beispiel #41
0
        /// <summary>
        /// 执行页面逻辑
        /// </summary>
        /// <param name="page_context"></param>
        /// <returns></returns>
        public ActionResult ExecutePage(Page_Context page_context)
        {
            Contract.Requires(page_context != null);
            foreach (var item in _events)
            {
                item.PreExecutePage(this, new PreExecutePageEventArgs(page_context));
            }

            var actionResult = _pageRequestFlow.ExecutePage(page_context);

            foreach (var item in _events)
            {
                var args = new PostExecutePageEventArgs(page_context, actionResult);
                item.PostExecutePage(this, args);
                actionResult = args.ActionResult;
            }

            return actionResult;
        }
Beispiel #42
0
        protected string GenerateProxyUrl(Page_Context pageContext, string positionId, string url, bool isForm)
        {
            if (string.IsNullOrEmpty(url))
            {
                return "";
            }

            if (!url.StartsWith("#") && !url.StartsWith("javascript:"))
            {
                var encodedModuleUrl = ModuleUrlHelper.Encode(url);
                var routeValues = pageContext.PageRequestContext.ModuleUrlContext.GetRouteValuesWithModuleUrl(positionId, encodedModuleUrl, false);
                var pageUrl = pageContext.FrontUrl.PageUrl(pageContext.PageRequestContext.Page.FullName, routeValues).ToString();
                if (isForm)
                {
                    pageUrl = Kooboo.Web.Url.UrlUtility.AddQueryParam(pageUrl, Kooboo.CMS.Sites.View.ModuleUrlContext.PostModuleParameter, positionId);
                }

                return pageUrl;
            }
            else
            {
                return url;
            }
        }
Beispiel #43
0
        /// <summary>
        /// 渲染输出页面
        /// </summary>
        /// <param name="page_context"></param>
        /// <param name="actionResult"></param>
        public void RenderPage(Page_Context page_context, ActionResult actionResult)
        {
            Contract.Requires(page_context != null);
            Contract.Requires(actionResult != null);
            foreach (var item in _events)
            {
                item.PreRenderPage(this, new PreRenderPageEventArgs(page_context, actionResult));
            }

            _pageRequestFlow.RenderPage(page_context,actionResult);

            foreach (var item in _events)
            {
                var args = new PostRenderPageEventArgs(page_context, actionResult);
                item.PostRenderPage(this, args);

            }
        }
 public PostRenderPageEventArgs(Page_Context page_context, ActionResult actionResult)
 {
     this.Page_Context = page_context;
     this.ActionResult = ActionResult;
 }