Skip to content

Commit 2155a8a

Browse files
committed
Merge branch 'main' of https://github.com/dataease/SQLBot
2 parents 8439708 + 89171a9 commit 2155a8a

File tree

4 files changed

+24
-13
lines changed

4 files changed

+24
-13
lines changed

backend/apps/system/api/workspace.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from typing import Optional
2-
from fastapi import APIRouter, Query
2+
from fastapi import APIRouter, HTTPException, Query
33
from sqlmodel import exists, or_, select
44
from apps.system.models.system_model import UserWsModel, WorkspaceBase, WorkspaceEditor, WorkspaceModel
55
from apps.system.models.user import UserModel
@@ -105,11 +105,14 @@ async def pager(
105105

106106

107107
@router.post("/uws")
108-
async def create(session: SessionDep, creator: UserWsDTO):
108+
async def create(session: SessionDep, current_user: CurrentUser, creator: UserWsDTO):
109+
if not current_user.isAdmin and current_user.weight == 0:
110+
raise HTTPException("no permission to execute")
111+
oid: int = creator.oid if current_user.isAdmin else current_user.oid
109112
# 判断uid_list以及oid合法性
110113
db_model_list = [
111114
UserWsModel.model_validate({
112-
"oid": creator.oid,
115+
"oid": oid,
113116
"uid": uid,
114117
"weight": creator.weight
115118
})
@@ -133,10 +136,13 @@ async def edit(session: SessionDep, editor: UserWsEditor):
133136
session.commit()
134137

135138
@router.delete("/uws")
136-
async def delete(session: SessionDep, dto: UserWsBase):
137-
db_model_list: list[UserWsModel] = session.exec(select(UserWsModel).where(UserWsModel.uid.in_(dto.uid_list), UserWsModel.oid == dto.oid)).all()
139+
async def delete(session: SessionDep, current_user: CurrentUser, dto: UserWsBase):
140+
if not current_user.isAdmin and current_user.weight == 0:
141+
raise HTTPException("no permission to execute")
142+
oid: int = dto.oid if current_user.isAdmin else current_user.oid
143+
db_model_list: list[UserWsModel] = session.exec(select(UserWsModel).where(UserWsModel.uid.in_(dto.uid_list), UserWsModel.oid == oid)).all()
138144
if not db_model_list:
139-
raise ValueError(f"UserWsModel not found")
145+
raise HTTPException(f"UserWsModel not found")
140146
for db_model in db_model_list:
141147
session.delete(db_model)
142148
session.commit()

backend/apps/system/schemas/system_schema.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class PwdEditor(BaseModel):
4848

4949
class UserWsBase(BaseModel):
5050
uid_list: list[int]
51-
oid: int
51+
oid: Optional[int] = None
5252
class UserWsDTO(UserWsBase):
5353
weight: int = 0
5454

backend/template.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ template:
55
根据表结构和问题生成符合{engine}数据库引擎规范的sql语句,以及sql中所用到的表名(不要包含schema和database,用数组返回)。
66
你必须遵守以下规则:
77
- 生成的SQL必须符合{engine}的规范。
8-
- 根据表结构生成SQL语句。
8+
- 根据表结构生成SQL语句,需给每个表名生成一个别名(不要加AS)
99
- SQL查询中不能使用星号(*),必须明确指定字段名.
1010
- SQL查询的字段名不要自动翻译,别名必须为英文。
1111
- 计算占比,百分比类型字段,保留两位小数,以%结尾。
@@ -174,6 +174,7 @@ template:
174174
- 生成的SQL必须符合{engine}的规范。
175175
- 不要替换原来SQL中的过滤条件,将新过滤条件添加到SQL中,生成一个新的sql。
176176
- 如果存在冗余的过滤条件则进行去重后再生成新SQL。
177+
- 给过滤条件中的字段前加上表别名(如果没有表别名则加表名),如:table.field。
177178
- 生成SQL时,必须避免关键字冲突:
178179
- 如数据库引擎是 PostgreSQL、Oracle,则在schema、表名、字段名、别名外层加双引号;
179180
- 如数据库引擎是 MySQL,则在表名、字段名、别名外层加反引号;

frontend/src/views/chat/index.vue

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
/>
4848
</el-popover>
4949
<el-tooltip effect="dark" :content="t('qa.new_chat')" placement="bottom">
50-
<el-button link type="primary" class="icon-btn" @click="createNewChat">
50+
<el-button link type="primary" class="icon-btn" @click="createNewChatSimple">
5151
<el-icon>
5252
<icon_new_chat_outlined />
5353
</el-icon>
@@ -73,7 +73,7 @@
7373
size="large"
7474
type="primary"
7575
class="greeting-btn"
76-
@click="createNewChat"
76+
@click="createNewChatSimple"
7777
>
7878
<span class="inner-icon">
7979
<el-icon>
@@ -299,6 +299,12 @@ const goEmpty = () => {
299299
inputMessage.value = ''
300300
}
301301
302+
const createNewChatSimple = async () => {
303+
currentChat.value = new ChatInfo()
304+
currentChatId.value = undefined
305+
await createNewChat()
306+
}
307+
302308
const createNewChat = async () => {
303309
goEmpty()
304310
if (isAssistant.value) {
@@ -760,9 +766,7 @@ defineExpose({
760766
align-items: center;
761767
762768
.welcome-content {
763-
padding: 12px;
764-
765-
width: fit-content;
769+
width: 100%;
766770
max-width: 800px;
767771
display: flex;
768772
gap: 16px;

0 commit comments

Comments
 (0)