fix: get_search_roleid return all roles so code uitype resolves display text correctly

This commit is contained in:
yumoqing 2026-07-16 17:34:20 +08:00
parent be26c6db98
commit cc245f4721

View File

@ -1,30 +1,12 @@
"""Return role options filtered by the current user's org_type. """Return all role options for dropdown and code display.
Used by userrole CRUD form to limit roleid dropdown to own org type roles.""" Used by userrole CRUD form and list view."""
userorgid = await get_userorgid()
if not userorgid:
return [{'value': '', 'text': '全部'}]
async with get_sor_context(request._run_ns, 'rbac') as sor: async with get_sor_context(request._run_ns, 'rbac') as sor:
# Get user's org_type recs = await sor.sqlExe(
org_recs = await sor.R('organization', {'id': userorgid}) "SELECT id, CONCAT(orgtypeid, '.', name) as name FROM role "
org_type = org_recs[0].org_type if org_recs else '' "WHERE id NOT IN ('anonymous', 'any', 'logined') "
"AND orgtypeid != '*' AND name != '*' "
# If no org_type or owner-type (org 0), show all roles "AND orgtypeid IS NOT NULL AND name IS NOT NULL "
if not org_type or userorgid == '0': "ORDER BY orgtypeid, name", {})
recs = await sor.sqlExe(
"SELECT id, CONCAT(orgtypeid, '.', name) as name FROM role "
"WHERE id NOT IN ('anonymous', 'any', 'logined') "
"AND orgtypeid != '*' AND name != '*' "
"AND orgtypeid IS NOT NULL AND name IS NOT NULL "
"ORDER BY orgtypeid, name", {})
else:
# Filter to user's org_type only
recs = await sor.sqlExe(
"SELECT id, CONCAT(orgtypeid, '.', name) as name FROM role "
"WHERE id NOT IN ('anonymous', 'any', 'logined') "
"AND orgtypeid = ${ot}$ AND name != '*' AND name IS NOT NULL "
"ORDER BY name",
{'ot': org_type})
result = [{'value': '', 'text': '全部'}] result = [{'value': '', 'text': '全部'}]
for r in recs: for r in recs: