Sha256: 77b76b5fe7bb8e2b325d81bfa20e8f7d78447dceb8adc9775b570e6a0af39a61

Contents?: true

Size: 1.44 KB

Versions: 13

Compression:

Stored size: 1.44 KB

Contents

# frozen_string_literal: true

module Renalware
  class Admin::UsersController < BaseController
    include Renalware::Concerns::Pageable

    def index
      query = params.fetch(:q, {})
      query[:s] ||= "family_name"
      search = User
        .includes(:roles)
        .where.not(username: :systemuser)
        .ransack(query)
      users = search.result(distinct: true).page(page).per(per_page)
      authorize users
      render locals: { users: users, user_search: search }
    end

    def edit
      render locals: { user: find_and_authorize_user }
    end

    def update
      user = find_and_authorize_user
      if System::UpdateUser.new(user).call(update_params)
        redirect_to admin_users_path,
                    notice: t(".success", model_name: "user")
      else
        flash.now[:error] = t(".failed", model_name: "user")
        render :edit, locals: { user: user }
      end
    end

    private

    def find_and_authorize_user
      User.find(params[:id]).tap { |user_| authorize user_ }
    end

    def update_params
      roles = Array(Role.fetch(role_ids))
      user_params.merge(roles: roles)
    end

    def user_params
      params
        .require(:user)
        .permit(
          :approved,
          :unexpire,
          :telephone,
          :consultant,
          :hidden,
          :prescriber,
          role_ids: []
        )
    end

    def role_ids
      (user_params[:role_ids] || []).reject(&:blank?)
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
renalware-core-2.0.167 app/controllers/renalware/admin/users_controller.rb
renalware-core-2.0.166 app/controllers/renalware/admin/users_controller.rb
renalware-core-2.0.165 app/controllers/renalware/admin/users_controller.rb
renalware-core-2.0.164 app/controllers/renalware/admin/users_controller.rb
renalware-core-2.0.163 app/controllers/renalware/admin/users_controller.rb
renalware-core-2.0.162 app/controllers/renalware/admin/users_controller.rb
renalware-core-2.0.161 app/controllers/renalware/admin/users_controller.rb
renalware-core-2.0.160 app/controllers/renalware/admin/users_controller.rb
renalware-core-2.0.159 app/controllers/renalware/admin/users_controller.rb
renalware-core-2.0.158 app/controllers/renalware/admin/users_controller.rb
renalware-core-2.0.157 app/controllers/renalware/admin/users_controller.rb
renalware-core-2.0.156 app/controllers/renalware/admin/users_controller.rb
renalware-core-2.0.155 app/controllers/renalware/admin/users_controller.rb