The document extension's admin pages and the one sidebar entry that links to them — a
"sidebar:menus" plugin (MishkaCmsCore.Sidebar).
Only document is a link; it lands in the core's Plugins section. The core never names this
extension, so removing it removes the entry and nothing in MishkaCmsCore.Sidebar changes.
The other eight are nav: false — pages, not links. They are declared because they do NOT share
one answer to "who may open this": the workspace pages are admin:dashboard:document:workspace,
everything hanging off a section is admin:dashboard:document:section, and the event log opens
for either and shows each area the events of its own records (MishkaDocument.EventLog.logged/1). The
link carries the union, since holding either is reason enough to be shown the section. The data
behind each page asks for the same area.
Three of them are parameterised routes that could never be a static link anyway
(/document/sections/:workspace_version_id and friends) — declaring them here is the only place
their gate can be written down.
Each page reads its own gate from here, so the permission is written down once:
on_mount {MishkaCmsCore.LiveUserAuth,
{:require_permission, MishkaDocumentWeb.SidebarMenu.permissions("document.issues")}}Registered in MishkaDocument.Application.
Summary
Functions
Returns a specification to start this module under a supervisor.
Callback implementation for MishkaInstaller.Event.Hook.enable/0.
Callback implementation for MishkaInstaller.Event.Hook.get/0.
Optional. See MishkaInstaller.Event.Hook.health_check/0. Override to report health.
This extension's sidebar entry plus every admin page it owns.
Optional. See MishkaInstaller.Event.Hook.on_dependency_error/1. Override to react.
The permissions declared for one of this extension's pages. See MishkaCmsCore.Sidebar.permissions/2.
Callback implementation for MishkaInstaller.Event.Hook.register/0.
Callback implementation for MishkaInstaller.Event.Hook.restart/0.
Callback implementation for MishkaInstaller.Event.Hook.start/0.
Callback implementation for MishkaInstaller.Event.Hook.stop/0.
Callback implementation for MishkaInstaller.Event.Hook.unregister/0.
Types
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec config() :: keyword()
@spec enable() :: okey_return() | error_return()
Callback implementation for MishkaInstaller.Event.Hook.enable/0.
@spec get() :: keyword()
Callback implementation for MishkaInstaller.Event.Hook.get/0.
Optional. See MishkaInstaller.Event.Hook.health_check/0. Override to report health.
@spec items() :: [MishkaCmsCore.Sidebar.Item.t()]
This extension's sidebar entry plus every admin page it owns.
Optional. See MishkaInstaller.Event.Hook.on_dependency_error/1. Override to react.
@spec permissions(String.t()) :: [ MishkaCmsCore.Accounts.Checks.AccessPermissions.requirement() ]
The permissions declared for one of this extension's pages. See MishkaCmsCore.Sidebar.permissions/2.
@spec register() :: okey_return() | error_return()
Callback implementation for MishkaInstaller.Event.Hook.register/0.
@spec restart() :: okey_return() | error_return()
Callback implementation for MishkaInstaller.Event.Hook.restart/0.
@spec start() :: okey_return() | error_return()
Callback implementation for MishkaInstaller.Event.Hook.start/0.
@spec stop() :: okey_return() | error_return()
Callback implementation for MishkaInstaller.Event.Hook.stop/0.
@spec unregister() :: okey_return() | error_return()
Callback implementation for MishkaInstaller.Event.Hook.unregister/0.