Module: AdminSuite

Defined in:
lib/admin_suite.rb,
lib/admin_suite/auth.rb,
lib/admin_suite/engine.rb,
lib/admin_suite/version.rb,
lib/admin_suite/renderer.rb,
lib/admin_suite/deprecation.rb,
lib/admin_suite/auth/strategy.rb,
lib/admin_suite/configuration.rb,
lib/admin_suite/theme_palette.rb,
lib/admin_suite/auth/host_hook.rb,
lib/admin_suite/auth/http_basic.rb,
lib/admin_suite/portal_registry.rb,
lib/admin_suite/definition_loader.rb,
lib/admin_suite/markdown_renderer.rb,
lib/admin_suite/portal_definition.rb,
lib/admin_suite/renderer_registry.rb,
lib/admin_suite/section_definition.rb,
app/helpers/admin_suite/base_helper.rb,
app/helpers/admin_suite/icon_helper.rb,
app/helpers/admin_suite/theme_helper.rb,
lib/admin_suite/host_autoload_policy.rb,
app/helpers/admin_suite/panels_helper.rb,
lib/admin_suite/ui/form_field_renderer.rb,
lib/admin_suite/renderers/code_renderer.rb,
lib/admin_suite/renderers/json_renderer.rb,
lib/admin_suite/ui/dashboard_definition.rb,
lib/admin_suite/ui/show_value_formatter.rb,
app/helpers/admin_suite/resources_helper.rb,
lib/admin_suite/renderers/legacy_gleania.rb,
lib/admin_suite/ui/field_renderer_registry.rb,
lib/admin_suite/ui/show_formatter_registry.rb,
app/controllers/admin_suite/docs_controller.rb,
lib/admin_suite/legacy_custom_renderer_procs.rb,
lib/admin_suite/renderers/key_value_renderer.rb,
lib/admin_suite/renderers/table_from_renderer.rb,
app/controllers/admin_suite/portals_controller.rb,
app/controllers/admin_suite/dashboard_controller.rb,
app/controllers/admin_suite/resources_controller.rb,
app/controllers/admin_suite/application_controller.rb,
lib/generators/admin_suite/install/install_generator.rb,
lib/generators/admin_suite/resource/resource_generator.rb,
lib/generators/admin_suite/scaffold/scaffold_generator.rb

Defined Under Namespace

Modules: Auth, BaseHelper, Deprecation, Generators, IconHelper, LegacyCustomRendererProcs, PanelsHelper, PortalRegistry, RendererRegistry, Renderers, ResourcesHelper, ThemeHelper, ThemePalette, UI, Version Classes: ApplicationController, Configuration, DashboardController, DefinitionLoader, DocsController, Engine, HostAutoloadPolicy, MarkdownRenderer, PortalDefinition, PortalsController, Renderer, ResourcesController, SectionDefinition

Constant Summary collapse

VERSION =

Backward-compatible constant.

Version::VERSION

Class Method Summary collapse

Class Method Details

.configAdminSuite::Configuration



62
63
64
# File 'lib/admin_suite.rb', line 62

def config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ AdminSuite::Configuration

Yield Parameters:

Returns:



68
69
70
71
# File 'lib/admin_suite.rb', line 68

def configure
  yield(config)
  config
end

.portal(key) { ... } ⇒ AdminSuite::PortalDefinition

Defines (or updates) a portal using a Ruby DSL.

Host apps typically place these in:

  • config/admin_suite/portals/*.rb (recommended; not a Zeitwerk autoload path)
  • app/admin_suite/portals/*.rb (supported; AdminSuite ignores for Zeitwerk)
  • app/admin/portals/*.rb (supported; AdminSuite will ignore for Zeitwerk if files contain AdminSuite.portal)

Parameters:

  • key (Symbol, String)

Yields:

  • Portal definition DSL

Returns:



98
99
100
101
102
103
# File 'lib/admin_suite.rb', line 98

def portal(key, &block)
  definition = PortalDefinition.new(key)
  definition.instance_eval(&block) if block_given?
  PortalRegistry.register(definition)
  definition
end

.portal_definitionsHash{Symbol=>AdminSuite::PortalDefinition}

Returns:



106
107
108
# File 'lib/admin_suite.rb', line 106

def portal_definitions
  PortalRegistry.all
end

.reset_root_dashboard!void

This method returns an undefined value.

Clears the root dashboard definition (useful for development reloads).



134
135
136
137
138
139
# File 'lib/admin_suite.rb', line 134

def reset_root_dashboard!
  config.root_dashboard_definition = nil
  config.root_dashboard_loaded = false
rescue StandardError
  # best-effort
end

.resolved_auth_strategyAdminSuite::Auth::Strategy?

Resolves the effective authentication strategy instance.

Precedence: explicit config.auth_strategy (Symbol name or Class), then the legacy config.authenticate lambda (wrapped), then nil.

Returns:



79
80
81
82
83
84
85
86
# File 'lib/admin_suite.rb', line 79

def resolved_auth_strategy
  if config.auth_strategy
    klass = config.auth_strategy.is_a?(Class) ? config.auth_strategy : Auth.lookup(config.auth_strategy)
    klass.new(config.auth_options || {})
  elsif config.authenticate
    Auth::HostHook.new(authenticate: config.authenticate, current_actor: config.current_actor)
  end
end

.root_dashboard { ... } ⇒ AdminSuite::UI::DashboardDefinition

Defines (or updates) the root dashboard shown at the engine root (/).

This uses the same dashboard DSL as portal dashboards.

Host apps typically place these in:

  • config/admin_suite/dashboard.rb (recommended; not a Zeitwerk autoload path)
  • app/admin_suite/dashboard.rb (supported; AdminSuite ignores for Zeitwerk)

Yields:

  • Dashboard definition DSL

Returns:



120
121
122
123
124
# File 'lib/admin_suite.rb', line 120

def root_dashboard(&block)
  config.root_dashboard_definition ||= UI::DashboardDefinition.new
  UI::DashboardDSL.new(config.root_dashboard_definition).instance_eval(&block) if block_given?
  config.root_dashboard_definition
end

.root_dashboard_definitionAdminSuite::UI::DashboardDefinition?



127
128
129
# File 'lib/admin_suite.rb', line 127

def root_dashboard_definition
  config.root_dashboard_definition
end