/// <summary> /// The default settings page that displays the current Roadkill settings. /// </summary> /// <returns>A <see cref="SettingsViewModel"/> as the model.</returns> public ActionResult Index() { Configuration.SiteSettings siteSettings = SettingsService.GetSiteSettings(); SettingsViewModel model = new SettingsViewModel(ApplicationSettings, siteSettings); model.SetSupportedDatabases(SettingsService.GetSupportedDatabases()); return(View(model)); }
/// <summary> /// Provides a page for creating a new user account. This redirects to the home page if /// windows authentication is enabled, or AllowUserSignup is disabled. /// </summary> public ActionResult Signup() { Configuration.SiteSettings siteSettings = SettingsService.GetSiteSettings(); if (Context.IsLoggedIn || !siteSettings.AllowUserSignup || ApplicationSettings.UseWindowsAuthentication) { return(RedirectToAction("Index", "Home")); } else { return(View()); } }
public ActionResult Signup(UserViewModel model, bool?isCaptchaValid) { Configuration.SiteSettings siteSettings = SettingsService.GetSiteSettings(); if (Context.IsLoggedIn || !siteSettings.AllowUserSignup || ApplicationSettings.UseWindowsAuthentication) { return(RedirectToAction("Index", "Home")); } if (ModelState.IsValid) { if (isCaptchaValid.HasValue && isCaptchaValid == false) { // Invalid recaptcha ModelState.AddModelError("General", SiteStrings.Signup_Error_Recaptcha); } else { // Everything is valid. try { try { string key = UserService.Signup(model, null); if (string.IsNullOrEmpty(key)) { ModelState.AddModelError("General", SiteStrings.Signup_Error_General); } else { // Send the confirm email _signupEmail.Send(model); return(View("SignupComplete", model)); } } catch (SecurityException e) { ModelState.AddModelError("General", e.Message); } } catch (SecurityException e) { ModelState.AddModelError("General", e.Message); } } } return(View()); }
public ActionResult ResetPassword(string email) { if (ApplicationSettings.UseWindowsAuthentication) { return(RedirectToAction("Index", "Home")); } if (ApplicationSettings.IsDemoSite) { ModelState.AddModelError("General", "The demo site login cannot be changed."); return(View()); } if (string.IsNullOrEmpty(email)) { // No email ModelState.AddModelError("General", SiteStrings.ResetPassword_Error_MissingEmail); } else { RoadkillUser user = UserService.GetUser(email); if (user == null) { ModelState.AddModelError("General", SiteStrings.ResetPassword_Error_EmailNotFound); } else { string key = UserService.ResetPassword(email); if (!string.IsNullOrEmpty(key)) { // Everything worked, send the email user.PasswordResetKey = key; Configuration.SiteSettings siteSettings = SettingsService.GetSiteSettings(); _resetPasswordEmail.Send(new UserViewModel(user)); return(View("ResetPasswordSent", (object)email)); } else { ModelState.AddModelError("General", SiteStrings.ResetPassword_Error_ServerError); } } } return(View()); }
public ActionResult ResendConfirmation(string email) { RoadkillUser user = UserService.GetUser(email, false); if (user == null) { // Something went wrong with the signup, redirect to the first step of the signup. return(View("Signup")); } UserViewModel model = new UserViewModel(user); Configuration.SiteSettings siteSettings = SettingsService.GetSiteSettings(); _signupEmail.Send(model); TempData["resend"] = true; return(View("SignupComplete", model)); }
public ActionResult Edit(PluginViewModel model) { TextPlugin plugin = _pluginFactory.GetTextPlugin(model.Id); if (plugin == null) { return(RedirectToAction("Index")); } // Update the plugin settings with the values from the summary plugin.Settings.IsEnabled = model.IsEnabled; foreach (SettingValue summaryValue in model.SettingValues) { SettingValue pluginValue = plugin.Settings.Values.FirstOrDefault(x => x.Name == summaryValue.Name); if (pluginValue != null) { pluginValue.Value = summaryValue.Value; } } // Update the plugin last saved date - this is important for 304 modified tracking // when the browser caching option is turned on. Configuration.SiteSettings settings = SettingsService.GetSiteSettings(); settings.PluginLastSaveDate = DateTime.UtcNow; SettingsViewModel settingsViewModel = new SettingsViewModel(ApplicationSettings, settings); SettingsService.SaveSiteSettings(settingsViewModel); // Save and clear the cached settings _settingsRepository.SaveTextPluginSettings(plugin); _siteCache.RemovePluginSettings(plugin); // Clear all other caches if the plugin has been enabled or disabled. _viewModelCache.RemoveAll(); _listCache.RemoveAll(); return(RedirectToAction("Index")); }