Small fixes user authorization

This commit is contained in:
tomkat83 2015-12-28 10:35:27 +01:00
parent 8604fab2d4
commit 92eac70c0b
2 changed files with 60 additions and 13 deletions

View file

@ -816,6 +816,49 @@ class PlexAPI():
dprint(__name__, 1, "====== MyPlex sign out XML finished ======")
dprint(__name__, 0, 'MyPlex Sign Out done')
def UserAccessRestricted(self, username):
"""
Returns True if the user's access is restricted (parental restrictions)
False otherwise.
Returns False also if access cannot be checked because plex.tv cannot
be reached.
"""
plexToken = utils.settings('plexToken')
users = self.MyPlexListHomeUsers(plexToken)
# If an error is encountered, set to False
if not users:
self.logMsg("Could not check user access restrictions.", 1)
self.logMsg("Setting restrictions to False.", 1)
return False
for user in users:
if username in user['title']:
restricted = user['restricted']
if restricted == '1':
restricted = True
else:
restricted = False
self.logMsg("Successfully checked user parental access for %s: restricted access is set to %s" % (username, restricted), 1)
return restricted
def GetUserArtworkURL(self, username):
"""
Returns the URL for the user's Avatar. Or False if something went
wrong.
"""
plexToken = utils.settings('plexToken')
users = self.MyPlexListHomeUsers(plexToken)
# If an error is encountered, set to False
if not users:
self.logMsg("Could not get userlist from plex.tv.", 1)
self.logMsg("No URL for user avatar.", 1)
return False
for user in users:
if username in user['title']:
url = user['thumb']
self.logMsg("Avatar url for user %s is: %s" % (username, url), 1)
return url
def ChoosePlexHomeUser(self):
"""
Let's user choose from a list of Plex home users. Will switch to that
@ -825,6 +868,8 @@ class PlexAPI():
username
userid
authtoken
Will return empty strings if failed.
"""
string = self.__language__
plexToken = utils.settings('plexToken')
@ -891,6 +936,7 @@ class PlexAPI():
trials += trials
if not username:
xbmc.executebuiltin('Addon.OpenSettings(%s)' % self.addonId)
return ('', '', '', '')
return (username, user['id'], usertoken)
def MyPlexSwitchHomeUser(self, id, pin, authtoken, options={}):
@ -956,8 +1002,8 @@ class PlexAPI():
"email": email, "title": title, "username": username,
"thumb": thumb_url
}
If any value is missing, None is returned instead (or "" from plex.tv)
If an error is encountered, False is returned
If any value is missing, None is returned instead (or "" from plex.tv)
If an error is encountered, False is returned
"""
XML = self.getXMLFromPMS('https://plex.tv', '/api/home/users/', {}, authtoken)
if not XML:

View file

@ -201,18 +201,18 @@ class UserClient(threading.Thread):
doUtils = self.doUtils
art = artwork.Artwork()
url = "{server}/emby/Users/{UserId}?format=json"
result = doUtils.downloadUrl(url)
self.userSettings = result
# Set user image for skin display
if result.get('PrimaryImageTag'):
utils.window('EmbyUserImage', value=art.getUserArtwork(result['Id'], 'Primary'))
url = PlexAPI.PlexAPI().GetUserArtworkURL(self.currUser)
if url:
result = doUtils.downloadUrl(url, authenticate=False)
self.userSettings = result
# Set user image for skin display
if result.get('PrimaryImageTag'):
utils.window('EmbyUserImage', value=art.getUserArtwork(result['Id'], 'Primary'))
# Set resume point max
url = "{server}/emby/System/Configuration?format=json"
result = doUtils.downloadUrl(url)
# url = "{server}/emby/System/Configuration?format=json"
# result = doUtils.downloadUrl(url)
utils.settings('markPlayed', value=str(result['MaxResumePct']))
# utils.settings('markPlayed', value=str(result['MaxResumePct']))
def getPublicUsers(self):
@ -286,7 +286,8 @@ class UserClient(threading.Thread):
doUtils.setToken(self.currToken)
doUtils.setSSL(self.ssl, self.sslcert)
# parental control - let's verify if access is restricted
self.hasAccess()
# self.hasAccess()
# Start DownloadUtils session
doUtils.startSession()
self.getAdditionalUsers()