Scope member entitlements to product root, not KamoCRM

FeatureSecurityService
Ya
9 Juni 2026, 23:52 UTC
Mwandishi
Kamo
Ahadi ya
2d209dd

EntitlementService now resolves each member's entitlement root via EntitlementRootResolver (nearest market-owning ancestor-or-self) instead of walking to the top-level org. The Free-tier floor and the product-access flag derive from that root, and isKamoCrmSubscription becomes subscriptionGrantsRootAccess (plan-org vs root, never the billing account). MemberEntitlements gains productRootOrgId so consumers gate access against the right product. BillingSetupService sources the market + Free plan from the new org's product root while keeping the billing Account on the top-level KamoCRM org — i.e. the parent owns billing, the child can own the product/market. Behaviour is unchanged until an org actually owns its own market (KamoCRM is the only market owner today, so every member still resolves to it).

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei