Team-Based Multi-Tenancy
- All data is scoped to teams via
BaseTeamModel - Use
@login_and_team_requiredor@team_requireddecorators on views - Team context available in middleware as
request.teamandrequest.team_membership - Permission system based on team membership
- Never allow cross-team data access without explicit permission