Sha256: 3fcc89fcf06fe3dfcd4bbcf88f1fb1c3e24b0bc2d63f8fb28a947c6e297ed83c

Contents?: true

Size: 1.84 KB

Versions: 8

Compression:

Stored size: 1.84 KB

Contents

class Admin::UsersController < Admin::ResourceController
  paginate_models
  only_allow_access_to :index, :show, :new, :create, :edit, :update, :remove, :destroy,
                       when: :admin,
                       denied_url: { controller: 'pages', action: 'index' },
                       denied_message: 'You must have administrative privileges to perform this action.'

  before_action :ensure_deletable, only: %i[remove destroy]

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

  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 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_attributes(user_params)
      response_for :update
    else
      flash[:error] = 'There was an error saving the user. Please try again.'
      render :edit
    end
  end

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

  private

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

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

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

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
trusty-cms-4.2 app/controllers/admin/users_controller.rb
trusty-cms-4.1.9 app/controllers/admin/users_controller.rb
trusty-cms-4.1.8 app/controllers/admin/users_controller.rb
trusty-cms-4.1.7 app/controllers/admin/users_controller.rb
trusty-cms-4.1.6 app/controllers/admin/users_controller.rb
trusty-cms-4.1.5 app/controllers/admin/users_controller.rb
trusty-cms-4.1.4 app/controllers/admin/users_controller.rb
trusty-cms-4.1.3 app/controllers/admin/users_controller.rb