Sha256: 137bbc490d1dce1df76e5519dc3067342e05d77cc5450dc68ec540f86dc3df26

Contents?: true

Size: 996 Bytes

Versions: 1

Compression:

Stored size: 996 Bytes

Contents

module Renalware
  class Admin::UsersController < BaseController

    def index
      @search = User.search(params[:q])
      @users = @search.result(distinct: true)

      authorize @users
    end

    def edit
      load_user
    end

    def update
      load_user

      if update_user.call(update_params)
        redirect_to admin_users_path,
          notice: t(".success", model_name: "user")
      else
        flash[:error] = t(".failed", model_name: "user")
        render :edit
      end
    end

    private

    def load_user
      @user = User.find(params[:id])
      authorize @user
    end

    def update_params
      roles = fetch_roles(user_params[:role_ids]).to_a
      user_params.merge(roles: roles)
    end

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

    def fetch_roles(role_ids)
      Role.fetch(role_ids)
    end

    def update_user
      @service ||= System::UpdateUser.new(@user)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
renalware-core-2.0.0.pre.beta4 app/controllers/renalware/admin/users_controller.rb