From 73e4aac4be0b462d79d1aafcd838690ddd906c52 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Sat, 21 Mar 2026 16:03:09 +0800 Subject: [PATCH] bugfix --- wwwroot/get_all_roles.dspy | 13 +++++++++++++ wwwroot/get_normal_roles.dspy | 15 +++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 wwwroot/get_all_roles.dspy create mode 100644 wwwroot/get_normal_roles.dspy diff --git a/wwwroot/get_all_roles.dspy b/wwwroot/get_all_roles.dspy new file mode 100644 index 0000000..dcdd6bc --- /dev/null +++ b/wwwroot/get_all_roles.dspy @@ -0,0 +1,13 @@ +async with get_sor_context(request._run_ns, 'rbac') as sor: + recs = sor.R('role', {}) + d = [] + for r in recs: + if r.id in ['anonymous', 'any', 'logined']: + d.append(r.id) + else: + d.append(f'{r.orgtypeid}.{r.name}') + d.append(f'{r.orgtypeid}.*') + d.append(f'*.{r.name}') + d = sorted(list(set(d))) + return d + return [] diff --git a/wwwroot/get_normal_roles.dspy b/wwwroot/get_normal_roles.dspy new file mode 100644 index 0000000..81ddab4 --- /dev/null +++ b/wwwroot/get_normal_roles.dspy @@ -0,0 +1,15 @@ +async with get_sor_context(request._run_ns, 'rbac') as sor: + recs = sor.R('role', {}) + d = [] + for r in recs: + if r.id in ['anonymous', 'any', 'logined']: + continue + elif r.orgtypeid == '*' or r.orgtypeid is None: + continue + elif r.name == '*' or r.name is None: + continue + else: + d.append(f'{r.orgtypeid}.{r.name}') + d = sorted(list(set(d))) + return d + return []