fix: get_data_tmpl 注入 logined 过滤条件到 data_filter
- 确保 logined_userorgid 和 logined_userid 始终作为过滤条件 - 统一 filterjson 为 AND 结构后追加 - 解决有 data_filter 时 ownerid/userid 隔离失效的问题
This commit is contained in:
parent
529025a5f4
commit
ebd4b4a99e
@ -159,6 +159,20 @@ ori_fields = json.loads(fields_str)
|
|||||||
if not filterjson:
|
if not filterjson:
|
||||||
fields = [ f['name'] for f in ori_fields ]
|
fields = [ f['name'] for f in ori_fields ]
|
||||||
filterjson = default_filterjson(fields, ns)
|
filterjson = default_filterjson(fields, ns)
|
||||||
|
{% if logined_userorgid or logined_userid %}
|
||||||
|
# 确保 logined 过滤条件始终生效
|
||||||
|
if filterjson:
|
||||||
|
if not isinstance(filterjson, dict) or 'AND' not in filterjson:
|
||||||
|
filterjson = {'AND': [filterjson] if filterjson else []}
|
||||||
|
{% if logined_userorgid %}
|
||||||
|
filterjson['AND'].append({'field': '{{logined_userorgid}}', 'op': '=', 'var': '__logined_orgid__'})
|
||||||
|
ns['__logined_orgid__'] = userorgid
|
||||||
|
{% endif %}
|
||||||
|
{% if logined_userid %}
|
||||||
|
filterjson['AND'].append({'field': '{{logined_userid}}', 'op': '=', 'var': '__logined_uid__'})
|
||||||
|
ns['__logined_uid__'] = userid
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
filterdic = ns.copy()
|
filterdic = ns.copy()
|
||||||
filterdic['filterstr'] = ''
|
filterdic['filterstr'] = ''
|
||||||
filterdic['userorgid'] = '${userorgid}$'
|
filterdic['userorgid'] = '${userorgid}$'
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user