Skip to content

Commit db7fbca

Browse files
perf: User status api
1 parent c4188a0 commit db7fbca

File tree

5 files changed

+32
-13
lines changed

5 files changed

+32
-13
lines changed

backend/apps/system/api/user.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from apps.system.models.system_model import UserWsModel
66
from apps.system.models.user import UserModel
77
from apps.system.schemas.auth import CacheName, CacheNamespace
8-
from apps.system.schemas.system_schema import PwdEditor, UserCreator, UserEditor, UserGrid, UserLanguage, UserWs
8+
from apps.system.schemas.system_schema import PwdEditor, UserCreator, UserEditor, UserGrid, UserLanguage, UserStatus, UserWs
99
from common.core.deps import CurrentUser, SessionDep, Trans
1010
from common.core.pagination import Paginator
1111
from common.core.schemas import PaginatedResponse, PaginationParams
@@ -218,4 +218,17 @@ async def pwdUpdate(session: SessionDep, current_user: CurrentUser, editor: PwdE
218218
raise Exception(f"pwd [{editor.pwd}] error")
219219
db_user.password = md5pwd(new_pwd)
220220
session.add(db_user)
221+
session.commit()
222+
223+
@router.patch("/status")
224+
@clear_cache(namespace=CacheNamespace.AUTH_INFO, cacheName=CacheName.USER_INFO, keyExpression="statusDto.id")
225+
async def langChange(session: SessionDep, current_user: CurrentUser, statusDto: UserStatus):
226+
if not current_user.isAdmin:
227+
raise Exception("no permission to execute")
228+
status = statusDto.status
229+
if status not in [0, 1]:
230+
return {"message": "status not supported"}
231+
db_user: UserModel = get_db_user(session=session, user_id=statusDto.id)
232+
db_user.status = status
233+
session.add(db_user)
221234
session.commit()

backend/apps/system/schemas/system_schema.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
r"(?=.*[~!@#$%^&*()_+\-={}|:\"<>?`\[\];',./])"
1515
r"[A-Za-z\d~!@#$%^&*()_+\-={}|:\"<>?`\[\];',./]{8,20}$"
1616
)
17-
class model_status(BaseModel):
18-
status: bool
19-
ids: list[int]
17+
class UserStatus(BaseCreatorDTO):
18+
status: int = 1
19+
2020

2121

2222
class UserLanguage(BaseModel):

frontend/src/api/user.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,5 @@ export const userApi = {
2525
deleteBatch: (data: any) => request.delete(`/user`, { data }),
2626
get: (key: string) => request.get(`/user/${key}`),
2727
pwd: (id: any) => request.patch(`/user/pwd/${id}`),
28+
status: (data: any) => request.patch('/user/status', data),
2829
}

frontend/src/views/system/embedded/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ const handleEmbedded = (row: any) => {
359359
scriptElement.value = `g-#script
360360
async
361361
defer
362-
id="${row.id}"
362+
id="sqlbot-assistant-float-script-${row.id}"
363363
src="${origin + pathname}assistant.js?id=${row.id}"k-*g-#/scriptk-*`
364364
.replaceAll('g-#', '<')
365365
.replaceAll('k-*', '>')

frontend/src/views/system/user/User.vue

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,17 +124,17 @@
124124
</el-icon>
125125
</el-tooltip>
126126
<el-popover
127+
:ref="
128+
(el: any) => {
129+
setPopoverRef(el, scope.row)
130+
}
131+
"
127132
placement="right"
128133
virtual-triggering
129134
:width="300"
130135
:virtual-ref="scope.row.buttonRef"
131136
trigger="click"
132137
show-arrow
133-
:ref="
134-
(el: any) => {
135-
setPopoverRef(el, scope.row)
136-
}
137-
"
138138
>
139139
<div class="reset-pwd-confirm">
140140
<div class="confirm-header">
@@ -147,7 +147,7 @@
147147
</div>
148148
<div class="confirm-content">
149149
<span>SQLBot@123456</span>
150-
<el-button @click="copyText" style="margin-left: 4px" text>{{
150+
<el-button style="margin-left: 4px" text @click="copyText">{{
151151
t('datasource.copy')
152152
}}</el-button>
153153
</div>
@@ -620,8 +620,13 @@ const editHandler = (row: any) => {
620620
}
621621
622622
const statusHandler = (row: any) => {
623-
state.form = { ...row }
624-
editTerm()
623+
/* state.form = { ...row }
624+
editTerm() */
625+
const param = {
626+
id: row.id,
627+
status: row.status,
628+
}
629+
userApi.status(param)
625630
}
626631
627632
const cancelDelete = () => {

0 commit comments

Comments
 (0)