]> git.openstreetmap.org Git - rails.git/blob - app/controllers/profiles/descriptions_controller.rb
Move profile resource to profile/description
[rails.git] / app / controllers / profiles / descriptions_controller.rb
1 module Profiles
2   class DescriptionsController < ApplicationController
3     layout "site"
4
5     before_action :authorize_web
6     before_action :set_locale
7
8     authorize_resource :class => :profile
9
10     before_action :check_database_readable
11     before_action :check_database_writable, :only => [:update]
12
13     def show; end
14
15     def update
16       social_links_params = params.permit(:user => [:social_links_attributes => [:id, :url, :_destroy]])
17       current_user.assign_attributes(social_links_params[:user])
18
19       if params[:user][:description] != current_user.description
20         current_user.description = params[:user][:description]
21         current_user.description_format = "markdown"
22       end
23
24       case params[:avatar_action]
25       when "new"
26         current_user.avatar.attach(params[:user][:avatar])
27         current_user.image_use_gravatar = false
28       when "delete"
29         current_user.avatar.purge_later
30         current_user.image_use_gravatar = false
31       when "gravatar"
32         current_user.avatar.purge_later
33         current_user.image_use_gravatar = true
34       end
35
36       current_user.company = params[:user][:company]
37
38       current_user.home_lat = params[:user][:home_lat]
39       current_user.home_lon = params[:user][:home_lon]
40       current_user.home_location_name = params[:user][:home_location_name]
41
42       if current_user.save
43         flash[:notice] = t ".success"
44         redirect_to user_path(current_user)
45       else
46         flash.now[:error] = t ".failure"
47         render :show
48       end
49     end
50   end
51 end