BananaCrystal / email-templates

This repository contains in-house email templates that serve as structure for our emails. Each template can be updated and modified to fit requirements.
MIT License
0 stars 0 forks source link

admin_users.rb #3

Open geekelo opened 1 month ago

geekelo commented 1 month ago

FILE


ActiveAdmin.register AdminUser do
  permit_params :email, :password, :password_confirmation, role_ids: []
  includes :roles
  actions :all, except: :destroy

  menu parent: 'Configuration', label: 'Admin Users'

  index do
    selectable_column
    id_column
    column :email
    column :created_at
    column :roles
    actions
  end

  filter :email
  filter :created_at

  show do
    attributes_table do
      row :email
      row :created_at
      row :roles
    end
  end

  form do |f|
    f.inputs do
      f.input :email
      if f.object.new_record?
        f.input :password
        f.input :password_confirmation
      end
      f.input :roles, as: :check_boxes, :collection => AdminRole.all
    end
    f.actions
  end

  action_item :discard, only: :show do
    link_to 'Discard User', discard_admin_admin_user_path(resource), method: :get
  end

  member_action :discard, method: :get do
    resource.discard
    flash[:notice] = "User discarded successfully."
    redirect_to [:admin, :admin_users]
  end

end
geekelo commented 1 month ago

This code is a configuration file for managing AdminUser records in an ActiveAdmin interface within a Ruby on Rails application. Here's a detailed breakdown of what's happening in this file:

File: admin_user.rb

1. ActiveAdmin.register AdminUser do

2. permit_params :email, :password, :password_confirmation, role_ids: []

3. includes :roles

4. actions :all, except: :destroy

5. menu parent: 'Configuration', label: 'Admin Users'

6. index do ... end

7. filter :email, filter :created_at

8. show do ... end

9. form do |f| ... end

10. action_item :discard, only: :show do ... end

11. member_action :discard, method: :get do ... end

Summary:

This setup provides a comprehensive admin interface for managing admin users while maintaining data integrity and security.