bug fixing - bugs detected by manually poking around on the site
need additional testing suite to systematically go through all permissions need additional permissions check at Model level - models.py
This commit is contained in:
@@ -14,7 +14,7 @@ import datetime
|
||||
from requests import Request, Session
|
||||
import rowers.mytypes as mytypes
|
||||
from rowers.mytypes import otwtypes
|
||||
from rowers.rower_rules import is_workout_user
|
||||
from rowers.rower_rules import is_workout_user,ispromember
|
||||
from iso8601 import ParseError
|
||||
|
||||
import numpy
|
||||
@@ -156,7 +156,7 @@ def add_stroke_data(user,c2id,workoutid,startdatetime,csvfilename,
|
||||
|
||||
def get_c2_workouts(rower):
|
||||
|
||||
if not isprorower(rower):
|
||||
if not ispromember(rower.user):
|
||||
return 0
|
||||
|
||||
try:
|
||||
|
||||
@@ -193,15 +193,15 @@ def can_add_session(user):
|
||||
def can_plan(user):
|
||||
return user.rower.rowerplan in ['plan','coach','freecoach']
|
||||
|
||||
# checks if rower is coach of user
|
||||
# checks if rower is coach of user (or is user himself)
|
||||
@rules.predicate
|
||||
def is_coach_user(usercoach,userrower):
|
||||
if not is_coach(usercoach):
|
||||
return False
|
||||
|
||||
if usercoach == userrower:
|
||||
return True
|
||||
|
||||
if not is_coach(usercoach):
|
||||
return False
|
||||
|
||||
r = userrower.rower
|
||||
|
||||
coaches = []
|
||||
|
||||
@@ -18,7 +18,7 @@ queuehigh = django_rq.get_queue('low')
|
||||
|
||||
from rowers.dataprep import columndict
|
||||
|
||||
from rowers.rower_rules import is_workout_user
|
||||
from rowers.rower_rules import is_workout_user,ispromember
|
||||
|
||||
import stravalib
|
||||
from stravalib.exc import ActivityUploadFailed,TimeoutExceeded
|
||||
@@ -125,7 +125,7 @@ def get_strava_workout_list(user,limit_n=0):
|
||||
# gets all new Strava workouts for a rower
|
||||
def get_strava_workouts(rower):
|
||||
|
||||
if not isprorower(rower):
|
||||
if not ispromember(rower.user):
|
||||
return 0
|
||||
|
||||
try:
|
||||
|
||||
@@ -2343,9 +2343,10 @@ def rower_trainingplan_execution_view(request,
|
||||
)
|
||||
|
||||
|
||||
@user_passes_test(can_plan,login_url="/rowers/paidplans",
|
||||
message="This functionality requires a Coach or Self-Coach plan",
|
||||
redirect_field_name=None)
|
||||
#@user_passes_test(can_plan,login_url="/rowers/paidplans",
|
||||
# message="This functionality requires a Coach or Self-Coach plan",
|
||||
# redirect_field_name=None)
|
||||
@login_required()
|
||||
@permission_required('plan.view_plan',fn=get_plan_by_pk,raise_exception=True)
|
||||
def rower_trainingplan_view(request,
|
||||
id=0,
|
||||
|
||||
@@ -429,7 +429,7 @@ def getrequestplanrower(request,rowerid=0,userid=0,notpermanent=False):
|
||||
except Rower.DoesNotExist:
|
||||
raise Http404("Rower doesn't exist")
|
||||
|
||||
if not can_plan_user(request.user,r ):
|
||||
if r.user != request.user and not can_plan_user(request.user,r ):
|
||||
request.session['rowerid'] = r.id
|
||||
raise PermissionDenied("You have no access to this user")
|
||||
|
||||
|
||||
@@ -4775,22 +4775,22 @@ def workout_upload_view(request,
|
||||
return response
|
||||
else:
|
||||
if not is_ajax:
|
||||
if r.c2_auto_export and isprorower(r):
|
||||
if r.c2_auto_export and ispromember(r.user):
|
||||
uploadoptions['upload_to_C2'] = True
|
||||
|
||||
if r.strava_auto_export and isprorower(r):
|
||||
if r.strava_auto_export and ispromember(r.user):
|
||||
uploadoptions['upload_to_Strava'] = True
|
||||
|
||||
if r.sporttracks_auto_export and isprorower(r):
|
||||
if r.sporttracks_auto_export and ispromember(r.user):
|
||||
uploadoptions['upload_to_SportTracks'] = True
|
||||
|
||||
if r.runkeeper_auto_export and isprorower(r):
|
||||
if r.runkeeper_auto_export and ispromember(r.user):
|
||||
uploadoptions['upload_to_RunKeeper'] = True
|
||||
|
||||
if r.trainingpeaks_auto_export and isprorower(r):
|
||||
if r.trainingpeaks_auto_export and ispromember(r.user):
|
||||
uploadoptions['upload_to_TrainingPeaks'] = True
|
||||
|
||||
if r.mapmyfitness_auto_export and isprorower(r):
|
||||
if r.mapmyfitness_auto_export and ispromember(r.user):
|
||||
uploadoptions['upload_to_MapMyFitness'] = True
|
||||
|
||||
form = DocumentsForm(initial=docformoptions)
|
||||
|
||||
Reference in New Issue
Block a user