feat: modify permission

This commit is contained in:
junjun
2025-07-21 15:12:37 +08:00
parent 2be094a380
commit 38f6e694b5
3 changed files with 7 additions and 5 deletions
+3 -2
View File
@@ -11,7 +11,7 @@ import requests
from langchain.chat_models.base import BaseChatModel
from langchain_community.utilities import SQLDatabase
from langchain_core.messages import BaseMessage, SystemMessage, HumanMessage, AIMessage, BaseMessageChunk
from sqlalchemy import and_, cast
from sqlalchemy import and_, cast, or_
from sqlalchemy import select
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.orm import load_only
@@ -489,7 +489,8 @@ class LLMService:
# check permission and user in same rules
obj = self.session.query(DsRules).filter(
and_(DsRules.permission_list.op('@>')(cast([permission.id], JSONB)),
DsRules.user_list.op('@>')(cast([self.current_user.id], JSONB)))
or_(DsRules.user_list.op('@>')(cast([f'{self.current_user.id}'], JSONB)),
DsRules.user_list.op('@>')(cast([self.current_user.id], JSONB))))
).first()
if obj is not None:
res.append(transRecord2DTO(self.session, permission))
+3 -2
View File
@@ -3,7 +3,7 @@ import json
from typing import List
from fastapi import HTTPException
from sqlalchemy import and_, text, cast
from sqlalchemy import and_, text, cast, or_
from sqlalchemy.dialects.postgresql import JSONB
from sqlbot_xpack.permissions.models.ds_permission import DsPermission
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
# check permission and user in same rules
obj = session.query(DsRules).filter(
and_(DsRules.permission_list.op('@>')(cast([permission.id], JSONB)),
DsRules.user_list.op('@>')(cast([current_user.id], JSONB)))
or_(DsRules.user_list.op('@>')(cast([f'{current_user.id}'], JSONB)),
DsRules.user_list.op('@>')(cast([current_user.id], JSONB))))
).first()
if obj is not None:
permission_list = json.loads(permission.permissions)
+1 -1
View File
@@ -36,7 +36,7 @@ dependencies = [
"pyyaml (>=6.0.2,<7.0.0)",
"fastapi-mcp (>=0.3.4,<0.4.0)",
"tabulate>=0.9.0",
"sqlbot-xpack==0.0.3.5",
"sqlbot-xpack==0.0.3.6",
"fastapi-cache2>=0.2.2",
"sqlparse>=0.5.3",
]