class Admin::UsersController

def announce_cannot_delete_self

def announce_cannot_delete_self
  flash[:error] = t('users_controller.cannot_delete_self')
end

def announce_cannot_remove_self_from_admin_role

def announce_cannot_remove_self_from_admin_role
  flash[:error] = 'You cannot remove yourself from the admin role.'
end

def create

def create
  user = User.new(user_params)
  if user.save
    flash[:notice] = 'User was created.'
    redirect_to admin_users_path
  else
    flash[:error] = 'There was an error saving the user. Please try again.'
    render :new
  end
end

def ensure_deletable

def ensure_deletable
  if current_user.id.to_s == params[:id].to_s
    announce_cannot_delete_self
    redirect_to admin_users_path
  end
end

def show

def show
  redirect_to edit_admin_user_path(params[:id])
end

def update

def update
  user_params = params[model_symbol].permit!
  if user_params && user_params['admin'] == false && model == current_user
    user_params.delete('admin')
    announce_cannot_remove_self_from_admin_role
  end
  model.skip_password_validation = true unless user_params[:password_confirmation].present?
  if model.update(user_params)
    response_for :update
  else
    flash[:error] = 'There was an error saving the user. Please try again.'
    render :edit
  end
end

def user_params

def user_params
  params.require(:user).permit(:first_name, :last_name, :admin, :designer,
                               :password, :password_confirmation, :email, :site_id, :notes)
end