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