add tenant logic
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
from app.db.cruddb.dbuser import userService
|
||||
from app.db.cruddb.dbdomain import domainService
|
||||
from app.db.cruddb.dbapp import appService
|
||||
from app.db.cruddb.dbapp import appService
|
||||
from app.db.cruddb.dbtenant import tenantService
|
||||
13
backend/app/db/cruddb/dbtenant.py
Normal file
13
backend/app/db/cruddb/dbtenant.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from app.db.cruddb.crudbase import crudbase
|
||||
from app.db import models, schemas
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
class dbtenant(crudbase):
|
||||
def __init__(self):
|
||||
super().__init__(model=models.Tenant)
|
||||
|
||||
def get_tenant(sefl,db:Session,tenantid: str):
|
||||
tenant = db.execute(super().get_by_conditions({"tenantid":tenantid})).scalars().first()
|
||||
return tenant
|
||||
|
||||
tenantService = dbtenant()
|
||||
@@ -1,7 +1,7 @@
|
||||
from sqlalchemy import Boolean, Column, Integer, String, DateTime,ForeignKey,Table
|
||||
from sqlalchemy.orm import Mapped,relationship,as_declarative,mapped_column
|
||||
from datetime import datetime
|
||||
from app.db.session import Base
|
||||
from app.db import Base
|
||||
from app.core.security import chacha20Decrypt
|
||||
|
||||
@as_declarative()
|
||||
@@ -34,6 +34,7 @@ class User(Base):
|
||||
hashed_password = mapped_column(String(200), nullable=False)
|
||||
is_active = mapped_column(Boolean, default=True)
|
||||
is_superuser = mapped_column(Boolean, default=False)
|
||||
tenantid = mapped_column(String(100))
|
||||
createuserid = mapped_column(Integer,ForeignKey("user.id"))
|
||||
updateuserid = mapped_column(Integer,ForeignKey("user.id"))
|
||||
createuser = relationship('User',foreign_keys=[createuserid])
|
||||
@@ -148,6 +149,7 @@ class Tenant(Base):
|
||||
licence = mapped_column(String(200))
|
||||
startdate = mapped_column(DateTime)
|
||||
enddate = mapped_column(DateTime)
|
||||
db = mapped_column(String(200))
|
||||
|
||||
|
||||
class Domain(Base):
|
||||
|
||||
@@ -51,6 +51,7 @@ class UserCreate(UserBase):
|
||||
last_name: str
|
||||
is_active:bool
|
||||
is_superuser:bool
|
||||
tenantid:t.Optional[str] = "1"
|
||||
createuserid:t.Optional[int] = None
|
||||
updateuserid:t.Optional[int] = None
|
||||
|
||||
|
||||
@@ -1,20 +1,37 @@
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import sessionmaker,declarative_base
|
||||
|
||||
from sqlalchemy.orm import sessionmaker, declarative_base, Session
|
||||
from app.core import config
|
||||
|
||||
engine = create_engine(
|
||||
config.SQLALCHEMY_DATABASE_URI,
|
||||
)
|
||||
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
|
||||
|
||||
Base = declarative_base()
|
||||
|
||||
# engine = create_engine(
|
||||
# config.SQLALCHEMY_DATABASE_URI,
|
||||
# )
|
||||
# SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
|
||||
|
||||
# Dependency
|
||||
def get_db():
|
||||
db = SessionLocal()
|
||||
class Database:
|
||||
def __init__(self, database_url: str):
|
||||
self.database_url = database_url
|
||||
self.engine = create_engine(self.database_url)
|
||||
self.SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=self.engine)
|
||||
self.Base = declarative_base()
|
||||
|
||||
def get_db(self):
|
||||
db =self.SessionLocal()
|
||||
return db
|
||||
|
||||
tenantdb = Database(config.SQLALCHEMY_DATABASE_URI)
|
||||
|
||||
|
||||
def get_tenant_db():
|
||||
db = tenantdb.get_db()
|
||||
try:
|
||||
yield db
|
||||
yield db
|
||||
finally:
|
||||
db.close()
|
||||
db.close()
|
||||
|
||||
def get_user_db(database_url: str):
|
||||
database = Database(database_url)
|
||||
db = database.get_db()
|
||||
return db
|
||||
|
||||
Reference in New Issue
Block a user