needs some work on plan page
This commit is contained in:
@@ -1023,6 +1023,17 @@ def checkworkoutuser(user,workout):
|
||||
except Rower.DoesNotExist:
|
||||
return False
|
||||
|
||||
def checkviewworkouts(user,rower):
|
||||
try:
|
||||
r = user.rower
|
||||
if rower == r:
|
||||
return True
|
||||
teams = Team.objects.filter(manager=user)
|
||||
print Rower.objects.filter(team__in=teams)
|
||||
if rower in Rower.objects.filter(team__in=teams):
|
||||
return True
|
||||
except Rower.DoesNotExist:
|
||||
return False
|
||||
|
||||
# Check if user is coach or rower
|
||||
def checkaccessuser(user,rower):
|
||||
|
||||
@@ -82,27 +82,26 @@
|
||||
|
||||
<p> </p>
|
||||
|
||||
|
||||
|
||||
{% if user.is_authenticated and user|is_manager %}
|
||||
<p> </p>
|
||||
|
||||
{% if user|coach_rowers %}
|
||||
{% if user|team_members %}
|
||||
<ul class="cd-accordion-menu animated">
|
||||
<li class="has-children" id="athletes">
|
||||
<input type="checkbox" name="athlete-selector" id="athlete-selector">
|
||||
<label for="athlete-selector"><i class="fas fa-users fa-fw"></i> Athletes</label>
|
||||
<label for="athlete-selector"><i class="fas fa-users fa-fw"></i> Group Members</label>
|
||||
<ul>
|
||||
{% for member in user|coach_rowers %}
|
||||
<a href={{ request.path|userurl:member.user }}?when={{ timeperiod }}>
|
||||
<i class="fas fa-user fa-fw"></i>
|
||||
{% if member.user == rower.user %}
|
||||
•
|
||||
{% else %}
|
||||
|
||||
{% endif %}
|
||||
{{ member.user.first_name }} {{ member.user.last_name }}
|
||||
</a>
|
||||
{% for member in user|team_members %}
|
||||
<li>
|
||||
<a href={{ request.path|userurl:member }}>
|
||||
<i class="fas fa-user fa-fw"></i>
|
||||
{% if member == rower.user and not team %}
|
||||
•
|
||||
{% else %}
|
||||
|
||||
{% endif %}
|
||||
{{ member.first_name }} {{ member.last_name }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -45,8 +45,11 @@
|
||||
</li>
|
||||
</ul> <!-- cd-accordion-menu -->
|
||||
|
||||
|
||||
|
||||
{% if user.is_authenticated and user|is_manager %}
|
||||
<p> </p>
|
||||
|
||||
{% if user|coach_rowers %}
|
||||
<ul class="cd-accordion-menu animated">
|
||||
<li class="has-children" id="athletes">
|
||||
@@ -54,17 +57,15 @@
|
||||
<label for="athlete-selector"><i class="fas fa-users fa-fw"></i> Athletes</label>
|
||||
<ul>
|
||||
{% for member in user|coach_rowers %}
|
||||
<li>
|
||||
<a href={{ request.path|userurl:member.user }}>
|
||||
<i class="fas fa-user fa-fw"></i>
|
||||
{% if member.user == rower.user and not team %}
|
||||
•
|
||||
{% else %}
|
||||
|
||||
{% endif %}
|
||||
{{ member.user.first_name }} {{ member.user.last_name }}
|
||||
</a>
|
||||
</li>
|
||||
<a href={{ request.path|userurl:member.user }}?when={{ timeperiod }}>
|
||||
<i class="fas fa-user fa-fw"></i>
|
||||
{% if member == rower.user %}
|
||||
•
|
||||
{% else %}
|
||||
|
||||
{% endif %}
|
||||
{{ member.user.first_name }} {{ member.user.last_name }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -1414,3 +1414,10 @@ class PermissionsCoachingTests(TestCase):
|
||||
## Basic and Pro users can create races
|
||||
|
||||
## Basic users can subscribe to any race
|
||||
|
||||
|
||||
# group related
|
||||
|
||||
## group members can see but not edit each other's workouts and charts
|
||||
|
||||
## group members can see but not edit each other's plans
|
||||
|
||||
@@ -911,7 +911,7 @@ from rowers.utils import (
|
||||
|
||||
import rowers.datautils as datautils
|
||||
|
||||
from rowers.models import checkworkoutuser,checkaccessuser
|
||||
from rowers.models import checkworkoutuser,checkaccessuser,checkviewworkouts
|
||||
|
||||
# Check if a user is a Coach member
|
||||
def iscoachmember(user):
|
||||
|
||||
@@ -1157,7 +1157,7 @@ def workouts_view(request,message='',successmessage='',
|
||||
r = getrequestrower(request,rowerid=rowerid,userid=userid)
|
||||
|
||||
# check if access is allowed
|
||||
if not checkaccessuser(request.user,r):
|
||||
if not checkviewworkouts(request.user,r):
|
||||
raise PermissionDenied("Access denied")
|
||||
|
||||
if startdatestring:
|
||||
|
||||
Reference in New Issue
Block a user