fix: search login permissions
This commit is contained in:
parent
8ead5e19eb
commit
f28c152d89
@ -2,18 +2,17 @@
|
||||
|
||||
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
|
||||
# Search for up_login in permissions
|
||||
login_perms = await sor.sqlExe(
|
||||
"SELECT id, path FROM permission WHERE path LIKE '%%up_login%%' OR path LIKE '%%login.ui%%' OR path LIKE '%%rbac/user%%'", {})
|
||||
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"})
|
||||
for r in (login_perms or []):
|
||||
pid = getattr(r, "id", "")
|
||||
path = getattr(r, "path", "")
|
||||
# Check if in 'any' role
|
||||
rp = await sor.sqlExe(
|
||||
"SELECT roleid FROM rolepermission WHERE permid=${p}$", {"p": pid})
|
||||
roles = [getattr(r2, "roleid", "") for r2 in (rp or [])]
|
||||
result.append({"id": pid, "path": path, "roles": roles})
|
||||
|
||||
return json.dumps({"perm_count": len(permids), "sample": result}, ensure_ascii=False, default=str)
|
||||
return json.dumps({"login_perms": result}, ensure_ascii=False)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user