Update the SSO Login for Serenity and Singularity server's player
This commit is contained in:
@@ -108,7 +108,16 @@ class Esi(EsiAccess):
|
||||
else:
|
||||
with gui.ssoLogin.SsoLogin() as dlg:
|
||||
if dlg.ShowModal() == wx.ID_OK:
|
||||
message = json.loads(base64.b64decode(dlg.ssoInfoCtrl.Value.strip()))
|
||||
message = {}
|
||||
if (self.server_name == "Serenity"):
|
||||
import re
|
||||
s=re.search(r'(?<=code=)[a-zA-Z0-9\-_]*',dlg.ssoInfoCtrl.Value.strip())
|
||||
if s:
|
||||
message['code']=s.group()
|
||||
else:
|
||||
message['code']=None
|
||||
else:
|
||||
message = json.loads(base64.b64decode(dlg.ssoInfoCtrl.Value.strip()))
|
||||
self.handleLogin(message)
|
||||
|
||||
def stopServer(self):
|
||||
|
||||
@@ -65,7 +65,8 @@ class APIException(Exception):
|
||||
class EsiAccess:
|
||||
def __init__(self):
|
||||
self.settings = EsiSettings.getInstance()
|
||||
self.server_base: ApiBase = supported_servers[self.settings.get("server")]
|
||||
self.server_name=self.settings.get('server')
|
||||
self.server_base: ApiBase = supported_servers[self.server_name]
|
||||
|
||||
# session request stuff
|
||||
self._session = Session()
|
||||
@@ -116,7 +117,10 @@ class EsiAccess:
|
||||
|
||||
@property
|
||||
def client_id(self):
|
||||
return self.settings.get('clientID') or config.API_CLIENT_ID
|
||||
if (self.server_name == "Serenity"):
|
||||
return self.settings.get('clientID') or config.API_CLIENT_ID
|
||||
else:
|
||||
return self.settings.get('clientID') or config.API_CLIENT_ID_SERENITY
|
||||
|
||||
@staticmethod
|
||||
def update_token(char, tokenResponse):
|
||||
@@ -141,17 +145,25 @@ class EsiAccess:
|
||||
'redirect': redirect,
|
||||
'state': self.state
|
||||
}
|
||||
|
||||
args = {
|
||||
'response_type': 'code',
|
||||
'redirect_uri': config.SSO_CALLBACK,
|
||||
'client_id': self.client_id,
|
||||
'scope': ' '.join(scopes),
|
||||
'code_challenge': code_challenge,
|
||||
'code_challenge_method': 'S256',
|
||||
'state': base64.b64encode(bytes(json.dumps(state_arg), 'utf-8'))
|
||||
}
|
||||
|
||||
if(self.server_name=="Serenity"):
|
||||
args = {
|
||||
'response_type': 'code',
|
||||
'redirect_uri': config.SSO_CALLBACK_SERENITY,
|
||||
'client_id': self.client_id,
|
||||
'scope': ' '.join(scopes),
|
||||
'state': 'hilltech',
|
||||
'device_id': 'eims'
|
||||
}
|
||||
else:
|
||||
args = {
|
||||
'response_type': 'code',
|
||||
'redirect_uri': config.SSO_CALLBACK,
|
||||
'client_id': self.client_id,
|
||||
'scope': ' '.join(scopes),
|
||||
'code_challenge': code_challenge,
|
||||
'code_challenge_method': 'S256',
|
||||
'state': base64.b64encode(bytes(json.dumps(state_arg), 'utf-8'))
|
||||
}
|
||||
return '%s?%s' % (
|
||||
self.oauth_authorize,
|
||||
urlencode(args)
|
||||
|
||||
@@ -388,6 +388,9 @@ class EsiSettings:
|
||||
def set(self, type, value):
|
||||
self.settings[type] = value
|
||||
|
||||
def keys(self):
|
||||
return list({"Tranquility":"Tranquility","Singularity":"Singularity","Serenity":"Serenity"})
|
||||
|
||||
|
||||
class StatViewSettings:
|
||||
_instance = None
|
||||
|
||||
Reference in New Issue
Block a user