]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/preferences_controller.rb
Split user preferences into a separate page
[rails.git] / app / controllers / preferences_controller.rb
diff --git a/app/controllers/preferences_controller.rb b/app/controllers/preferences_controller.rb
new file mode 100644 (file)
index 0000000..6839bf3
--- /dev/null
@@ -0,0 +1,32 @@
+class PreferencesController < ApplicationController
+  layout "site"
+
+  before_action :authorize_web
+  before_action :set_locale
+
+  authorize_resource :class => false
+
+  before_action :check_database_readable
+  before_action :check_database_writable, :only => [:update]
+
+  def show; end
+
+  def edit; end
+
+  def update
+    current_user.languages = params[:user][:languages].split(",")
+
+    current_user.preferred_editor = if params[:user][:preferred_editor] == "default"
+                                      nil
+                                    else
+                                      params[:user][:preferred_editor]
+                                    end
+    if current_user.save
+      flash[:notice] = t ".success"
+      redirect_to preferences_path
+    else
+      flash[:error] = t ".failure"
+      render :edit
+    end
+  end
+end