Improve auth process 4

This commit is contained in:
Urtzi Alfaro
2025-07-20 09:18:08 +02:00
parent 0b1e67a76c
commit 608585c72c
6 changed files with 59 additions and 43 deletions

View File

@@ -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,

View File

@@ -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():

View File

@@ -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

View File

@@ -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,

View File

@@ -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()