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
      # Use a partial so that it is rendered during the next page load in the correct language.
      flash[:notice] = { :partial => "preferences/update_success_flash" }
      redirect_to preferences_path
    else
      flash[:error] = t ".failure"
      render :edit
    end
  end
end
