20 lines
766 B
Plaintext
20 lines
766 B
Plaintext
# check_perm.dspy
|
|
|
|
dbname = get_module_dbname('rbac')
|
|
async with DBPools().sqlorContext(dbname) as sor:
|
|
# Get all 'any' role permissions
|
|
rp = await sor.sqlExe("SELECT permid FROM rolepermission WHERE roleid='any'", {})
|
|
permids = [getattr(r, "permid", "") for r in (rp or [])]
|
|
|
|
# Check permission table for these IDs
|
|
result = []
|
|
for pid in permids[:10]:
|
|
perm = await sor.sqlExe("SELECT * FROM permission WHERE id=${p}$", {"p": pid})
|
|
if perm:
|
|
d = perm[0].to_dict() if hasattr(perm[0], 'to_dict') else {}
|
|
result.append(d)
|
|
else:
|
|
result.append({"permid": pid, "error": "not found"})
|
|
|
|
return json.dumps({"perm_count": len(permids), "sample": result}, ensure_ascii=False, default=str)
|