Implementing the partner into the db and contracts
This commit is contained in:
@@ -1,11 +1,15 @@
|
||||
from fastapi import HTTPException, Depends
|
||||
|
||||
from hub.auth import get_current_user
|
||||
|
||||
from firm.current_firm import CurrentFirmModel, Partner
|
||||
from firm.db import get_db_client
|
||||
from firm.current_firm import CurrentFirmModel
|
||||
from firm.entity.models import Entity
|
||||
|
||||
|
||||
class Registry:
|
||||
user = None
|
||||
partner = None
|
||||
|
||||
def __init__(self, db_client, instance, firm):
|
||||
self.db = db_client[f"tenant_{instance}_{firm}"]
|
||||
@@ -14,11 +18,14 @@ class Registry:
|
||||
|
||||
self.current_firm = CurrentFirmModel.get_current(self.db)
|
||||
|
||||
def set_user(self, user):
|
||||
async def set_user(self, user):
|
||||
for firm in user.firms:
|
||||
if firm.instance == self.instance and firm.firm == self.firm:
|
||||
partner = await Partner.get_by_user_id(self.db, user.id)
|
||||
partner_entity = await Entity.get(self.db, partner.entity_id)
|
||||
self.user = user
|
||||
self.db.user = user
|
||||
self.partner = partner_entity
|
||||
self.db.partner = partner_entity
|
||||
return
|
||||
|
||||
raise PermissionError
|
||||
@@ -30,9 +37,9 @@ async def get_tenant_registry(instance: str, firm: str, db_client=Depends(get_db
|
||||
|
||||
return registry
|
||||
|
||||
def get_authed_tenant_registry(registry=Depends(get_tenant_registry), user=Depends(get_current_user)) -> Registry:
|
||||
async def get_authed_tenant_registry(registry=Depends(get_tenant_registry), user=Depends(get_current_user)) -> Registry:
|
||||
try:
|
||||
registry.set_user(user)
|
||||
await registry.set_user(user)
|
||||
except PermissionError:
|
||||
raise HTTPException(status_code=404, detail="This firm doesn't exist or you are not allowed to access it.")
|
||||
|
||||
@@ -44,7 +51,7 @@ async def get_uninitialized_registry(instance: str, firm: str, db_client=Depends
|
||||
raise HTTPException(status_code=409, detail="Firm configuration already exists")
|
||||
|
||||
try:
|
||||
registry.set_user(user)
|
||||
await registry.set_user(user)
|
||||
except PermissionError:
|
||||
raise HTTPException(status_code=404, detail="This firm doesn't exist or you are not allowed to access it.")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user