mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2025-12-13 10:33:16 +00:00
Fix double connection test
Remote old preference dialog. Update token revoked behavior.
This commit is contained in:
parent
bfa3b0f2da
commit
b161ec6f4e
4 changed files with 20 additions and 143 deletions
|
|
@ -153,15 +153,18 @@ class ConnectManager(object):
|
|||
dialog.doModal()
|
||||
|
||||
if dialog.is_user_selected():
|
||||
|
||||
user = dialog.get_user()
|
||||
username = user['Name']
|
||||
|
||||
if user['HasPassword']:
|
||||
log.debug("User has password, present manual login")
|
||||
try:
|
||||
return self.login_manual(server_address, user)
|
||||
return self.login_manual(server_address, username)
|
||||
except RuntimeError:
|
||||
return self.login(server)
|
||||
else:
|
||||
user = self.emby.loginUser(server_address, user['Name'])
|
||||
user = self.emby.loginUser(server_address, username)
|
||||
self._connect.onAuthenticated(user)
|
||||
return user
|
||||
|
||||
|
|
@ -188,5 +191,13 @@ class ConnectManager(object):
|
|||
raise RuntimeError("User is not authenticated")
|
||||
|
||||
def update_token(self, servers, server):
|
||||
self._connect.credentialProvider.addOrUpdateServer(servers, server)
|
||||
self.update_state()
|
||||
|
||||
credentials = self._connect.credentialProvider.getCredentials()
|
||||
updated_server = self._connect.credentialProvider.addOrUpdateServer(servers, server)
|
||||
|
||||
for server in self.get_state()['Servers']:
|
||||
if server['Id'] == updated_server['Id']:
|
||||
# Update token saved in current state
|
||||
server.update(updated_server)
|
||||
# Update the token in data.txt
|
||||
self._connect.credentialProvider.getCredentials(credentials)
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ class LoginManual(xbmcgui.WindowXMLDialog):
|
|||
|
||||
_user = None
|
||||
error = None
|
||||
username = None
|
||||
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
@ -49,7 +50,7 @@ class LoginManual(xbmcgui.WindowXMLDialog):
|
|||
self.server = server
|
||||
|
||||
def set_user(self, user):
|
||||
self.user = user or {}
|
||||
self.username = user or {}
|
||||
|
||||
def get_user(self):
|
||||
return self._user
|
||||
|
|
@ -63,8 +64,8 @@ class LoginManual(xbmcgui.WindowXMLDialog):
|
|||
self.user_field = self._add_editcontrol(725, 400, 40, 500)
|
||||
self.password_field = self._add_editcontrol(725, 475, 40, 500, password=1)
|
||||
|
||||
if "Name" in self.user:
|
||||
self.user_field.setText(self.user['Name'])
|
||||
if self.username:
|
||||
self.user_field.setText(self.username)
|
||||
self.setFocus(self.password_field)
|
||||
else:
|
||||
self.setFocus(self.user_field)
|
||||
|
|
|
|||
|
|
@ -173,15 +173,9 @@ class UserClient(threading.Thread):
|
|||
##### AUTHENTICATE USER #####
|
||||
server = self.get_server()
|
||||
username = self.get_username().decode('utf-8')
|
||||
users = self.emby.getUsers(server)
|
||||
user_found = None
|
||||
|
||||
for user in users:
|
||||
if username == user['Name']:
|
||||
user_found = user
|
||||
break
|
||||
try:
|
||||
user = self.connectmanager.login_manual(server, user_found)
|
||||
user = self.connectmanager.login_manual(server, username)
|
||||
except RuntimeError:
|
||||
window('emby_serverStatus', value="stop")
|
||||
self._auth = False
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue