Class: ZenAdmin::Generators::RbacInstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
ActiveRecord::Generators::Migration
Defined in:
lib/generators/zen_admin/rbac_install/rbac_install_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_seedsObject



37
38
39
40
41
# File 'lib/generators/zen_admin/rbac_install/rbac_install_generator.rb', line 37

def add_seeds
  append_to_file "db/seeds.rb" do
    ERB.new(File.read(File.expand_path("templates/seeds.rb.erb", __dir__))).result
  end
end

#copy_migrationsObject



15
16
17
# File 'lib/generators/zen_admin/rbac_install/rbac_install_generator.rb', line 15

def copy_migrations
  migration_template "create_zen_admin_rbac.rb.erb", "db/migrate/create_zen_admin_rbac.rb"
end

#enable_rbac_configObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/generators/zen_admin/rbac_install/rbac_install_generator.rb', line 19

def enable_rbac_config
  path = "config/initializers/zen_admin.rb"
  if File.exist?(path)
    # 如果已经存在,则更新为 true
    if File.read(path).include?("config.rbac_enable")
      gsub_file path, /config\.rbac_enable\s*=\s*.*/, "config.rbac_enable = true"
    else
      # 插入在 configure 块的下一行
      inject_into_file path, after: "ZenAdmin.configure do |config|\n" do
        <<-RUBY
  # 开启 RBAC 数据库验证模式
  config.rbac_enable = true
        RUBY
      end
    end
  end
end

#invoke_base_installObject



11
12
13
# File 'lib/generators/zen_admin/rbac_install/rbac_install_generator.rb', line 11

def invoke_base_install
  invoke "zen_admin:install"
end

#show_readmeObject



43
44
45
46
47
48
49
# File 'lib/generators/zen_admin/rbac_install/rbac_install_generator.rb', line 43

def show_readme
  say "\nZenAdmin RBAC 迁移文件已生成!", :green
  say "接下来请运行: ", :yellow
  say "  bin/rails db:migrate", :white
  say "然后创建管理员账号: ", :yellow
  say "  bin/rails g zen_admin:admin_user", :white
end