@ -623,6 +623,14 @@ def OrchestratorIsAdmin():
elif CrossOS . IS_LINUX_BOOL : return os . getuid ( ) == 0
else : return True
def OrchestratorIsCredentialsAsk ( ) :
""" L+,W+: Проверить, активирована ли авторизация при переходе к Оркестратору.
: return : True - Активирована ; False - Деактивирована
"""
inGSettings = GSettingsGet ( )
return inGSettings [ " ServerDict " ] [ " AccessUsers " ] [ " FlagCredentialsAsk " ]
def OrchestratorIsInited ( ) - > bool :
""" L+,W+: Проверить, было ли проинициализировано ядро Оркестратора
@ -1069,6 +1077,11 @@ def WebUserLoginGet(inAuthTokenStr: str=None) -> str:
: return : Логин пользователя
: rtype : str
"""
isCredentialAsk = OrchestratorIsCredentialsAsk ( )
if isCredentialAsk :
if inAuthTokenStr is None : raise ConnectionError ( " Н е удается получить токен для авторизации" )
else :
if inAuthTokenStr is None : return None
inGS = GSettingsGet ( ) # Get the global settings
return inGS . get ( " ServerDict " , { } ) . get ( " AccessUsers " , { } ) . get ( " AuthTokensDict " , { } ) . get ( inAuthTokenStr , { } ) . get ( " User " , None )
@ -1082,17 +1095,21 @@ def WebUserDomainGet(inAuthTokenStr: str=None) -> str:
: rtype : str
"""
isCredentialAsk = OrchestratorIsCredentialsAsk ( )
if isCredentialAsk :
if inAuthTokenStr is None : raise ConnectionError ( " Н е удается получить токен для авторизации" )
else :
if inAuthTokenStr is None : return None
inGS = GSettingsGet ( ) # Get the global settings
return inGS . get ( " ServerDict " , { } ) . get ( " AccessUsers " , { } ) . get ( " AuthTokensDict " , { } ) . get ( inAuthTokenStr , { } ) . get ( " Domain " , None )
def WebUserInfoGet ( inAuthTokenStr = None ) :
""" L+,W+: Информация о пользователе, который отправил HTTP запрос.
: param inRequest : Экземпляр HTTP request . Опционален , если сообщение фиксируется из под потока , который был инициирован запросом пользователя
: return : Сведения в формате { " DomainUpperStr " : " PYOPENRPA " , " UserNameUpperStr " : " IVAN.MASLOV " }
"""
try :
lResultDict = {
" DomainUpperStr " : WebUserDomainGet ( inAuthTokenStr = inAuthTokenStr ) . upper ( ) ,
@ -1109,6 +1126,7 @@ def WebUserIsSuperToken(inAuthTokenStr: str=None):
: type inAuthTokenStr : str , опционально
: return : True - является супертокеном ; False - не является супертокеном ; None - авторизация не производилась
"""
if inAuthTokenStr is None : return None
inGSettings = GSettingsGet ( ) # Get the global settings
lIsSuperTokenBool = False
@ -1123,7 +1141,13 @@ def WebUserUACHierarchyGet(inAuthTokenStr: str=None) -> dict:
: type inAuthTokenStr : str , опционально
: return : UAC словарь доступа или { } , что означает полный доступ
"""
isCredentialAsk = OrchestratorIsCredentialsAsk ( )
if isCredentialAsk :
if inAuthTokenStr is None : raise ConnectionError ( " Н е удается получить токен для авторизации" )
else :
if inAuthTokenStr is None : return { }
lDomainUpperStr = WebUserDomainGet ( inAuthTokenStr = inAuthTokenStr ) . upper ( )
lUserUpperStr = WebUserLoginGet ( inAuthTokenStr = inAuthTokenStr ) . upper ( )
if lUserUpperStr is None : return { }
@ -1137,7 +1161,14 @@ def WebUserUACCheck(inAuthTokenStr:str=None, inKeyList:list=None) -> bool:
: return : True - доступ имеется , False - доступа нет
: rtype : bool
"""
if inAuthTokenStr is None : return True # Если авторизации не происходило - супердоступ
isCredentialAsk = OrchestratorIsCredentialsAsk ( )
# Если авторизации не происходило - супердоступ
if isCredentialAsk :
if inAuthTokenStr is None : return False
else :
if inAuthTokenStr is None : return True
lResult = True # Init flag
lRoleHierarchyDict = WebUserUACHierarchyGet ( inAuthTokenStr = inAuthTokenStr ) # get the Hierarchy
# Try to get value from key list