예제 #1
0
        public ActionResult Restart()
        {
            try
            {
                DnaConfig.Restart();

                if (!Request.IsAjaxRequest())
                {
                    return(Redirect("~/home/" + System.Threading.Thread.CurrentThread.CurrentUICulture.Name + "/default.html"));
                }
                else
                {
                    return(Content("OK"));
                }
            }
            catch (Exception e)
            {
                if (!Request.IsAjaxRequest())
                {
                    return(Redirect("~/home/" + System.Threading.Thread.CurrentThread.CurrentUICulture.Name + "/default.html"));
                }
                else
                {
                    return(Content("OK"));
                }
            }
        }
예제 #2
0
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                string[] reserves = App.Settings.ReservedUserNames;
                //new string[] { "host", "home", "index", "default", "{blog}", "sites", "{site}" };
                if (reserves.Contains(model.UserName.ToLower()))
                {
                    ModelState.AddModelError("", string.Format(Resources.Validations.reCapticha_UnvalidKey, "\"" + model.UserName + "\""));
                }
                else
                {
                    var context = DependencyResolver.Current.GetService <IDataContext>();
                    var status  = context.Users.CreateUser(model.UserName, model.Password, model.Email);
                    if (status != UserCreateStatus.Success)
                    {
                        ModelState.AddModelError("", AccountValidation.ErrorCodeToString(status));
                    }
                    else
                    {
                        //if (App.Get().User.IsInRole(
                        var user = App.Get().Users[model.UserName];
                        if (!user.IsInRole("administartors"))
                        {
                            App.Get().Roles.AddUserToRole(model.UserName, "administrators");
                        }
                        user.DefaultWeb = "home";
                        user.Save();

                        DnaConfig.UpdateWebConfig("configuration/appSettings/add[@key=\"Administrator\"]", "value", model.UserName);
                    }
                }
            }
            return(PartialView(model));
        }
예제 #3
0
        public ActionResult GlobalSettings(FormCollection forms)
        {
            foreach (var key in forms.AllKeys)
            {
                if (WebConfigurationManager.AppSettings[key] != null)
                {
                    if (WebConfigurationManager.AppSettings[key] != forms[key])
                    {
                        DnaConfig.UpdateWebConfig("configuration/appSettings/add[@key=\"" + key + "\"]", "value", forms[key]);
                    }
                }
                //bool forceEmailValidation,bool allowNewUser,
                if (!forms.AllKeys.Contains("ForceEmailValidation"))
                {
                    DnaConfig.UpdateWebConfig("configuration/appSettings/add[@key=\"ForceEmailValidation\"]", "value", "False");
                }

                if (!forms.AllKeys.Contains("AllowNewUser"))
                {
                    DnaConfig.UpdateWebConfig("configuration/appSettings/add[@key=\"AllowNewUser\"]", "value", "False");
                }

                if (!forms.AllKeys.Contains("EnableSitemenu"))
                {
                    DnaConfig.UpdateWebConfig("configuration/appSettings/add[@key=\"EnableSitemenu\"]", "value", "False");
                }

                if (!forms.AllKeys.Contains("WWWResolved"))
                {
                    DnaConfig.UpdateWebConfig("configuration/appSettings/add[@key=\"WWWResolved\"]", "value", "False");
                }
            }
            return(View(App.Settings));
        }
예제 #4
0
        public ActionResult UnlockFullTrust()
        {
            if (!DnaConfig.IsFullTrust)
            {
                ///UNDONE:Before we unlock the trust level we can try to test the host whether support full trust level.
                DnaConfig.UpdateWebConfig("configuration/system.web/trust", "level", "Full");
                return(Json(true, JsonRequestBehavior.AllowGet));
            }

            return(Json(false, JsonRequestBehavior.AllowGet));
        }
예제 #5
0
 public ActionResult SetDebug()
 {
     if (App.IsDebug)
     {
         DnaConfig.UpdateWebConfig("configuration/system.web/compilation", "debug", "false");
     }
     else
     {
         DnaConfig.UpdateWebConfig("configuration/system.web/compilation", "debug", "true");
     }
     return(Json(true, JsonRequestBehavior.AllowGet));
 }
예제 #6
0
        public ActionResult CreateWeb([Bind(Prefix = "Web")] Web web, string solution = "core", string lang = "")
        {
            try
            {
                var app = App.Get();
                //set default locale
                if (!string.IsNullOrEmpty(lang))
                {
                    DnaConfig.UpdateWebConfig("configuration/appSettings/add[@key=\"DefaultLocale\"]", "value", lang);
                }

                app.Widgets.RegisterAll();
                var topWeb = app.Solutions.Install(solution, "home", web.Owner, web.Title, web.Description, "", lang);

                if (topWeb.Pages.Count() == 0)
                {
                    topWeb.CreatePage("Default");
                }

                PermissionLoader.Load();

                DnaConfig.UpdateWebConfig("configuration/appSettings/add[@key=\"Initialized\"]", "value", "True");
            }
            catch (Exception e)
            {
                //var msg = e.Message;
                Exception innerExpt = e.InnerException;
                var       errors    = new StringBuilder();

                App.Get().DataContext.Delete <Web>(w => w.Name.Equals("home"));
                App.Get().DataContext.SaveChanges();
                errors.AppendLine(e.Message);

                while (innerExpt != null)
                {
                    errors.AppendLine(innerExpt.Message);
                    //msg = innerExpt.Message;
                    innerExpt = innerExpt.InnerException;
                }
                errors.AppendLine(e.StackTrace);
                //if (innerExpt != null)
                // errors.Append(e.Message);
                //msg = innerExpt.Message;

                return(Json(new { error = errors.ToString() }, JsonRequestBehavior.AllowGet));
            }
            return(Json(new { success = true }, JsonRequestBehavior.AllowGet));
        }
예제 #7
0
 public ActionResult Restart(string returnUrl)
 {
     DnaConfig.Restart();
     return(Redirect(returnUrl));
 }