"""Return all role options for dropdown and code display. Used by userrole CRUD form and list view.""" async with get_sor_context(request._run_ns, 'rbac') as sor: 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", {}) result = [{'roleid': '', 'roleid_text': '全部'}] for r in recs: result.append({'roleid': r.id, 'roleid_text': r.name}) return result