Module: RailsBase::AdminHelper
- Included in:
- RailsBase::Admin::IndexTile, AdminController
- Defined in:
- app/helpers/rails_base/admin_helper.rb
Constant Summary collapse
- SESSION_REASON_BASE =
'admin_random'
- SESSION_REASON_KEY =
'admin_2fa_verify'
- SECOND_MODAL_MAPPING =
{ phone_number: 'rails_base/shared/admin_modify_phone', email: 'rails_base/shared/admin_modify_email' }
Instance Method Summary collapse
- #accurate_admin_user ⇒ Object
- #admin_user ⇒ Object
- #array_for_proc(proc, array) ⇒ Object
- #filtered_classes(user, admin) ⇒ Object
- #fullsized_paginated_count ⇒ Object
- #paginante_class_names(curr_page:, page_number:, count_on_page:) ⇒ Object
- #paginate_admin_can_next?(page_number:, count_on_page:) ⇒ Boolean
- #paginate_admin_can_prev?(page_number:, count_on_page:) ⇒ Boolean
- #paginate_admin_history_range(start:) ⇒ Object
- #paginate_admin_what_page ⇒ Object
- #paginate_can_view_page?(page_number:, count_on_page:) ⇒ Boolean
- #paginate_diff_id?(type:) ⇒ Boolean
- #paginate_get_admins_array ⇒ Object
- #paginate_get_users_array ⇒ Object
- #paginated_records ⇒ Object
- #parse_mfa_to_obj ⇒ Object
- #session_reason ⇒ Object
- #users_for_proc(proc) ⇒ Object
Instance Method Details
#accurate_admin_user ⇒ Object
89 90 91 92 |
# File 'app/helpers/rails_base/admin_helper.rb', line 89 def accurate_admin_user session[RailsBase::Authentication::Constants::ADMIN_REMEMBER_USERID_KEY] || current_user.id end |
#admin_user ⇒ Object
94 95 96 |
# File 'app/helpers/rails_base/admin_helper.rb', line 94 def admin_user @admin_user ||= User.find(accurate_admin_user) end |
#array_for_proc(proc, array) ⇒ Object
27 28 29 30 31 |
# File 'app/helpers/rails_base/admin_helper.rb', line 27 def array_for_proc(proc, array) array.map do |instance| proc.call(instance) end end |
#filtered_classes(user, admin) ⇒ Object
12 13 14 15 16 |
# File 'app/helpers/rails_base/admin_helper.rb', line 12 def filtered_classes(user, admin) RailsBase.config.admin.admin_page_filter.map do |object| object[:id] if object[:proc].call(user, admin) end.compact.join(' ') end |
#fullsized_paginated_count ⇒ Object
37 38 39 |
# File 'app/helpers/rails_base/admin_helper.rb', line 37 def fullsized_paginated_count AdminAction.paginate_records(page: @starting_page, count_on_page: @count_on_page, user_id: @starting_user[1], admin_id: @starting_admin[1], count: true) end |
#paginante_class_names(curr_page:, page_number:, count_on_page:) ⇒ Object
54 55 56 57 58 |
# File 'app/helpers/rails_base/admin_helper.rb', line 54 def paginante_class_names(curr_page:, page_number:, count_on_page:) bootstrap_class = 'disabled' unless paginate_can_view_page?(page_number: page_number, count_on_page: count_on_page) bootstrap_class = 'active' if curr_page == page_number bootstrap_class || '' end |
#paginate_admin_can_next?(page_number:, count_on_page:) ⇒ Boolean
65 66 67 68 |
# File 'app/helpers/rails_base/admin_helper.rb', line 65 def paginate_admin_can_next?(page_number:, count_on_page:) min_size = (page_number) * count_on_page fullsized_paginated_count >= min_size end |
#paginate_admin_can_prev?(page_number:, count_on_page:) ⇒ Boolean
70 71 72 73 74 75 |
# File 'app/helpers/rails_base/admin_helper.rb', line 70 def paginate_admin_can_prev?(page_number:, count_on_page:) return false if (page_number - 1) < 1 min_size = (page_number - 1) * count_on_page fullsized_paginated_count > min_size end |
#paginate_admin_history_range(start:) ⇒ Object
50 51 52 |
# File 'app/helpers/rails_base/admin_helper.rb', line 50 def paginate_admin_history_range(start:) ((start-AdminAction::DEFAULT_PAGE_RANGE)..(start+AdminAction::DEFAULT_PAGE_RANGE)) end |
#paginate_admin_what_page ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'app/helpers/rails_base/admin_helper.rb', line 41 def paginate_admin_what_page return params[:page].to_i if params[:pagination_count].to_i == params[:prev_count].to_i prev_page = params[:prev_page].to_i > 0 ? (params[:prev_page].to_i - 1) : 1 start_prev = prev_page * params[:prev_count].to_i page = (start_prev / params[:pagination_count].to_i) page > 0 ? page : 1 end |
#paginate_can_view_page?(page_number:, count_on_page:) ⇒ Boolean
60 61 62 63 |
# File 'app/helpers/rails_base/admin_helper.rb', line 60 def paginate_can_view_page?(page_number:, count_on_page:) min_size = (page_number-1) * count_on_page fullsized_paginated_count >= min_size end |
#paginate_diff_id?(type:) ⇒ Boolean
85 86 87 |
# File 'app/helpers/rails_base/admin_helper.rb', line 85 def paginate_diff_id?(type:) session[:"rails_base_paginate_start_#{type}"] != params[type].to_i end |
#paginate_get_admins_array ⇒ Object
81 82 83 |
# File 'app/helpers/rails_base/admin_helper.rb', line 81 def paginate_get_admins_array @paginate_get_admins_array ||= User.where.not(admin: :none).map { |u| [u.full_name, u.id] } << ['All Admins', -1] end |
#paginate_get_users_array ⇒ Object
77 78 79 |
# File 'app/helpers/rails_base/admin_helper.rb', line 77 def paginate_get_users_array @paginate_get_users_array ||= User.where(active: true).map { |u| [u.full_name, u.id] } << ['All Users', -1] end |
#paginated_records ⇒ Object
33 34 35 |
# File 'app/helpers/rails_base/admin_helper.rb', line 33 def paginated_records AdminAction.paginate_records(page: @starting_page, count_on_page: @count_on_page, user_id: @starting_user[1], admin_id: @starting_admin[1]) end |
#parse_mfa_to_obj ⇒ Object
102 103 104 105 106 107 108 |
# File 'app/helpers/rails_base/admin_helper.rb', line 102 def parse_mfa_to_obj arr = [] params[:mfa_input].split('').each_with_index do |code, i| arr << ["#{RailsBase::Authentication::Constants::MV_BASE_NAME}#{i}", code] end { mfa: arr.to_h.symbolize_keys } end |
#session_reason ⇒ Object
98 99 100 |
# File 'app/helpers/rails_base/admin_helper.rb', line 98 def session_reason session[SESSION_REASON_KEY] end |
#users_for_proc(proc) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'app/helpers/rails_base/admin_helper.rb', line 18 def users_for_proc(proc) User.all.select do |user| proc.call(user) end.map(&:inspect_name) rescue StandardError => e Rails.logger.warn("Error -> #{e}") nil end |