Some checks failed
Consolidate User.role (2-value: admin/store) + User.is_super_admin (boolean) into a single 4-value UserRole enum: super_admin, platform_admin, merchant_owner, store_member. Drop stale StoreUser.user_type column. Fix role="user" bug in merchant creation. Key changes: - Expand UserRole enum from 2 to 4 values with computed properties (is_admin, is_super_admin, is_platform_admin, is_merchant_owner, is_store_user) - Add Alembic migration (tenancy_003) for data migration + column drops - Remove is_super_admin from JWT token payload - Update all auth dependencies, services, routes, templates, JS, and tests - Update all RBAC documentation 66 files changed, 1219 unit tests passing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
72 lines
2.3 KiB
Python
72 lines
2.3 KiB
Python
# app/modules/tenancy/models/__init__.py
|
|
"""
|
|
Tenancy module database models.
|
|
|
|
This is the canonical location for tenancy module models including:
|
|
- Platform, Merchant, Store, User management
|
|
- Admin platform assignments
|
|
- Store platform memberships
|
|
- Platform module configuration
|
|
- Store domains
|
|
"""
|
|
|
|
# Import models from other modules FIRST to resolve string-based relationship references.
|
|
# These imports are NOT re-exported, just ensure models are registered with SQLAlchemy
|
|
# before the tenancy models are loaded.
|
|
#
|
|
# Relationship being resolved:
|
|
# - Platform.admin_menu_configs -> "AdminMenuConfig" (in core module)
|
|
#
|
|
# NOTE: MarketplaceImportJob relationships have been moved to the marketplace module.
|
|
# Optional modules own their relationships to core models, not vice versa.
|
|
from app.modules.core.models import AdminMenuConfig # noqa: F401
|
|
from app.modules.tenancy.models.admin import (
|
|
AdminAuditLog,
|
|
AdminSession,
|
|
AdminSetting,
|
|
ApplicationLog,
|
|
PlatformAlert,
|
|
)
|
|
from app.modules.tenancy.models.admin_platform import AdminPlatform
|
|
from app.modules.tenancy.models.email_verification_token import EmailVerificationToken
|
|
from app.modules.tenancy.models.merchant import Merchant
|
|
from app.modules.tenancy.models.merchant_domain import MerchantDomain
|
|
from app.modules.tenancy.models.platform import Platform
|
|
from app.modules.tenancy.models.platform_module import PlatformModule
|
|
from app.modules.tenancy.models.store import Role, Store, StoreUser
|
|
from app.modules.tenancy.models.store_domain import StoreDomain
|
|
from app.modules.tenancy.models.store_platform import StorePlatform
|
|
from app.modules.tenancy.models.user import User, UserRole
|
|
from app.modules.tenancy.models.user_password_reset_token import UserPasswordResetToken
|
|
|
|
__all__ = [
|
|
# Admin models
|
|
"AdminAuditLog",
|
|
"AdminSession",
|
|
"AdminSetting",
|
|
"ApplicationLog",
|
|
"PlatformAlert",
|
|
# Admin-Platform junction
|
|
"AdminPlatform",
|
|
# Merchant
|
|
"Merchant",
|
|
# Platform
|
|
"Platform",
|
|
"PlatformModule",
|
|
# User
|
|
"User",
|
|
"UserRole",
|
|
# Tokens
|
|
"EmailVerificationToken",
|
|
"UserPasswordResetToken",
|
|
# Store
|
|
"Store",
|
|
"StoreUser",
|
|
"Role",
|
|
# Merchant configuration
|
|
"MerchantDomain",
|
|
# Store configuration
|
|
"StoreDomain",
|
|
"StorePlatform",
|
|
]
|