mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-08 06:00:51 -07:00
Fix first time guest logins failing
This commit is contained in:
parent
b6461f4f9e
commit
a1821fabf9
2 changed files with 31 additions and 41 deletions
|
@ -267,6 +267,7 @@ class Users(object):
|
||||||
'do_notify': 0,
|
'do_notify': 0,
|
||||||
'keep_history': 1,
|
'keep_history': 1,
|
||||||
'allow_guest': 0,
|
'allow_guest': 0,
|
||||||
|
'deleted_user': 0,
|
||||||
'shared_libraries': ()
|
'shared_libraries': ()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,8 +38,6 @@ def user_login(username=None, password=None):
|
||||||
if not username and not password:
|
if not username and not password:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
user_data = Users()
|
|
||||||
|
|
||||||
# Try to login to Plex.tv to check if the user has a vaild account
|
# Try to login to Plex.tv to check if the user has a vaild account
|
||||||
plex_tv = PlexTV(username=username, password=password)
|
plex_tv = PlexTV(username=username, password=password)
|
||||||
plex_user = plex_tv.get_token()
|
plex_user = plex_tv.get_token()
|
||||||
|
@ -47,25 +45,19 @@ def user_login(username=None, password=None):
|
||||||
user_token = plex_user['auth_token']
|
user_token = plex_user['auth_token']
|
||||||
user_id = plex_user['user_id']
|
user_id = plex_user['user_id']
|
||||||
|
|
||||||
# Retrieve user token from the database and check against the Plex.tv token.
|
# Try to retrieve the user from the database.
|
||||||
# Also Make sure 'allow_guest' access is enabled for the user.
|
# Also make sure guest access is enabled for the user and the user is not deleted.
|
||||||
# The user tokens should match if it is the same PlexPy install.
|
user_data = Users()
|
||||||
tokens = user_data.get_tokens(user_id=user_id)
|
|
||||||
if not tokens:
|
|
||||||
# The user is not in the database
|
|
||||||
return None
|
|
||||||
elif not tokens['allow_guest'] or not user_token == tokens['user_token']:
|
|
||||||
# Guest access is disabled, or user tokens don't match
|
|
||||||
return None
|
|
||||||
|
|
||||||
# Otherwise it is a new user or token is no longer valid.
|
|
||||||
# Check if the user is in the database, not deleted, and 'allow_guest' access.
|
|
||||||
user_details = user_data.get_details(user_id=user_id)
|
user_details = user_data.get_details(user_id=user_id)
|
||||||
if user_id == str(user_details['user_id']) and \
|
if user_id != str(user_details['user_id']):
|
||||||
not user_details['deleted_user'] and user_details['allow_guest']:
|
# The user is not in the database.
|
||||||
|
return None
|
||||||
|
elif not user_details['allow_guest'] or user_details['deleted_user']:
|
||||||
|
# Guest access is disabled or the user is deleted.
|
||||||
|
return None
|
||||||
|
|
||||||
# The user is in the database, so try to retrieve a new server token.
|
# The user is in the database, and guest access is enabled, so try to retrieve a server token.
|
||||||
# If a server token is returned, then the user is a valid friend
|
# If a server token is returned, then the user is a valid friend of the server.
|
||||||
plex_tv = PlexTV(token=user_token)
|
plex_tv = PlexTV(token=user_token)
|
||||||
server_token = plex_tv.get_server_token()
|
server_token = plex_tv.get_server_token()
|
||||||
if server_token:
|
if server_token:
|
||||||
|
@ -78,7 +70,7 @@ def user_login(username=None, password=None):
|
||||||
[user_token, server_token, user_id])
|
[user_token, server_token, user_id])
|
||||||
|
|
||||||
if result:
|
if result:
|
||||||
# Refresh the users list to make sure we have all the correct permissions
|
# Refresh the users list to make sure we have all the correct permissions.
|
||||||
plextv.refresh_users()
|
plextv.refresh_users()
|
||||||
# Successful login
|
# Successful login
|
||||||
return True
|
return True
|
||||||
|
@ -91,9 +83,6 @@ def user_login(username=None, password=None):
|
||||||
else:
|
else:
|
||||||
logger.warn(u"PlexPy Users :: Unable to retrieve Plex.tv server token for user '%s'." % username)
|
logger.warn(u"PlexPy Users :: Unable to retrieve Plex.tv server token for user '%s'." % username)
|
||||||
return None
|
return None
|
||||||
else:
|
|
||||||
logger.warn(u"PlexPy Users :: Unable to register user '%s'. User not in the database." % username)
|
|
||||||
return None
|
|
||||||
else:
|
else:
|
||||||
logger.warn(u"PlexPy Users :: Unable to retrieve Plex.tv user token for user '%s'." % username)
|
logger.warn(u"PlexPy Users :: Unable to retrieve Plex.tv user token for user '%s'." % username)
|
||||||
return None
|
return None
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue