Dashboard widget (a dashboard:widgets plugin): the users & access snapshot — the total user count
with a Tenant/Master split, the permission catalogue (defined vs never-assigned) and how many users
actually carry grants (with/without, plus the admins: holders of *, admin:* or anything under a
surface, a single area included). It is the user area's card, admin:dashboard:user. Everything is counted through the
MishkaCmsCore.Accounts.User and MishkaCmsCore.Accounts.Permission resources' tenancy-bypassing
reads via Ash.count!/2. A master counts every user; a tenant admin only their own site's users.
Permission has no site_id, so "defined" is a catalogue count — deployment configuration every
admin needs in order to grant any of them — and stays global for both. "Unused" does not: it is
derived from who holds a permission, which is tenant data, so for a tenant it means held by nobody
on this site.
The access bar's width is percent/2 over the counts, a number that exists only at render time.
Tailwind generates rules from SOURCE TEXT, so a class assembled around that number gets no rule at
all and the bar draws with no width; it carries an inline style attribute instead, which is why
the policy in MishkaCmsCore.Runtime.Plugs.SecurityHeaders keeps style-src-attr permitted — see
MishkaCmsWeb.InterpolatedClassTest.
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.
Loads this widget's data off the dashboard render (in a Task), scoped to the viewer.
Optional. See MishkaInstaller.Event.Hook.on_dependency_error/1. Override to react.
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.
This widget's descriptor.
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.
Loads this widget's data off the dashboard render (in a Task), scoped to the viewer.
Optional. See MishkaInstaller.Event.Hook.on_dependency_error/1. Override to react.
@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.
@spec widget() :: MishkaCmsCore.Dashboard.Widget.t()
This widget's descriptor.