mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-11 07:46:07 -07:00
Validate OneSignal Player ID when registering device
This commit is contained in:
parent
970667adca
commit
450b3865a8
2 changed files with 16 additions and 3 deletions
|
@ -407,12 +407,17 @@ class API2(object):
|
||||||
```
|
```
|
||||||
"""
|
"""
|
||||||
if not device_id:
|
if not device_id:
|
||||||
self._api_msg = 'Device registartion failed: no device id provided.'
|
self._api_msg = 'Device registration failed: no device id provided.'
|
||||||
self._api_result_type = 'error'
|
self._api_result_type = 'error'
|
||||||
return
|
return
|
||||||
|
|
||||||
elif not device_name:
|
elif not device_name:
|
||||||
self._api_msg = 'Device registartion failed: no device name provided.'
|
self._api_msg = 'Device registration failed: no device name provided.'
|
||||||
|
self._api_result_type = 'error'
|
||||||
|
return
|
||||||
|
|
||||||
|
elif not notifiers.ANDROIDAPP().validate_device_id(device_id=device_id):
|
||||||
|
self._api_msg = 'Device registration failed: invalid OneSignal Player ID.'
|
||||||
self._api_result_type = 'error'
|
self._api_result_type = 'error'
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -426,7 +431,7 @@ class API2(object):
|
||||||
self._api_result_type = 'success'
|
self._api_result_type = 'success'
|
||||||
mobile_app.set_temp_device_token(None)
|
mobile_app.set_temp_device_token(None)
|
||||||
else:
|
else:
|
||||||
self._api_msg = 'Device registartion failed: database error.'
|
self._api_msg = 'Device registration failed: database error.'
|
||||||
self._api_result_type = 'error'
|
self._api_result_type = 'error'
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
|
@ -884,6 +884,14 @@ class ANDROIDAPP(Notifier):
|
||||||
|
|
||||||
_ONESIGNAL_APP_ID = '3b4b666a-d557-4b92-acdf-e2c8c4b95357'
|
_ONESIGNAL_APP_ID = '3b4b666a-d557-4b92-acdf-e2c8c4b95357'
|
||||||
|
|
||||||
|
def validate_device_id(self, device_id):
|
||||||
|
headers = {'Content-Type': 'application/json'}
|
||||||
|
payload = {'app_id': self._ONESIGNAL_APP_ID}
|
||||||
|
|
||||||
|
r = requests.get('https://onesignal.com/api/v1/players/{}'.format(device_id), headers=headers, json=payload)
|
||||||
|
if r.status_code == 200:
|
||||||
|
return r.json()
|
||||||
|
|
||||||
def agent_notify(self, subject='', body='', action='', notification_id=None, **kwargs):
|
def agent_notify(self, subject='', body='', action='', notification_id=None, **kwargs):
|
||||||
# Check mobile device is still registered
|
# Check mobile device is still registered
|
||||||
device = mobile_app.get_mobile_devices(device_id=self.config['device_id'])
|
device = mobile_app.get_mobile_devices(device_id=self.config['device_id'])
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue