OptionalAfterCalled after all saves/deletes succeed — a hook for cache refresh
(e.g., DashboardEngine.Config(true)). Optional.
Create an un-saved ResourceSharePermissionModel for user, defaulting
the level to View. The returned row's PermissionEntity must be a valid
BaseEntity pre-populated with everything except the level.
Load existing share rows for the resource. Owner is NOT included here.
Apply the current Level back onto the adapter's underlying entity shape
before the dialog calls .Save(). For MJResourcePermission-backed
resources this is a direct PermissionLevel = assignment; for
MJDashboardPermission it translates to the four Can* booleans.
Contract implemented by per-resource adapters that plug into GenericShareDialogComponent. The dialog owns the UX (user search, level selector, mark-for-removal); the adapter owns persistence.