add manage domain function
This commit is contained in:
@@ -31,6 +31,18 @@ class dbuserdomain(crudbase):
|
||||
|
||||
dbuserdomain = dbuserdomain()
|
||||
|
||||
class dbmanagedomain(crudbase):
|
||||
def __init__(self):
|
||||
super().__init__(model=models.ManageDomain)
|
||||
|
||||
def get_managedomain(self,db: Session,userid:int,domainid:int):
|
||||
return db.execute(super().get_by_conditions({"userid":userid,"domainid":domainid})).scalars().first()
|
||||
|
||||
def get_managedomain_by_domain(self,db: Session,domainid:int):
|
||||
return db.execute(super().get_by_conditions({"domainid":domainid})).scalars().all()
|
||||
|
||||
dbmanagedomain = dbmanagedomain()
|
||||
|
||||
class dbdomain(crudbase):
|
||||
def __init__(self):
|
||||
super().__init__(model=models.Domain)
|
||||
@@ -38,6 +50,10 @@ class dbdomain(crudbase):
|
||||
def get_domains(self,db: Session)-> ApiReturnPage[models.Base]:
|
||||
return paginate(db,super().get_all())
|
||||
|
||||
def get_domains_by_manage(self,db: Session,userid:int)-> ApiReturnPage[models.Base]:
|
||||
query = select(models.Domain).join(models.ManageDomain,models.ManageDomain.domainid == models.Domain.id).where(models.ManageDomain.userid == userid)
|
||||
return paginate(db,query)
|
||||
|
||||
def get_domains_by_owner(self,db: Session,ownerid:int)-> ApiReturnPage[models.Base]:
|
||||
return paginate(db,super().get_by_conditions({"ownerid":ownerid}))
|
||||
|
||||
@@ -45,14 +61,31 @@ class dbdomain(crudbase):
|
||||
#db_domain = super().get_by_conditions(db,{"url":domain.url,"kintoneuser":domain.kintoneuser,"onwerid":userid}).first()
|
||||
#if not db_domain:
|
||||
domain.encrypt_kintonepwd()
|
||||
domain.id = None
|
||||
domain.createuserid = userid
|
||||
domain.updateuserid = userid
|
||||
domain.ownerid = userid
|
||||
return super().create(db,domain)
|
||||
#return db_domain
|
||||
db_domain = models.Domain(
|
||||
tenantid = domain.tenantid,
|
||||
name = domain.name,
|
||||
url = domain.url,
|
||||
kintoneuser = domain.kintoneuser,
|
||||
kintonepwd = domain.kintonepwd,
|
||||
is_active = domain.is_active,
|
||||
createuserid = userid,
|
||||
updateuserid = userid,
|
||||
ownerid = userid
|
||||
)
|
||||
db.add(db_domain)
|
||||
db.flush()
|
||||
user_domain = models.UserDomain(userid = userid, domainid = db_domain.id ,createuserid = userid,updateuserid = userid)
|
||||
db.add(user_domain)
|
||||
manage_domain = models.ManageDomain(userid = userid, domainid = db_domain.id ,createuserid = userid,updateuserid = userid)
|
||||
db.add(manage_domain)
|
||||
db.commit()
|
||||
db.refresh(db_domain)
|
||||
return db_domain
|
||||
|
||||
def delete_domain(self,db: Session,id: int):
|
||||
db_managedomains = dbmanagedomain.get_managedomain_by_domain(db,id)
|
||||
for manage in db_managedomains:
|
||||
db.delete(manage)
|
||||
return super().delete(db,id)
|
||||
|
||||
def edit_domain(self,db: Session, domain: schemas.DomainIn,userid:int) -> schemas.DomainOut:
|
||||
@@ -90,7 +123,7 @@ class dbdomain(crudbase):
|
||||
return None
|
||||
|
||||
def add_userdomain_by_owner(self,db: Session,ownerid:int, userid:int,domainid:int) -> schemas.DomainOut:
|
||||
db_domain = super().get_by_conditions(db,{"id":domainid,"ownerid":ownerid,"is_active":True}).first()
|
||||
db_domain = db.execute(super().get_by_conditions({"id":domainid,"is_active":True})).scalars().first()
|
||||
if db_domain:
|
||||
db_userdomain = dbuserdomain.get_userdomain(db,userid,domainid)
|
||||
if not db_userdomain:
|
||||
@@ -141,8 +174,45 @@ class dbdomain(crudbase):
|
||||
return None
|
||||
|
||||
|
||||
def get_shareddomain_users(self,db: Session,ownerid:int,domainid: int) -> ApiReturnPage[models.Base]:
|
||||
def get_shareddomain_users(self,db: Session,domainid: int) -> ApiReturnPage[models.Base]:
|
||||
users = select(models.User).join(models.UserDomain,models.UserDomain.userid == models.User.id).filter(models.UserDomain.domainid ==domainid)
|
||||
return paginate(db,users)
|
||||
|
||||
|
||||
def add_managedomain(self,db: Session,ownerid:int,userid:int,domainid:int) -> schemas.DomainOut:
|
||||
db_domain = self.get_domains_by_owner
|
||||
if db_domain:
|
||||
db_managedomain = dbmanagedomain.get_managedomain(db,userid,domainid)
|
||||
if not db_managedomain:
|
||||
manage_domain = models.ManageDomain(userid = userid, domainid = domainid ,createuserid = ownerid,updateuserid = ownerid)
|
||||
db.add(manage_domain)
|
||||
db.commit()
|
||||
return db_domain
|
||||
return None
|
||||
|
||||
def add_managedomain_by_owner(self,db: Session,ownerid:int, userid:int,domainid:int) -> schemas.DomainOut:
|
||||
db_domain = db.execute(super().get_by_conditions({"id":domainid,"ownerid":ownerid,})).scalars().first()
|
||||
if db_domain:
|
||||
db_managedomain = dbmanagedomain.get_managedomain(db,userid,domainid)
|
||||
if not db_managedomain:
|
||||
manage_domain = models.ManageDomain(userid = userid, domainid = domainid ,createuserid =ownerid,updateuserid = ownerid)
|
||||
db.add(manage_domain)
|
||||
db.commit()
|
||||
return db_domain
|
||||
return None
|
||||
|
||||
def delete_managedomain(self,db: Session, userid: int,domainid: int) -> schemas.DomainOut:
|
||||
db_managedomain = dbmanagedomain.get_managedomain(db,userid,domainid)
|
||||
if db_managedomain:
|
||||
domain = db_managedomain.domain
|
||||
if domain.ownerid != userid:
|
||||
db.delete(db_managedomain)
|
||||
db.commit()
|
||||
return domain
|
||||
return None
|
||||
|
||||
def get_managedomain_users(self,db: Session,domainid: int) -> ApiReturnPage[models.Base]:
|
||||
users = select(models.User).join(models.ManageDomain,models.ManageDomain.userid == models.User.id).where(models.ManageDomain.domainid ==domainid)
|
||||
return paginate(db,users)
|
||||
|
||||
domainService = dbdomain()
|
||||
@@ -183,6 +183,18 @@ class UserDomain(Base):
|
||||
createuser = relationship('User',foreign_keys=[createuserid])
|
||||
updateuser = relationship('User',foreign_keys=[updateuserid])
|
||||
|
||||
class ManageDomain(Base):
|
||||
__tablename__ = "managedomain"
|
||||
|
||||
userid = mapped_column(Integer,ForeignKey("user.id"))
|
||||
domainid = mapped_column(Integer,ForeignKey("domain.id"))
|
||||
createuserid = mapped_column(Integer,ForeignKey("user.id"))
|
||||
updateuserid = mapped_column(Integer,ForeignKey("user.id"))
|
||||
domain = relationship("Domain")
|
||||
user = relationship("User",foreign_keys=[userid])
|
||||
createuser = relationship('User',foreign_keys=[createuserid])
|
||||
updateuser = relationship('User',foreign_keys=[updateuserid])
|
||||
|
||||
class Event(Base):
|
||||
__tablename__ = "event"
|
||||
|
||||
|
||||
@@ -192,6 +192,10 @@ class DomainOut(BaseModel):
|
||||
class ConfigDict:
|
||||
orm_mode = True
|
||||
|
||||
class UserDomainParam(BaseModel):
|
||||
userid:int
|
||||
domainid:int
|
||||
|
||||
class UserDomain(BaseModel):
|
||||
id: int
|
||||
is_default: bool
|
||||
|
||||
Reference in New Issue
Block a user