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