Private
Public Access
1
0

solving c2 imports, forbidding free coaches access to imports

This commit is contained in:
Sander Roosendaal
2021-06-10 08:53:35 +02:00
parent 98ba2a05ed
commit e80527c688
6 changed files with 65 additions and 3 deletions

View File

@@ -537,9 +537,16 @@ def workout_getnkworkout_all(request,startdatestring='',enddatestring=''):
@login_required()
@permission_required('rower.is_coach',fn=get_user_by_userid, raise_exception=True)
@permission_required('rower.is_not_freecoach',fn=get_user_by_userid, raise_exception=True)
def workout_nkimport_view(request,userid=0,after=0,before=0):
startdate,enddate = get_dates_timeperiod(request,defaulttimeperiod='last30')
r = getrequestrower(request,userid=userid)
if r.user != request.user:
print(r,r.user,request.user)
messages.error(request,'You can only access your own workouts on the NK Logbook, not those of your athletes')
url = reverse('workout_nkimport_view',kwargs={'userid':request.user.id})
return HttpResponseRedirect(url)
try:
thetoken = nk_open(request.user)
except NoTokenError: # pragma: no cover
@@ -908,8 +915,14 @@ def workout_rp3import_view(request,userid=0):
# The page where you select which Strava workout to import
@login_required()
@permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True)
@permission_required('rower.is_not_freecoach',fn=get_user_by_userid, raise_exception=True)
def workout_stravaimport_view(request,message="",userid=0):
r = getrequestrower(request,userid=userid)
if r.user != request.user:
print(r,r.user,request.user)
messages.error(request,'You can only access your own workouts on the NK Logbook, not those of your athletes')
url = reverse('workout_stravaimport_view',kwargs={'userid':request.user.id})
return HttpResponseRedirect(url)
#if r.user != request.user:
# messages.info(request,"You cannot import other people's workouts from Strava")
try:
@@ -1260,6 +1273,7 @@ def garmin_details_view(request):
# the page where you select which Polar workout to Import
@login_required()
@permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True)
@permission_required('rower.is_not_freecoach',fn=get_user_by_userid, raise_exception=True)
def workout_polarimport_view(request,userid=0): # pragma: no cover
exercises = polarstuff.get_polar_workouts(request.user)
workouts = []
@@ -1318,8 +1332,14 @@ def workout_polarimport_view(request,userid=0): # pragma: no cover
# The page where you select which SportTracks workout to import
@login_required()
@permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True)
@permission_required('rower.is_not_freecoach',fn=get_user_by_userid, raise_exception=True)
def workout_sporttracksimport_view(request,message="",userid=0):
r = getrequestrower(request,userid=userid)
if r.user != request.user:
print(r,r.user,request.user)
messages.error(request,'You can only access your own workouts on the NK Logbook, not those of your athletes')
url = reverse('workout_sporttracksimport_view',kwargs={'userid':request.user.id})
return HttpResponseRedirect(url)
res = sporttracksstuff.get_sporttracks_workout_list(request.user)
if (res.status_code != 200):
@@ -1339,7 +1359,7 @@ def workout_sporttracksimport_view(request,message="",userid=0):
return HttpResponseRedirect(url)
workouts = []
r = getrower(request.user)
stids = [int(getidfromuri(item['uri'])) for item in res.json()['items']]
knownstids = uniqify([
w.uploadedtosporttracks for w in Workout.objects.filter(user=r)
@@ -1469,9 +1489,15 @@ def workout_getrp3workout_all(request): # pragma: no cover
# List of workouts available on Concept2 logbook - for import
@login_required()
@permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True)
@permission_required('rower.is_not_freecoach',fn=get_user_by_userid, raise_exception=True)
def workout_c2import_view(request,page=1,userid=0,message=""):
r = getrequestrower(request,userid=userid)
if r.user != request.user:
print(r,r.user,request.user)
messages.error(request,'You can only access your own workouts on the NK Logbook, not those of your athletes')
url = reverse('workout_c2import_view',kwargs={'userid':request.user.id})
return HttpResponseRedirect(url)
try:
thetoken = c2_open(request.user)
@@ -1581,8 +1607,14 @@ importsources = {
}
@login_required()
@permission_required('rower.is_not_freecoach',fn=get_user_by_userid, raise_exception=True)
def workout_getrp3importview(request,externalid):
r = getrequestrower(request)
if r.user != request.user:
print(r,r.user,request.user)
messages.error(request,'You can only access your own workouts on the NK Logbook, not those of your athletes')
url = reverse('workout_rp3import_view',kwargs={'userid':request.user.id})
return HttpResponseRedirect(url)
token = rp3stuff.rp3_open(r.user)
startdatetime = request.GET.get('startdatetime')