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/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/markdown_renderer.rb,
lib/admin_suite/portal_definition.rb,
app/helpers/admin_suite/base_helper.rb,
app/helpers/admin_suite/icon_helper.rb,
app/helpers/admin_suite/theme_helper.rb,
app/helpers/admin_suite/panels_helper.rb,
lib/admin_suite/ui/form_field_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/ui/field_renderer_registry.rb,
lib/admin_suite/ui/show_formatter_registry.rb,
app/controllers/admin_suite/docs_controller.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, Generators, IconHelper, PanelsHelper, PortalRegistry, ResourcesHelper, ThemeHelper, ThemePalette, UI, Version Classes: ApplicationController, Configuration, DashboardController, DocsController, Engine, MarkdownRenderer, PortalDefinition, PortalsController, ResourcesController

Constant Summary collapse

VERSION =

Backward-compatible constant.

Version::VERSION

Class Method Summary collapse

Class Method Details

.configAdminSuite::Configuration



25
26
27
# File 'lib/admin_suite.rb', line 25

def config
  @config ||= Configuration.new
end

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

Yield Parameters:

Returns:



31
32
33
34
# File 'lib/admin_suite.rb', line 31

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:



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

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:



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

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).



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

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:



42
43
44
45
46
47
48
49
# File 'lib/admin_suite.rb', line 42

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:



83
84
85
86
87
# File 'lib/admin_suite.rb', line 83

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?



90
91
92
# File 'lib/admin_suite.rb', line 90

def root_dashboard_definition
  config.root_dashboard_definition
end