Merge branch 'release/v18.2.11'
This commit is contained in:
@@ -23,7 +23,6 @@ import os,sys
|
||||
import gzip
|
||||
import base64
|
||||
import yaml
|
||||
|
||||
from uuid import uuid4
|
||||
from requests import ConnectionError
|
||||
from json.decoder import JSONDecodeError
|
||||
@@ -37,6 +36,7 @@ from django.contrib.auth.decorators import login_required
|
||||
from django.urls import reverse, reverse_lazy
|
||||
|
||||
from rowers.utils import myqueue
|
||||
from rowers.opaque import encoder
|
||||
import django_rq
|
||||
queue = django_rq.get_queue('default')
|
||||
queuelow = django_rq.get_queue('low')
|
||||
@@ -76,7 +76,7 @@ def get_token(code):
|
||||
|
||||
post_data = {"grant_type": "authorization_code",
|
||||
"code": code,
|
||||
"redirect_uri": POLAR_REDIRECT_URI,
|
||||
#"redirect_uri": POLAR_REDIRECT_URI,
|
||||
}
|
||||
|
||||
auth_string = '{id}:{secret}'.format(
|
||||
@@ -90,6 +90,10 @@ def get_token(code):
|
||||
headers = { 'Authorization': 'Basic %s' % base64.b64encode(
|
||||
bytes(auth_string,'utf-8')).decode('utf-8') }
|
||||
|
||||
dologging('polar.log','Getting token')
|
||||
dologging('polar.log',post_data)
|
||||
dologging('polar.log',auth_string)
|
||||
|
||||
response = requests.post("https://polarremote.com/v2/oauth2/token",
|
||||
data=post_data,
|
||||
headers=headers)
|
||||
@@ -97,6 +101,7 @@ def get_token(code):
|
||||
if response.status_code != 200: # pragma: no cover
|
||||
dologging('polar.log','Getting token, got:')
|
||||
dologging('polar.log',response.status_code)
|
||||
dologging('polar.log',response.reason)
|
||||
dologging('polar.log',response.text)
|
||||
|
||||
try:
|
||||
@@ -356,27 +361,41 @@ def register_user(user, token):
|
||||
s = "Token expired. Needs to refresh"
|
||||
return custom_exception_handler(401,s)
|
||||
|
||||
authorizationstring = str('Bearer ' + token)
|
||||
authorizationstring = 'Bearer {token}'.format(token=token)
|
||||
headers = {
|
||||
'Content-Type': 'application/xml',
|
||||
'Authorization':authorizationstring,
|
||||
'Accept': 'application/json'
|
||||
}
|
||||
|
||||
params = {
|
||||
'member-id': uuid4().hex
|
||||
payload = {
|
||||
"member-id": encoder.encode_hex(user.id)
|
||||
}
|
||||
|
||||
headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'Accept': 'application/json',
|
||||
'Authorization': 'Bearer {token}'.format(token=token)
|
||||
}
|
||||
|
||||
url = baseurl+'/users'
|
||||
|
||||
dologging('polar.log','Registering user')
|
||||
response = requests.post(url,params=params,headers=headers)
|
||||
|
||||
if response.status_code != 200:
|
||||
dologging('polar.log',url)
|
||||
response = requests.post(
|
||||
'https://www.polaraccesslink.com/v3/users',
|
||||
json = payload,
|
||||
headers = headers
|
||||
)
|
||||
#url = baseurl+'/users'
|
||||
|
||||
#response = requests.post(url,params=params,headers=headers)
|
||||
|
||||
if response.status_code not in [200,201]:
|
||||
#dologging('polar.log',url)
|
||||
dologging('polar.log',headers)
|
||||
dologging('polar.log',params)
|
||||
dologging('polar.log',payload)
|
||||
dologging('polar.log',response.status_code)
|
||||
dologging('polar.log',response.content)
|
||||
try:
|
||||
dologging('polar.log',response.reason)
|
||||
dologging('polar.log',response.text)
|
||||
|
||||
@@ -206,7 +206,7 @@ def rower_polar_authorize(request): # pragma: no cover
|
||||
|
||||
params = {"client_id": POLAR_CLIENT_ID,
|
||||
"response_type": "code",
|
||||
"redirect_uri": POLAR_REDIRECT_URI,
|
||||
#"redirect_uri": POLAR_REDIRECT_URI,
|
||||
"state": state,
|
||||
# "scope":"accesslink.read_all"
|
||||
}
|
||||
@@ -420,6 +420,7 @@ def rower_process_polarcallback(request):
|
||||
|
||||
try:
|
||||
code = request.GET['code']
|
||||
dologging('polar.log',code)
|
||||
except MultiValueDictKeyError: # pragma: no cover
|
||||
try:
|
||||
message = request.GET['error']
|
||||
@@ -432,7 +433,21 @@ def rower_process_polarcallback(request):
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
access_token, expires_in, user_id = polarstuff.get_token(code)
|
||||
polar_user_data = polarstuff.register_user(request.user, access_token)
|
||||
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
|
||||
r = getrower(request.user)
|
||||
r.polartoken = access_token
|
||||
r.polartokenexpirydate = expirydatetime
|
||||
r.polaruserid = user_id
|
||||
|
||||
r.save()
|
||||
|
||||
if user_id:
|
||||
polar_user_data = polarstuff.register_user(request.user, access_token)
|
||||
else:
|
||||
messages.error(request,'Polar Flow Authorization Failed')
|
||||
url = reverse('rower_exportsettings_view')
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
|
||||
try:
|
||||
user_id2 = polar_user_data['polar-user-id']
|
||||
@@ -442,14 +457,14 @@ def rower_process_polarcallback(request):
|
||||
if user_id2 != user_id:
|
||||
messages.error(request,'Polar User ID error')
|
||||
|
||||
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
|
||||
#expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
|
||||
|
||||
r = getrower(request.user)
|
||||
r.polartoken = access_token
|
||||
r.polartokenexpirydate = expirydatetime
|
||||
r.polaruserid = user_id
|
||||
#r = getrower(request.user)
|
||||
#r.polartoken = access_token
|
||||
#r.polartokenexpirydate = expirydatetime
|
||||
#r.polaruserid = user_id
|
||||
|
||||
r.save()
|
||||
#r.save()
|
||||
|
||||
if user_id2 == user_id:
|
||||
successmessage = "Tokens stored. Good to go. Please check your import/export settings"
|
||||
|
||||
Reference in New Issue
Block a user