bugfix set user default domain

This commit is contained in:
2024-12-08 17:05:04 +09:00
parent 91df7ed0fa
commit 198e442292
4 changed files with 63 additions and 27 deletions

View File

@@ -434,7 +434,7 @@ async def get_defaultuserdomain(
response_model=ApiReturnModel[DomainOut|None], response_model=ApiReturnModel[DomainOut|None],
response_model_exclude_none=True, response_model_exclude_none=True,
) )
async def update_activeuserdomain( async def set_defualtuserdomain(
request: Request, request: Request,
domainid:int, domainid:int,
user=Depends(get_current_active_user), user=Depends(get_current_active_user),

View File

@@ -117,20 +117,29 @@ class dbdomain(crudbase):
return None return None
def set_default_domain(self,db: Session, userid: int,domainid: int): def set_default_domain(self,db: Session, userid: int,domainid: int):
db_domain =super().get_by_conditions(db,{"id":domainid,"is_active":True}).first() db_domain =db.execute(super().get_by_conditions({"id":domainid,"is_active":True})).scalars().first()
if db_domain: if db_domain:
db_default_domain = dbuserdomain.get_user_default_domain(db,userid) db_default_domain = dbuserdomain.get_user_default_domain(db,userid)
db_userdomain =dbuserdomain.get_userdomain(db,userid,domainid) db_userdomain =dbuserdomain.get_userdomain(db,userid,domainid)
if db_default_domain: if db_default_domain:
db_default_domain.is_default = False if db_default_domain.domainid != domainid:
db_default_domain.updateuserid = userid db_default_domain.is_default = False
db.add(db_default_domain) db_default_domain.updateuserid = userid
db.add(db_default_domain)
else:
return db_domain
if db_userdomain: if db_userdomain:
db_userdomain.is_default = True db_userdomain.is_default = True
db_userdomain.updateuserid = userid db_userdomain.updateuserid = userid
db.add(db_userdomain) db.add(db_userdomain)
else:
db_userdomain = dbuserdomain.create(db,schemas.UserDomainIn(domainid=domainid,userid=userid,is_default = True))
db.add(db_userdomain)
db.commit() db.commit()
return db_domain return db_domain
else:
return None
def get_shareddomain_users(self,db: Session,ownerid:int,domainid: int) -> ApiReturnPage[models.Base]: def get_shareddomain_users(self,db: Session,ownerid:int,domainid: int) -> ApiReturnPage[models.Base]:
users = db.query(models.User).join(models.UserDomain,models.UserDomain.userid == models.User.id).filter(models.UserDomain.domainid ==domainid) users = db.query(models.User).join(models.UserDomain,models.UserDomain.userid == models.User.id).filter(models.UserDomain.domainid ==domainid)

View File

@@ -192,6 +192,11 @@ class UserDomain(BaseModel):
domain:DomainOut domain:DomainOut
user:UserOut user:UserOut
class UserDomainIn(BaseModel):
is_default: bool
domainid:int
userid:int
class Domain(Base): class Domain(Base):
id: int id: int
tenantid: str tenantid: str

View File

@@ -27,25 +27,6 @@ def test_create_domain(test_client, login_user,login_user_id):
assert data["data"]["is_active"] == create_domain["is_active"] assert data["data"]["is_active"] == create_domain["is_active"]
assert data["data"]["owner"]["id"] == login_user_id assert data["data"]["owner"]["id"] == login_user_id
def test_edit_domain(test_client, test_domain, login_user):
update_domain ={
"id": test_domain.id,
"tenantid": "1",
"name": "テスト環境abc",
"url": test_domain.url,
"kintoneuser": test_domain.kintoneuser,
"is_active": True
}
response = test_client.put("/api/domain", json=update_domain,headers={"Authorization": "Bearer " + login_user})
assert response.status_code == 200
data = response.json()
assert data["data"]["name"] == update_domain["name"]
assert data["data"]["name"] == update_domain["name"]
assert data["data"]["url"] == update_domain["url"]
assert data["data"]["kintoneuser"] == update_domain["kintoneuser"]
assert data["data"]["is_active"] == update_domain["is_active"]
def test_delete_domain(test_client, login_user): def test_delete_domain(test_client, login_user):
delete_domain ={ delete_domain ={
"id": 0, "id": 0,
@@ -68,3 +49,44 @@ def test_delete_domain(test_client, login_user):
response = test_client.get("/api/domain/"+ str(id), headers={"Authorization": "Bearer " + login_user}) response = test_client.get("/api/domain/"+ str(id), headers={"Authorization": "Bearer " + login_user})
assert response.status_code == 200 assert response.status_code == 200
assert "data" not in response.json() assert "data" not in response.json()
def test_set_defaultuserdomain(test_client, test_domain,login_user):
response = test_client.put("/api/defaultdomain/"+str(test_domain.id), headers={"Authorization": "Bearer " + login_user})
assert response.status_code == 200
data = response.json()
assert "data" in data
assert data["data"] is not None
assert data["data"]["name"] == test_domain.name
assert data["data"]["url"] == test_domain.url
assert data["data"]["kintoneuser"] == test_domain.kintoneuser
assert data["data"]["is_active"] == test_domain.is_active
def test_get_defaultuserdomain(test_client, test_domain,login_user):
response = test_client.get("/api/defaultdomain", headers={"Authorization": "Bearer " + login_user})
assert response.status_code == 200
data = response.json()
assert data["data"]["name"] == test_domain.name
assert data["data"]["url"] == test_domain.url
assert data["data"]["kintoneuser"] == test_domain.kintoneuser
assert data["data"]["is_active"] == test_domain.is_active
def test_edit_domain(test_client, test_domain, login_user):
update_domain ={
"id": test_domain.id,
"tenantid": "1",
"name": "テスト環境abc",
"url": test_domain.url,
"kintoneuser": test_domain.kintoneuser,
"is_active": True
}
response = test_client.put("/api/domain", json=update_domain,headers={"Authorization": "Bearer " + login_user})
assert response.status_code == 200
data = response.json()
assert data["data"]["name"] == update_domain["name"]
assert data["data"]["url"] == update_domain["url"]
assert data["data"]["kintoneuser"] == update_domain["kintoneuser"]
assert data["data"]["is_active"] == update_domain["is_active"]