Skip to content

Routes

Routes are defined by entity type annotations (links). There is no crm_membership.routing.yml in the codebase. The HTML route provider for Membership is custom (MembershipRouteHtmlRouteProvider); Membership Type and Membership Period use AdminHtmlRouteProvider.

Settings (planned)

Route name Planned path Permission
crm_membership.settings /admin/crm/crm-membership (planned) administer crm_membership

A menu link exists in crm_membership.links.menu.yml (Administration → Configuration → System → CRM Membership), but the route and SettingsForm are not implemented yet. See Configuration and Roadmap.

Membership (content entity)

From the Membership entity type (src/Entity/Membership.php links):

Link Path
canonical /crm/membership/{crm_membership}
add-page /crm/membership/add
add-form /crm/membership/add/{crm_membership_type}
edit-form /crm/membership/{crm_membership}/edit
delete-form /crm/membership/{crm_membership}/delete
renew-form /crm/membership/{crm_membership}/renew
collection /crm/membership

Access is controlled by MembershipAccessControlHandler and permissions view memberships, edit memberships, renew memberships, delete memberships, and administer crm_membership. There is no separate “create memberships” permission — creation typically requires administer crm_membership.

The route provider is MembershipRouteHtmlRouteProvider.

Membership Type (config entity)

From the Membership Type entity type (src/Entity/MembershipType.php links):

Link Path
add-form /admin/structure/crm/membership_types/add
edit-form /admin/structure/crm/membership_types/{crm_membership_type}/edit
delete-form /admin/structure/crm/membership_types/{crm_membership_type}/delete
collection /admin/structure/crm/membership_types

Access is controlled by MembershipTypeAccessControlHandler. The collection route uses collection_permission: view crm membership types (or administer crm_membership via the handler). Add requires create crm membership types or administer crm_membership; edit requires edit crm membership types or admin; delete requires delete crm membership types or admin; view (single type) requires view crm membership types or admin.

Membership Period (content entity)

From the Membership Period entity type (src/Entity/MembershipPeriod.php links):

Link Path
canonical /crm/membership/periods/{crm_membership_period}
add-form /crm/membership/periods/add
edit-form /crm/membership/periods/{crm_membership_period}/edit
delete-form /crm/membership/periods/{crm_membership_period}/delete
collection /crm/membership/periods

Entity CRUD routes use the entity’s admin_permission (administer crm_membership) via default entity access. Menu: CRM portal → Memberships → Membership periods (crm.home.membership.periods).

Route provider: AdminHtmlRouteProvider.

Optional View: membership periods for membership

When the optional View is installed (Views module enabled):

Route name Path Permission
view.membership_periods_for_membership.page_membership_periods /admin/content/crm/membership/{crm_membership}/all-periods view memberships (or administer crm_membership)

This route is also linked from the Membership periods operation on the membership list (MembershipListBuilder). See Membership periods UI.

See Access control for the full permission matrix.