fix: use whitelist approach - only pass known table columns to sor.I

This commit is contained in:
yumoqing 2026-07-03 15:29:08 +08:00
parent 959d021537
commit 1d99375578

View File

@ -3,11 +3,13 @@ user_id = await get_user()
user_orgid = (await get_userorgid()) or '0'
dbname = get_module_dbname('supplychain')
data = dict(params_kw)
# Clean non-table params and _text suffix fields
for key in list(data.keys()):
if key.startswith('_') or key.endswith('_text') or key in ['page', 'rows', 'data_filter', 'pagerows', 'referer_widget']:
data.pop(key, None)
# Only keep known table columns
known_cols = {'contract_name', 'sign_date', 'start_date', 'end_date', 'status', 'default_discount', 'remark', 'supplier_id', 'contract_code'}
data = {}
for k, v in params_kw.items():
if k in known_cols and v is not None and v != '':
data[k] = v
data['id'] = getID()
data['resellerid'] = user_orgid
data['created_by'] = user_id