Private
Public Access
1
0

Merge tag 'v22.3.0' into develop

rels
This commit is contained in:
2024-12-07 13:35:14 +01:00
13 changed files with 4393 additions and 21 deletions

View File

@@ -8,6 +8,72 @@ from django.core.mail import EmailMessage
from rowers import credits
@login_required()
def rower_idoklad_authorize(request):
state=str(uuid4())
params = {
"client_id":IDOKLAD_CLIENT_ID,
"response_type": "code",
"redirect_uri": IDOKLAD_REDIRECT_URI,
"scope": "idoklad_api offline_access",
}
url = "https://identity.idoklad.cz/server/connect/authorize?"+urllib.parse.urlencode(params)
return HttpResponseRedirect(url)
@login_required()
def process_idokladcallback(request):
dologging('idoklad.log',' /rowers/idokladcallback/')
try:
code = request.GET['code']
except KeyError:
error = request.GET['error']
messages.error(request,error)
return HttpResponseRedirect(reverse('workouts_view'))
post_data = {
'grant_type': "authorization_code",
'client_id': IDOKLAD_CLIENT_ID,
'client_secret': IDOKLAD_CLIENT_SECRET,
'scope': 'idoklad_api offline_access',
'code': code,
'redirect_uri': IDOKLAD_REDIRECT_URI,
}
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
}
base_url = 'https://identity.idoklad.cz/server/connect/token'
response = requests.post(base_url, data=post_data, headers=headers)
if response.status_code == 200:
result = response.json()
try:
t = iDokladToken.objects.get(id=1)
t.acces_token = result['access_token'],
t.refresh_token = result['refresh_token']
t.expires_in = result['expires_in']
t.id_token = result['id_token']
t.save()
except iDokladToken.DoesNotExist:
t = iDokladToken(
access_token = result['access_token'],
refresh_token = result['refresh_token'],
expires_in = result['expires_in'],
)
t.save()
messages.info(request,"Token refreshed and stored")
else:
messages.error(request,"Error")
url = reverse('rower_exportsettings_view')
return HttpResponseRedirect(url)
@csrf_exempt
def braintree_webhook_view(request):

View File

@@ -179,7 +179,7 @@ from rowers.models import ( RowerPowerForm, RowerHRZonesForm, SimpleRowerPowerFo
IndoorVirtualRaceForm, PlannedSessionCommentForm, Alert,
Condition, StaticChartRowerForm, FollowerForm,
VirtualRaceAthleteForm, InstantPlanForm, DataRowerForm,
StepEditorForm, )
StepEditorForm, iDokladToken )
from rowers.models import (
FavoriteForm, BaseFavoriteFormSet, SiteAnnouncement, BasePlannedSessionFormSet,
get_course_timezone, BaseConditionFormSet,
@@ -226,6 +226,7 @@ from rowsandall_app.settings import (
RECAPTCHA_SITE_KEY, RECAPTCHA_SITE_SECRET,
NK_REDIRECT_URI, NK_CLIENT_ID, NK_CLIENT_SECRET,
ROJABO_REDIRECT_URI, ROJABO_CLIENT_ID, ROJABO_CLIENT_SECRET,
IDOKLAD_REDIRECT_URI, IDOKLAD_CLIENT_ID, IDOKLAD_CLIENT_SECRET,
)
from django.contrib import messages