Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 4 additions & 8 deletions backend/apps/system/api/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,6 @@ async def ws_change(session: SessionDep, current_user: CurrentUser, trans:Trans,
user_model: UserModel = get_db_user(session = session, user_id = current_user.id)
user_model.oid = oid
session.add(user_model)
session.commit()

@router.get("/{id}", response_model=UserEditor, summary=f"{PLACEHOLDER_PREFIX}user_detail_api", description=f"{PLACEHOLDER_PREFIX}user_detail_api")
@require_permissions(permission=SqlbotPermission(role=['admin']))
Expand All @@ -142,6 +141,9 @@ async def query(session: SessionDep, trans: Trans, id: int = Path(description=f"

@router.post("", summary=f"{PLACEHOLDER_PREFIX}user_create_api", description=f"{PLACEHOLDER_PREFIX}user_create_api")
@require_permissions(permission=SqlbotPermission(role=['admin']))
async def user_create(session: SessionDep, creator: UserCreator, trans: Trans):
await create(session=session, creator=creator, trans=trans)

async def create(session: SessionDep, creator: UserCreator, trans: Trans):
if check_account_exists(session=session, account=creator.account):
raise Exception(trans('i18n_exist', msg = f"{trans('i18n_user.account')} [{creator.account}]"))
Expand All @@ -167,7 +169,6 @@ async def create(session: SessionDep, creator: UserCreator, trans: Trans):
session.add_all(db_model_list)
user_model.oid = creator.oid_list[0]
session.add(user_model)
session.commit()


@router.put("", summary=f"{PLACEHOLDER_PREFIX}user_update_api", description=f"{PLACEHOLDER_PREFIX}user_update_api")
Expand Down Expand Up @@ -204,7 +205,6 @@ async def update(session: SessionDep, editor: UserEditor, trans: Trans):
session.add_all(db_model_list)
user_model.oid = origin_oid if origin_oid in editor.oid_list else editor.oid_list[0]
session.add(user_model)
session.commit()

@router.delete("/{id}", summary=f"{PLACEHOLDER_PREFIX}user_del_api", description=f"{PLACEHOLDER_PREFIX}user_del_api")
@require_permissions(permission=SqlbotPermission(role=['admin']))
Expand All @@ -226,7 +226,6 @@ async def langChange(session: SessionDep, current_user: CurrentUser, trans: Tran
db_user: UserModel = get_db_user(session=session, user_id=current_user.id)
db_user.language = lang
session.add(db_user)
session.commit()


@router.patch("/pwd/{id}", summary=f"{PLACEHOLDER_PREFIX}reset_pwd", description=f"{PLACEHOLDER_PREFIX}reset_pwd")
Expand All @@ -238,7 +237,6 @@ async def pwdReset(session: SessionDep, current_user: CurrentUser, trans: Trans,
db_user: UserModel = get_db_user(session=session, user_id=id)
db_user.password = default_md5_pwd()
session.add(db_user)
session.commit()

@router.put("/pwd", summary=f"{PLACEHOLDER_PREFIX}update_pwd", description=f"{PLACEHOLDER_PREFIX}update_pwd")
@clear_cache(namespace=CacheNamespace.AUTH_INFO, cacheName=CacheName.USER_INFO, keyExpression="current_user.id")
Expand All @@ -251,7 +249,6 @@ async def pwdUpdate(session: SessionDep, current_user: CurrentUser, trans: Trans
raise Exception(trans('i18n_error', key = trans('i18n_user.password')))
db_user.password = md5pwd(new_pwd)
session.add(db_user)
session.commit()


@router.patch("/status", summary=f"{PLACEHOLDER_PREFIX}update_status", description=f"{PLACEHOLDER_PREFIX}update_status")
Expand All @@ -265,5 +262,4 @@ async def statusChange(session: SessionDep, current_user: CurrentUser, trans: Tr
return {"message": "status not supported"}
db_user: UserModel = get_db_user(session=session, user_id=statusDto.id)
db_user.status = status
session.add(db_user)
session.commit()
session.add(db_user)
10 changes: 3 additions & 7 deletions backend/apps/system/api/workspace.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,10 +141,12 @@ async def create(session: SessionDep, current_user: CurrentUser, trans: Trans, c
await clean_user_cache(uid)

session.add_all(db_model_list)
session.commit()

@router.put("/uws", summary=f"{PLACEHOLDER_PREFIX}ws_user_status_api", description=f"{PLACEHOLDER_PREFIX}ws_user_status_api")
@require_permissions(permission=SqlbotPermission(role=['admin']))
async def uws_edit(session: SessionDep, trans: Trans, editor: UserWsEditor):
await edit(session, trans, editor)

async def edit(session: SessionDep, trans: Trans, editor: UserWsEditor):
if not editor.oid or not editor.uid:
raise Exception(trans('i18n_miss_args', key = '[oid, uid]'))
Expand All @@ -158,7 +160,6 @@ async def edit(session: SessionDep, trans: Trans, editor: UserWsEditor):
session.add(db_model)

await clean_user_cache(editor.uid)
session.commit()

@router.delete("/uws", summary=f"{PLACEHOLDER_PREFIX}ws_user_unbind_api", description=f"{PLACEHOLDER_PREFIX}ws_user_unbind_api")
@require_permissions(permission=SqlbotPermission(role=['ws_admin']))
Expand All @@ -176,8 +177,6 @@ async def delete(session: SessionDep, current_user: CurrentUser, trans: Trans, d
await reset_single_user_oid(session, uid, oid, False)
await clean_user_cache(uid)

session.commit()

@router.get("", response_model=list[WorkspaceModel], summary=f"{PLACEHOLDER_PREFIX}ws_all_api", description=f"{PLACEHOLDER_PREFIX}ws_all_api")
@require_permissions(permission=SqlbotPermission(role=['admin']))
async def query(session: SessionDep, trans: Trans):
Expand All @@ -194,7 +193,6 @@ async def add(session: SessionDep, creator: WorkspaceBase):
db_model = WorkspaceModel.model_validate(creator)
db_model.create_time = get_timestamp()
session.add(db_model)
session.commit()

@router.put("", summary=f"{PLACEHOLDER_PREFIX}ws_update_api", description=f"{PLACEHOLDER_PREFIX}ws_update_api")
@require_permissions(permission=SqlbotPermission(role=['admin']))
Expand All @@ -205,7 +203,6 @@ async def update(session: SessionDep, editor: WorkspaceEditor):
raise HTTPException(f"WorkspaceModel with id {id} not found")
db_model.name = editor.name
session.add(db_model)
session.commit()

@router.get("/{id}", response_model=WorkspaceModel, summary=f"{PLACEHOLDER_PREFIX}ws_query_api", description=f"{PLACEHOLDER_PREFIX}ws_query_api")
@require_permissions(permission=SqlbotPermission(role=['admin']))
Expand Down Expand Up @@ -245,6 +242,5 @@ async def single_delete(session: SessionDep, current_user: CurrentUser, id: int
session.exec(sqlmodel_delete(UserWsModel).where(UserWsModel.oid == id))

session.delete(db_model)
session.commit()


9 changes: 8 additions & 1 deletion backend/common/core/db.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,14 @@

def get_session():
with Session(engine) as session:
yield session
try:
yield session
session.commit()
except Exception:
session.rollback()
raise
finally:
session.close()


def init_db():
Expand Down