Module Research Notes
Evidence gathered from the current module files before writing the user guide pages.
Research Sources Inspected
Source path
modules/Tenancy
Feature flags marked true
- Controllers
- Models
- Views
- Language
- Permissions
- Left Menu
- Default Menu
- Routes
Evidence Summary
Manifest
module.json defines slug multi_tenancy, version 1.3.0, category Multi-tenancy, and the module capability flags used in this guide.
Runtime surface
15 controller file(s), 35 view file(s), and 59 route mapping(s) were found.
Data surface
1 model file(s), 0 declared table(s), and 0 migration file(s) were found.
Operations surface
13 permission key(s), 0 job(s), 0 seeder(s), and 0 test file(s) were found.
Detailed File Evidence
Controllers and methods
BaseMTTenancy_app_dashTenancy_auditlogsTenancy_backupsTenancy_billingTenancy_cronjobsTenancy_databaseTenancy_dbmigrationTenancy_dbseederTenancy_modulesTenancy_overviewTenancy_setupTenancy_statusTenancy_usersTenant_manager
Jobs and schedules
No scheduled module jobs were found.
Routes sampled
| Route | Target |
|---|---|
multi_tenancy/view/(:any)/(:any) | Tenancy_overview/view/$1/$2 |
multi_tenancy/view/(:any) | Tenancy_overview/view/$1 |
multi_tenancy/tenancy_tab/(:any)/(:any) | Tenancy_overview/tenancy_tab/$1/$2 |
multi_tenancy/tenancy_tab/(:any) | Tenancy_overview/tenancy_tab/$1 |
multi_tenancy/generate_company_slug | Tenancy_setup/generate_company_slug |
multi_tenancy/validate_company_slug | Tenancy_setup/validate_company_slug |
multi_tenancy/update_company_slug_modal_form | Tenancy_setup/update_company_slug_modal_form |
multi_tenancy/update_company_slug | Tenancy_setup/update_company_slug |
multi_tenancy/setup_tenant | Tenancy_setup/setup_tenant |
multi_tenancy/get_tenant_setup_progress | Tenancy_setup/get_tenant_setup_progress |
multi_tenancy/tenant_setup_progress_modal_form | Tenancy_setup/tenant_setup_progress_modal_form |
multi_tenancy/setup_tenancy_modal_form | Tenancy_setup/setup_tenancy_modal_form |
multi_tenancy/tenant_status_modal_form | Tenancy_status/tenant_status_modal_form |
multi_tenancy/update_tenant_status | Tenancy_status/update_tenant_status |
multi_tenancy/tenant_archive_modal_form | Tenancy_status/tenant_archive_modal_form |
multi_tenancy/archive_tenant | Tenancy_status/archive_tenant |
multi_tenancy/tenant_users_list_data/(:any) | Tenancy_users/tenant_users_list_data/$1 |
multi_tenancy/tenant_admin_reset_password_modal | Tenancy_users/tenant_admin_reset_password_modal |
multi_tenancy/tenant_admin_reset_password | Tenancy_users/tenant_admin_reset_password |
multi_tenancy/tenant_user_modal_form | Tenancy_users/tenant_user_modal_form |
| 39 additional route(s) omitted for readability. | |
README topics
- Structure
- Routing
- Visibility (main tenant only)
- Activation
- Notes / known integrations
Operating Implications
- Permission coverage is part of the module contract, so every workflow should be tested with a role-limited user and an administrator.
Known Risks from the Manifest
- Visible only on the MAIN database to admins (should_include_tenancy()); the Deployments menu group declares main_tenant_only and Left_menu honors it. The Tenant_manager 'Tenants' page (moved here from the Clients tab) re-checks should_include_tenancy() server-side.
- Controllers were flattened from application/controllers/multitenancy/<Class> to modules/Tenancy/controllers/Tenancy_<class> (App_Router resolves only top-level routes). Public multi_tenancy/* URLs are unchanged via module routes.
- Cron_manager loads the moved view multi_tenancy/partials/cron_times via global package paths (cross-module view load, runbook G2).
- RBAC permission registry for tenant management remains in core Roles.php (MVC-only scope); the module consumes those keys and does not re-declare them.