def login(self): users = self.connect_manager['public-users'] server = self.connect_manager['server-address'] if not users: try: return self.login_manual() except RuntimeError: raise RuntimeError("No user selected") dialog = UsersConnect("script-jellyfin-connect-users.xml", *XML_PATH) dialog.set_args(**{'server': server, 'users': users}) 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(username) except RuntimeError: pass else: return self.connect_manager['login'](server, username) elif dialog.is_manual_login(): try: return self.login_manual() except RuntimeError: pass else: raise RuntimeError("No user selected") return self.login()
def login_connect(self, manager=None): ''' Return connect user or raise error. ''' dialog = LoginConnect("script-emby-connect-login.xml", *XML_PATH) dialog.set_args(**{'connect_manager': manager or self.connect_manager}) dialog.doModal() if dialog.is_logged_in(): return dialog.get_user() else: raise RuntimeError("Connect user is not logged in")
def login_manual(self, user=None, manager=None): ''' Return manual login user authenticated or raise error. ''' dialog = LoginManual("script-jellyfin-connect-login-manual.xml", *XML_PATH) dialog.set_args(**{'connect_manager': manager or self.connect_manager, 'username': user or {}}) dialog.doModal() if dialog.is_logged_in(): return dialog.get_user() else: raise RuntimeError("User is not authenticated")