28 lines
809 B
Python
28 lines
809 B
Python
from tools import *
|
|
from AppBridge import *
|
|
from Utils.Models import *
|
|
|
|
|
|
def PermissionVerifier(permission: int, attributes: typing.List[typing.Any]) -> bool:
|
|
if not permission:
|
|
return True
|
|
ELTUser = UGM.GetELTUser()
|
|
flask.g.ELTUser = ELTUser
|
|
if not ELTUser:
|
|
return False
|
|
for i in attributes:
|
|
abac_match = GERPUserABAC.query.filter(sqlalchemy.and_(
|
|
GERPUserABAC.UserUUID == ELTUser.UserUUID,
|
|
GERPUserABAC.HierarchicalPermissionIdentifiers == i
|
|
)).first()
|
|
if abac_match:
|
|
continue
|
|
try:
|
|
rbac_result = GERPRole.CheckUserPermission(ELTUser.UserUUID, i)
|
|
except Exception as e:
|
|
rbac_result = False
|
|
if rbac_result:
|
|
continue
|
|
return False
|
|
return True
|