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"))