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
org_recs = await sor.R('organization', {'id': userorgid})
org_type = org_recs[0].org_type if org_recs else ''
# If no org_type or owner-type (org 0), show all roles
if not org_type or userorgid == '0':
recs = await sor.sqlExe( recs = await sor.sqlExe(
"SELECT id, CONCAT(orgtypeid, '.', name) as name FROM role " "SELECT id, CONCAT(orgtypeid, '.', name) as name FROM role "
"WHERE id NOT IN ('anonymous', 'any', 'logined') " "WHERE id NOT IN ('anonymous', 'any', 'logined') "
"AND orgtypeid != '*' AND name != '*' " "AND orgtypeid != '*' AND name != '*' "
"AND orgtypeid IS NOT NULL AND name IS NOT NULL " "AND orgtypeid IS NOT NULL AND name IS NOT NULL "
"ORDER BY orgtypeid, name", {}) "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: