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)