Added re-authentication after expiry to jf_api

This commit is contained in:
Harvey Tindall 2020-04-26 19:44:31 +01:00
parent 5b767da91f
commit 3499843878
2 changed files with 18 additions and 5 deletions

View File

@ -36,9 +36,9 @@ class Jellyfin:
"X-Emby-Authorization": self.auth
}
def getUsers(self, username="all", id="all", public=True):
if public:
if public is True:
response = requests.get(self.server+"/emby/Users/Public").json()
else:
elif public is False and hasattr(self, 'username') and hasattr(self, 'password'):
response = requests.get(self.server+"/emby/Users",
headers=self.header,
params={'Username': self.username,
@ -46,7 +46,13 @@ class Jellyfin:
if response.status_code == 200:
response = response.json()
else:
raise self.AuthenticationRequiredError
try:
self.authenticate(self.username, self.password)
return self.getUsers(username, id, public)
except self.AuthenticationError:
raise self.AuthenticationRequiredError
else:
raise self.AuthenticationRequiredError
if username == "all" and id == "all":
return response
elif id == "all":
@ -99,7 +105,11 @@ class Jellyfin:
params={'Name': username,
'Password': password})
if response.status_code == 401:
raise self.AuthenticationRequiredError
if hasattr(self, 'username') and hasattr(self, 'password'):
self.authenticate(self.username, self.password)
return self.newUser(username, password)
else:
raise self.AuthenticationRequiredError
return response
# template user's policies should be copied to each new account.

View File

@ -68,7 +68,10 @@ auth = HTTPBasicAuth()
accounts = {}
if not config.getboolean('ui', 'jellyfin_login'):
if config.getboolean('ui', 'jellyfin_login'):
log.debug('Using jellyfin for admin authentication')
else:
log.debug('Using configured login details for admin authentication')
accounts['adminAccount'] = Account(config['ui']['username'],
config['ui']['password'])