Skip to content

Routes

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

Settings (module routing)

From crm_membership.routing.yml:

Route name Path Title Permission
crm_membership.settings /admin/crm/crm-membership CRM Membership Settings administer crm_membership

Form: Drupal\crm_membership\Form\SettingsForm.

Membership (content entity)

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

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

Access is controlled by the entity’s access handler (MembershipAccessControlHandler) and the administer crm_membership / view / edit / renew / delete permissions. 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. Module-wide settings under /admin/crm/crm-membership still require administer crm_membership alone.

Membership Period (content entity)

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

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

Requires administer crm_membership. Route provider: AdminHtmlRouteProvider.