Class: LcpRuby::Generators::OidcRoleMappingsGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
FormatSupport
Defined in:
lib/generators/lcp_ruby/oidc_role_mappings_generator.rb

Overview

Generates the model, presenter, permission, and locale files needed by ‘role_source: db` (Phase 2). When the host has at least one OIDC provider configured with `role_source: db`, running this generator (and `db:prepare`) is what activates DB-backed role mapping.

Mirrors the api_tokens generator pattern: DSL by default, ‘–format=yaml` for YAML mode; permissions and locales are always YAML.

Constant Summary

Constants included from FormatSupport

FormatSupport::VALID_FORMATS

Instance Method Summary collapse

Methods included from FormatSupport

included, #validate_format

Instance Method Details

#copy_localeObject



38
39
40
# File 'lib/generators/lcp_ruby/oidc_role_mappings_generator.rb', line 38

def copy_locale
  template "locales.en.yml", "config/locales/lcp_ruby/oidc_role_mappings.en.yml"
end

#copy_modelObject



22
23
24
25
26
# File 'lib/generators/lcp_ruby/oidc_role_mappings_generator.rb', line 22

def copy_model
  copy_dsl_or_yaml "model.rb",
    dsl_target:  "config/lcp_ruby/models/oidc_role_mapping.rb",
    yaml_target: "config/lcp_ruby/models/oidc_role_mapping.yml"
end

#copy_permissionsObject



34
35
36
# File 'lib/generators/lcp_ruby/oidc_role_mappings_generator.rb', line 34

def copy_permissions
  template "permissions.yml", "config/lcp_ruby/permissions/oidc_role_mapping.yml"
end

#copy_presenterObject



28
29
30
31
32
# File 'lib/generators/lcp_ruby/oidc_role_mappings_generator.rb', line 28

def copy_presenter
  copy_dsl_or_yaml "presenter.rb",
    dsl_target:  "config/lcp_ruby/presenters/oidc_role_mappings.rb",
    yaml_target: "config/lcp_ruby/presenters/oidc_role_mappings.yml"
end

#show_post_install_messageObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/generators/lcp_ruby/oidc_role_mappings_generator.rb', line 42

def show_post_install_message
  say ""
  say "LCP Ruby OIDC role mappings installed!", :green
  say ""
  say "Generated files:"
  say "  - config/lcp_ruby/models/oidc_role_mapping.#{format_extension}"
  say "  - config/lcp_ruby/presenters/oidc_role_mappings.#{format_extension}"
  say "  - config/lcp_ruby/permissions/oidc_role_mapping.yml"
  say "  - config/locales/lcp_ruby/oidc_role_mappings.en.yml"
  say ""
  say "Next steps:"
  say "  1. Set role_source: db on at least one OIDC provider in auth.yml."
  say "  2. bundle exec rails db:prepare    # creates lcp_ruby_oidc_role_mappings table"
  say "  3. Start server, sign in as an admin, manage rows at /oidc-role-mappings."
  say ""
end