buggfix
This commit is contained in:
parent
7ed44525d1
commit
5b1317d515
@ -28,23 +28,6 @@ async def sor_get_org_users(sor, orgid):
|
|||||||
return recs
|
return recs
|
||||||
return []
|
return []
|
||||||
|
|
||||||
async def get_user_roles(userid):
|
|
||||||
sql = "select b.orgtypeid, concat(b.orgtypeid, '.', b.name) as name from userrole a, role b where a.userid=${userid}$ and a.roleid = b.id"
|
|
||||||
db = DBPools()
|
|
||||||
roles = []
|
|
||||||
dbname = get_dbname()
|
|
||||||
async with db.sqlorContext(dbname) as sor:
|
|
||||||
recs = await sor.sqlExe(sql, {'userid':userid})
|
|
||||||
if len(recs) < 1:
|
|
||||||
return roles
|
|
||||||
orgtypes = []
|
|
||||||
for r in recs:
|
|
||||||
if r.orgtypeid not in orgtypes:
|
|
||||||
orgtypes.append(r.orgtypeid)
|
|
||||||
roles.append(r.orgtypeid + '.*')
|
|
||||||
roles.append(r.name)
|
|
||||||
return roles
|
|
||||||
|
|
||||||
async def create_org(sor, ns, orgtypes=[]):
|
async def create_org(sor, ns, orgtypes=[]):
|
||||||
await sor.C('organization', ns)
|
await sor.C('organization', ns)
|
||||||
if orgtypes == []:
|
if orgtypes == []:
|
||||||
|
|||||||
@ -3,11 +3,11 @@ from ahserver.serverenv import ServerEnv
|
|||||||
from .orgs import (
|
from .orgs import (
|
||||||
get_platform_providers
|
get_platform_providers
|
||||||
)
|
)
|
||||||
|
from .userperm import UserPermissions
|
||||||
from rbac.check_perm import (
|
from rbac.check_perm import (
|
||||||
objcheckperm,
|
objcheckperm,
|
||||||
get_org_users,
|
get_org_users,
|
||||||
sor_get_org_users,
|
sor_get_org_users,
|
||||||
get_user_roles,
|
|
||||||
checkUserPassword,
|
checkUserPassword,
|
||||||
register_user,
|
register_user,
|
||||||
register_auth_method,
|
register_auth_method,
|
||||||
@ -26,10 +26,11 @@ async def sor_get_owner_orgid(sor, orgid):
|
|||||||
def load_rbac():
|
def load_rbac():
|
||||||
AuthAPI.checkUserPermission = objcheckperm
|
AuthAPI.checkUserPermission = objcheckperm
|
||||||
env = ServerEnv()
|
env = ServerEnv()
|
||||||
|
env.userpermissions = UserPermissions()
|
||||||
env.create_org = create_org
|
env.create_org = create_org
|
||||||
env.get_platform_providers = get_platform_providers
|
env.get_platform_providers = get_platform_providers
|
||||||
env.create_user = create_user
|
env.create_user = create_user
|
||||||
env.get_user_roles = get_user_roles
|
env.get_user_roles = userpermsissions.get_user_roles
|
||||||
env.check_user_password = checkUserPassword
|
env.check_user_password = checkUserPassword
|
||||||
env.register_user = register_user
|
env.register_user = register_user
|
||||||
env.set_role_perm = set_role_perm
|
env.set_role_perm = set_role_perm
|
||||||
|
|||||||
@ -12,6 +12,17 @@ class UserPermisions:
|
|||||||
self.rp_caches = None
|
self.rp_caches = None
|
||||||
self.ur_caches = {}
|
self.ur_caches = {}
|
||||||
|
|
||||||
|
async def get_user_roles(self, userid):
|
||||||
|
if userid is None:
|
||||||
|
return ['anonymous', 'any']
|
||||||
|
roles = self.ur_caches.get(userid)
|
||||||
|
if roles:
|
||||||
|
return roles
|
||||||
|
async with get_sor_context(ServerEnv(), 'rbac') as sor:
|
||||||
|
await self.get_userroles(sor, userid)
|
||||||
|
return self.ur_caches.get(userid)
|
||||||
|
return None
|
||||||
|
|
||||||
async def load_roleperms(self, sor):
|
async def load_roleperms(self, sor):
|
||||||
self.rp_caches = {}
|
self.rp_caches = {}
|
||||||
sql_all = """select c.orgtypeid, c.name, b.path
|
sql_all = """select c.orgtypeid, c.name, b.path
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user