This commit is contained in:
yumoqing 2026-03-21 11:41:03 +08:00
parent 3d38d97676
commit b7c71bda18

View File

@ -1104,24 +1104,25 @@ async def add_roleperm(sor, roleid, permid):
async def add_roles_perm(perm, roles):
perms = [perm]
if role in ['anonymous', 'any', 'logined']:
for p in perms:
await add_roleperm(sor, role, p.id)
return
orgtypeid, name = role.split('.')
ns = {
'orgtypeid': orgtypeid,
'name': name
}
roles = await sor.R('role', ns.copy())
if not roles:
ns['id'] = getID()
await sor.C('role', ns.copy())
else:
for role in roles:
if role in ['anonymous', 'any', 'logined']:
for p in perms:
await add_roleperm(sor, role, p.id)
continue
orgtypeid, name = role.split('.')
ns = {
'orgtypeid': orgtypeid,
'name': name
}
roles = await sor.R('role', ns.copy())
if not roles:
ns['id'] = getID()
await sor.C('role', ns.copy())
else:
ns['id'] = roles[0].id
for p in perms:
await add_roleperm(sor, ns['id'], p.id)
await delete_anonymous_perm(sor, p.id)
for p in perms:
await add_roleperm(sor, ns['id'], p.id)
await delete_anonymous_perm(sor, p.id)
async def main():
config = getConfig('.')