1 # frozen_string_literal: true
4 extend ActiveSupport::Concern
9 # ensure that there is a "user" instance variable
11 display_name = params[:display_name] || params[:user_display_name]
12 @user = User.active.find_by!(:display_name => display_name)
13 rescue ActiveRecord::RecordNotFound
14 render_unknown_user display_name
18 # render a "no such user" page
19 def render_unknown_user(name)
20 @title = t "users.no_such_user.title"
21 @not_found_user = name
23 respond_to do |format|
24 format.html { render :template => "users/no_such_user", :status => :not_found, :layout => "site" }
25 format.all { head :not_found }
30 # update a user's details
31 def update_user(user, params)
32 user.display_name = params[:display_name]
33 user.new_email = params[:new_email]
35 unless params[:pass_crypt].empty? && params[:pass_crypt_confirmation].empty?
36 user.pass_crypt = params[:pass_crypt]
37 user.pass_crypt_confirmation = params[:pass_crypt_confirmation]
40 if params[:auth_provider].nil? || params[:auth_provider].blank?
41 user.auth_provider = nil
46 session[:fingerprint] = user.fingerprint
48 if user.new_email.blank? || user.new_email == user.email
49 flash[:notice] = t "accounts.update.success"
51 token = user.generate_token_for(:new_email)
53 user.email = user.new_email
56 flash[:notice] = t "accounts.update.success_confirm_needed"
59 UserMailer.email_confirm(user, token).deliver_later
61 # Ignore errors sending email
64 current_user.errors.delete(:email).each do |error|
65 current_user.errors.add(:new_email, error)