Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
 /// <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());
     }
 }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        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());
        }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 6
0
        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"));
        }