diff --git a/rowers/templates/403.html b/rowers/templates/403.html index fb4654ac..5a17218e 100644 --- a/rowers/templates/403.html +++ b/rowers/templates/403.html @@ -9,7 +9,8 @@

Forbidden

- Access forbidden. You probably tried to access functionality on a workout + Access forbidden. You probably tried to access functionality on a workout, + planned session or chart that is not owned by you.

diff --git a/rowers/views.py b/rowers/views.py index 64faceb5..32cf2fb6 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -518,7 +518,7 @@ def get_thumbnails(request,id): except Workout.DoesNotExist: raise Http404("Workout doesn't exist") if (checkworkoutuser(request.user,row)==False): - raise Http404("You are not allowed to edit this workout") + raise PermissionDenied("Access denied") r = getrower(request.user) result = request.user.is_authenticated() and ispromember(request.user) @@ -562,7 +562,7 @@ def get_testscript(request,id): except Workout.DoesNotExist: raise Http404("Workout doesn't exist") if (checkworkoutuser(request.user,row)==False): - raise Http404("You are not allowed to edit this workout") + raise PermissionDenied("Access denied") r = getrower(request.user) @@ -4931,7 +4931,7 @@ def workouts_join_select(request, theteam = 0 if r.rowerplan == 'basic' and theteam==0: - raise Http404("Not allowed") + raise PermissionDenied("Access denied") if theteam and (theteam.viewing == 'allmembers' or theteam.manager == request.user): workouts = Workout.objects.filter(team=theteam, @@ -5091,7 +5091,7 @@ def team_comparison_select(request, if r.rowerplan == 'basic' and theteam==0: if r.protrialexpires is None or r.protrialexpires1: url = reverse(plannedsession_teamedit_view, @@ -12330,8 +12330,8 @@ def plannedsession_view(request,id=0,rowerid=0): raise Http404("Planned Session does not exist") - if ps.manager != request.user: - raise Http404("You are not allowed to delete this planned session") + if ps.manager != request.user and r not in ps.rower.all(): + raise PermissionDenied("You do not have access to this session") psdict = my_dict_from_instance(ps,PlannedSession) @@ -12368,7 +12368,7 @@ def plannedsession_delete_view(request,id=0): if ps.manager != request.user: - raise Http404("You are not allowed to delete this planned session") + raise PermissionDenied("You are not allowed to delete this planned session") ws = Workout.objects.filter(plannedsession=ps) for w in ws: @@ -12393,7 +12393,7 @@ def plannedsession_deleteconfirm_view(request,id=0): if ps.manager != request.user: - raise Http404("You are not allowed to delete this planned session") + raise PermissionDenied("You are not allowed to delete this planned session") psdict = my_dict_from_instance(ps,PlannedSession)