fixing export error
This commit is contained in:
@@ -440,6 +440,18 @@ WORKOUT permissions
|
||||
|
||||
# check if user is owner or coach of owner of workout
|
||||
|
||||
@rules.predicate
|
||||
def is_workout_owner(user, workout):
|
||||
if user.is_anonymous:
|
||||
return False
|
||||
|
||||
try:
|
||||
r = user.rower
|
||||
except AttributeError: # pragma: no cover
|
||||
return False
|
||||
|
||||
return workout.user.user == user
|
||||
|
||||
|
||||
@rules.predicate
|
||||
def is_workout_user(user, workout):
|
||||
@@ -507,7 +519,7 @@ can_change_workout = is_workout_user
|
||||
rules.add_perm('workout.change_workout', can_change_workout)
|
||||
# replaces checkworkoutuserview
|
||||
rules.add_perm('workout.view_workout', can_view_workout)
|
||||
|
||||
rules.add_perm('workout.is_owner', is_workout_owner)
|
||||
|
||||
# checkviewworkouts
|
||||
|
||||
|
||||
@@ -39,10 +39,15 @@ def default(o): # pragma: no cover
|
||||
raise TypeError
|
||||
|
||||
@login_required()
|
||||
@permission_required('workout.is_workout_owner', fn=get_user_by_userid, raise_exception=True)
|
||||
def workout_export_view(request, id=0, source='c2'):
|
||||
r = getrower(request.user)
|
||||
r = getrequestrower(request)
|
||||
w = get_workout_by_opaqueid(request, id)
|
||||
integration = importsources[source](request.user)
|
||||
if w.user != request.user:
|
||||
messages.error(request, 'You can only export your own workouts')
|
||||
url = reverse('workouts_view')
|
||||
return HttpResponseRedirect(url)
|
||||
integration = importsources[source](r.user)
|
||||
try:
|
||||
id = integration.workout_export(w)
|
||||
except NoTokenError: # pragma: no cover
|
||||
|
||||
@@ -83,7 +83,7 @@ from rowers.rower_rules import (
|
||||
can_start_trial, can_start_plantrial, can_start_coachtrial,
|
||||
can_plan, is_workout_team,
|
||||
is_promember,user_is_basic, is_coachtrial, is_coach,
|
||||
workout_is_strava
|
||||
workout_is_strava, is_workout_owner
|
||||
)
|
||||
|
||||
from django.shortcuts import render
|
||||
|
||||
@@ -2068,7 +2068,7 @@ def workouts_bulk_actions(request):
|
||||
if exportchoice.is_valid():
|
||||
destination = exportchoice.cleaned_data['destination']
|
||||
for w in workouts:
|
||||
integration = importsources[destination](request.user)
|
||||
integration = importsources[destination](r.user)
|
||||
try:
|
||||
id = integration.workout_export(w)
|
||||
messages.info(request,
|
||||
|
||||
Reference in New Issue
Block a user