Class: EasyAdmin::Permissions::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
ActiveRecord::Generators::Migration
Defined in:
lib/generators/easy_admin/permissions/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_base_policyObject



33
34
35
36
# File 'lib/generators/easy_admin/permissions/install_generator.rb', line 33

def create_base_policy
  template 'policies/application_policy.rb', 'app/policies/application_policy.rb'
  template 'policies/user_policy.rb', "app/policies/#{options[:user_model].underscore}_policy.rb"
end

#create_initializerObject



29
30
31
# File 'lib/generators/easy_admin/permissions/install_generator.rb', line 29

def create_initializer
  template 'initializers/permissions.rb', 'config/initializers/easy_admin_permissions.rb'
end

#create_migrationsObject



24
25
26
27
# File 'lib/generators/easy_admin/permissions/install_generator.rb', line 24

def create_migrations
  migration_template 'migrations/create_permission_tables.rb', 
                   'db/migrate/create_easy_admin_permission_tables.rb'
end

#create_modelsObject



18
19
20
21
22
# File 'lib/generators/easy_admin/permissions/install_generator.rb', line 18

def create_models
  template 'models/role.rb', 'app/models/easy_admin/permissions/role.rb'
  template 'models/user_role.rb', 'app/models/easy_admin/permissions/user_role.rb'
  # No permission or role_permission models needed - using JSON field approach
end

#create_seedsObject



44
45
46
# File 'lib/generators/easy_admin/permissions/install_generator.rb', line 44

def create_seeds
  template 'seeds/permissions.rb', 'db/seeds/easy_admin_permissions.rb'
end

#show_instructionsObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/generators/easy_admin/permissions/install_generator.rb', line 48

def show_instructions
  say "\n" + "="*60
  say "EasyAdmin Permission Engine installed successfully!"
  say "="*60
  say "\nNext steps:"
  say "1. Run: rails db:migrate"
  say "2. Add to your seeds: load Rails.root.join('db/seeds/easy_admin_permissions.rb')"
  say "3. Run: rails db:seed"
  say "4. Configure permissions in config/initializers/easy_admin_permissions.rb"
  say "5. Add action_policy gem to your Gemfile: gem 'action_policy'"
  say "6. Run: bundle install"
  say "\nFor more information, see the documentation."
  say "="*60 + "\n"
end

#update_user_modelObject



38
39
40
41
42
# File 'lib/generators/easy_admin/permissions/install_generator.rb', line 38

def update_user_model
  inject_into_class "app/models/#{options[:user_model].underscore}.rb", options[:user_model].classify do
    "  include EasyAdmin::Permissions::UserExtensions\n"
  end
end