feat: add platform assignment to user and vendor creation forms
User create page: - When role=admin, show super admin toggle - If not super admin, show platform multi-select - Admin users created via /api/v1/admin/admin-users endpoint - Vendor users created via existing /admin/users endpoint Vendor create page: - Add platform selection section - Vendors can be assigned to multiple platforms on creation - Update VendorCreate schema to accept platform_ids - Update AdminService.create_vendor() to create VendorPlatform records Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -34,6 +34,7 @@ from app.exceptions.auth import UserAlreadyExistsException
|
||||
from middleware.auth import AuthManager
|
||||
from models.database.company import Company
|
||||
from models.database.marketplace_import_job import MarketplaceImportJob
|
||||
from models.database.platform import Platform
|
||||
from models.database.user import User
|
||||
from models.database.vendor import Role, Vendor
|
||||
from models.schema.marketplace_import_job import MarketplaceImportJobResponse
|
||||
@@ -419,6 +420,24 @@ class AdminService:
|
||||
# Create default roles for vendor
|
||||
self._create_default_roles(db, vendor.id)
|
||||
|
||||
# Assign vendor to platforms if provided
|
||||
if vendor_data.platform_ids:
|
||||
from models.database.vendor_platform import VendorPlatform
|
||||
|
||||
for platform_id in vendor_data.platform_ids:
|
||||
# Verify platform exists
|
||||
platform = db.query(Platform).filter(Platform.id == platform_id).first()
|
||||
if platform:
|
||||
vendor_platform = VendorPlatform(
|
||||
vendor_id=vendor.id,
|
||||
platform_id=platform_id,
|
||||
is_active=True,
|
||||
)
|
||||
db.add(vendor_platform)
|
||||
logger.debug(
|
||||
f"Assigned vendor {vendor.vendor_code} to platform {platform.code}"
|
||||
)
|
||||
|
||||
db.flush()
|
||||
db.refresh(vendor)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user