Improve auth process 4
This commit is contained in:
@@ -113,9 +113,16 @@ class AuthService:
|
||||
tenant_memberships = await AuthService._get_user_tenants(str(user.id))
|
||||
|
||||
# Create tokens
|
||||
access_token = SecurityManager.create_access_token(user)
|
||||
access_token = SecurityManager.create_access_token(
|
||||
user_data={
|
||||
"user_id": str(user.id),
|
||||
"email": user.email,
|
||||
"full_name": user.full_name,
|
||||
"tenants": tenant_memberships # Include tenant info in token
|
||||
}
|
||||
)
|
||||
|
||||
refresh_token_value = SecurityManager.create_refresh_token(data={"user_id": str(user.id)})
|
||||
refresh_token_value = SecurityManager.create_refresh_token(user_data={"user_id": str(user.id)})
|
||||
|
||||
# Store refresh token in database
|
||||
refresh_token = RefreshToken(
|
||||
@@ -198,7 +205,14 @@ class AuthService:
|
||||
tenant_memberships = await AuthService._get_user_tenants(str(user.id))
|
||||
|
||||
# Create new access token
|
||||
access_token = SecurityManager.create_access_token(user)
|
||||
access_token = SecurityManager.create_access_token(
|
||||
user_data={
|
||||
"user_id": str(user.id),
|
||||
"email": user.email,
|
||||
"full_name": user.full_name,
|
||||
"tenants": tenant_memberships
|
||||
}
|
||||
)
|
||||
|
||||
return {
|
||||
"access_token": access_token,
|
||||
|
||||
@@ -8,7 +8,7 @@ from fastapi import FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
|
||||
from app.core.config import settings
|
||||
from app.core.database import engine
|
||||
from app.core.database import database_manager
|
||||
from app.api import tenants
|
||||
from shared.monitoring.logging import setup_logging
|
||||
from shared.monitoring.metrics import MetricsCollector
|
||||
@@ -51,7 +51,7 @@ async def startup_event():
|
||||
async def shutdown_event():
|
||||
"""Cleanup on shutdown"""
|
||||
logger.info("Shutting down Tenant Service...")
|
||||
await engine.dispose()
|
||||
await database_manager.engine.dispose()
|
||||
|
||||
@app.get("/health")
|
||||
async def health_check():
|
||||
|
||||
@@ -4,7 +4,7 @@ Tenant models for bakery management - FIXED
|
||||
Removed cross-service User relationship to eliminate circular dependencies
|
||||
"""
|
||||
|
||||
from sqlalchemy import Column, String, Boolean, DateTime, Float, ForeignKey, Text
|
||||
from sqlalchemy import Column, String, Boolean, DateTime, Float, ForeignKey, Text, Integer
|
||||
from sqlalchemy.dialects.postgresql import UUID
|
||||
from sqlalchemy.orm import relationship
|
||||
from datetime import datetime, timezone
|
||||
|
||||
@@ -2,17 +2,19 @@
|
||||
"""
|
||||
Tenant service messaging for event publishing
|
||||
"""
|
||||
|
||||
from shared.messaging.rabbitmq import RabbitMQClient
|
||||
from app.core.config import settings
|
||||
import structlog
|
||||
from shared.messaging.rabbitmq import RabbitMQPublisher
|
||||
|
||||
logger = structlog.get_logger()
|
||||
|
||||
# Single global instance
|
||||
data_publisher = RabbitMQClient(settings.RABBITMQ_URL, "data-service")
|
||||
|
||||
async def publish_tenant_created(tenant_id: str, owner_id: str, tenant_name: str):
|
||||
"""Publish tenant created event"""
|
||||
try:
|
||||
publisher = RabbitMQPublisher()
|
||||
await publisher.publish_event(
|
||||
await data_publisher.publish_event(
|
||||
"tenant.created",
|
||||
{
|
||||
"tenant_id": tenant_id,
|
||||
@@ -27,8 +29,7 @@ async def publish_tenant_created(tenant_id: str, owner_id: str, tenant_name: str
|
||||
async def publish_member_added(tenant_id: str, user_id: str, role: str):
|
||||
"""Publish member added event"""
|
||||
try:
|
||||
publisher = RabbitMQPublisher()
|
||||
await publisher.publish_event(
|
||||
await data_publisher.publish_event(
|
||||
"tenant.member.added",
|
||||
{
|
||||
"tenant_id": tenant_id,
|
||||
|
||||
@@ -13,7 +13,7 @@ import uuid
|
||||
import json
|
||||
|
||||
from app.models.tenants import Tenant, TenantMember
|
||||
from app.schemas.tenants import BakeryRegistration, TenantResponse, TenantAccessResponse, TenantUpdate
|
||||
from app.schemas.tenants import BakeryRegistration, TenantResponse, TenantAccessResponse, TenantUpdate, TenantMemberResponse
|
||||
from app.services.messaging import publish_tenant_created, publish_member_added
|
||||
|
||||
logger = structlog.get_logger()
|
||||
|
||||
Reference in New Issue
Block a user