Skip to content

Commit 38f6e69

Browse files
committed
feat: modify permission
1 parent 2be094a commit 38f6e69

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed

backend/apps/chat/task/llm.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from langchain.chat_models.base import BaseChatModel
1212
from langchain_community.utilities import SQLDatabase
1313
from langchain_core.messages import BaseMessage, SystemMessage, HumanMessage, AIMessage, BaseMessageChunk
14-
from sqlalchemy import and_, cast
14+
from sqlalchemy import and_, cast, or_
1515
from sqlalchemy import select
1616
from sqlalchemy.dialects.postgresql import JSONB
1717
from sqlalchemy.orm import load_only
@@ -489,7 +489,8 @@ def generate_filter(self, sql: str, tables: List):
489489
# check permission and user in same rules
490490
obj = self.session.query(DsRules).filter(
491491
and_(DsRules.permission_list.op('@>')(cast([permission.id], JSONB)),
492-
DsRules.user_list.op('@>')(cast([self.current_user.id], JSONB)))
492+
or_(DsRules.user_list.op('@>')(cast([f'{self.current_user.id}'], JSONB)),
493+
DsRules.user_list.op('@>')(cast([self.current_user.id], JSONB))))
493494
).first()
494495
if obj is not None:
495496
res.append(transRecord2DTO(self.session, permission))

backend/apps/datasource/crud/datasource.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from typing import List
44

55
from fastapi import HTTPException
6-
from sqlalchemy import and_, text, cast
6+
from sqlalchemy import and_, text, cast, or_
77
from sqlalchemy.dialects.postgresql import JSONB
88
from sqlbot_xpack.permissions.models.ds_permission import DsPermission
99
from sqlbot_xpack.permissions.models.ds_rules import DsRules
@@ -295,7 +295,8 @@ def get_table_obj_by_ds(session: SessionDep, current_user: CurrentUser, ds: Core
295295
# check permission and user in same rules
296296
obj = session.query(DsRules).filter(
297297
and_(DsRules.permission_list.op('@>')(cast([permission.id], JSONB)),
298-
DsRules.user_list.op('@>')(cast([current_user.id], JSONB)))
298+
or_(DsRules.user_list.op('@>')(cast([f'{current_user.id}'], JSONB)),
299+
DsRules.user_list.op('@>')(cast([current_user.id], JSONB))))
299300
).first()
300301
if obj is not None:
301302
permission_list = json.loads(permission.permissions)

backend/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ dependencies = [
3636
"pyyaml (>=6.0.2,<7.0.0)",
3737
"fastapi-mcp (>=0.3.4,<0.4.0)",
3838
"tabulate>=0.9.0",
39-
"sqlbot-xpack==0.0.3.5",
39+
"sqlbot-xpack==0.0.3.6",
4040
"fastapi-cache2>=0.2.2",
4141
"sqlparse>=0.5.3",
4242
]

0 commit comments

Comments
 (0)