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:
|
||||
fields = [ f['name'] for f in ori_fields ]
|
||||
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['filterstr'] = ''
|
||||
filterdic['userorgid'] = '${userorgid}$'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user