diff --git a/data/interfaces/default/settings.html b/data/interfaces/default/settings.html index c505258b..c8b7ecf6 100644 --- a/data/interfaces/default/settings.html +++ b/data/interfaces/default/settings.html @@ -2737,12 +2737,8 @@ $(document).ready(function() { }); $.ajax({ - url: "https://plex.tv/api/resources", + url: "check_pms_token", type: 'GET', - dataType: 'json', - beforeSend: function (xhr) { - xhr.setRequestHeader('X-Plex-Token', $('#pms_token').val()); - }, statusCode: { 401: function (xhr, status) { $("#updatebar").hide(); diff --git a/plexpy/plextv.py b/plexpy/plextv.py index 5e487a55..d97c7797 100644 --- a/plexpy/plextv.py +++ b/plexpy/plextv.py @@ -277,13 +277,14 @@ class PlexTV(object): return request - def get_plextv_resources(self, include_https=False, output_format=''): + def get_plextv_resources(self, include_https=False, return_response=False, output_format=''): if include_https: uri = '/api/resources?includeHttps=1' else: uri = '/api/resources' request = self.request_handler.make_request(uri=uri, request_type='GET', + return_response=return_response, output_format=output_format) return request diff --git a/plexpy/webserve.py b/plexpy/webserve.py index 42160d01..0688642c 100644 --- a/plexpy/webserve.py +++ b/plexpy/webserve.py @@ -3414,6 +3414,15 @@ class WebInterface(object): return {'result': 'success', 'message': 'Settings saved.'} + @cherrypy.expose + @cherrypy.tools.json_out() + @requireAuth(member_of("admin")) + def check_pms_token(self, **kwargs): + plex_tv = plextv.PlexTV() + response = plex_tv.get_plextv_resources(return_response=True) + if not response.ok: + cherrypy.response.status = 401 + @cherrypy.expose @cherrypy.tools.json_out() @requireAuth(member_of("admin"))