Private
Public Access
1
0

added is_coach permissions to user views (not tested)

This commit is contained in:
Sander Roosendaal
2020-01-13 16:20:50 +01:00
parent bf1ea191e7
commit d6c492080b
3 changed files with 49 additions and 39 deletions

View File

@@ -43,6 +43,15 @@ def user_is_not_basic(user):
def is_coach(user):
return user.rower.rowerplan in ['coach','freecoach']
@rules.predicate
def is_planmember(user):
try:
r = user.rower
except AttributeError:
return False
return r.rowerplan in ['coach','plan'] # freecoach?
@rules.predicate
def is_promember(user):
try:
@@ -50,7 +59,7 @@ def is_promember(user):
except AttributeError:
return False
return r.rowerplan in ['pro','coach','plan']
return r.rowerplan in ['pro','coach','plan'] # freecoach?
@rules.predicate
def is_protrial(user):
@@ -69,6 +78,23 @@ def is_protrial(user):
ispromember = is_promember | is_protrial
@rules.predicate
def is_plan(user):
try:
r = user.rower
except AttributeError:
return False
if r.rowerplan == 'basic':
return r.plantrialexpires >= datetime.date.today()
if r.rowerplan == 'freecoach':
if r.mycoachgroup is not None:
return len(r.mycoachgroup)>=4
return False
isplanmember = is_planmember | is_plantrial
# User / Coach relationships (Rower object)
@rules.predicate
@@ -99,6 +125,7 @@ def is_coach_user(user,rower):
return False
# check if rower and user are members of the same team
@rules.predicate
def is_rower_team_member(user,rower):
if user.rower == rower:
@@ -115,6 +142,7 @@ def is_rower_team_member(user,rower):
return False
# check if user can plan for the rower
@rules.predicate
def can_plan_user(user,rower):
try:
@@ -157,6 +185,7 @@ WORKOUT permissions
"""
# check if user is owner or coach of owner of workout
@rules.predicate
def is_workout_user(user,workout):
if user.is_anonymous:
@@ -172,7 +201,7 @@ def is_workout_user(user,workout):
return is_coach_user(workout.user.user,user.rower)
# check if user can see workout
@rules.predicate
def can_view_workout(user,workout):
if workout.privacy != 'private':
@@ -236,15 +265,18 @@ rules.add_perm('workout.view_workout',can_view_workout) # replaces checkworkoutu
"""
# check if user is manager of the team
@rules.predicate
def is_team_manager(user,team):
return team.manager == user
# check is user is member of team
@rules.predicate
def is_team_member(user,team):
members = team.rower.all()
return user in [member.user for member in members]
# check if user can view team
@rules.predicate
def can_view_team(user,team):
# user based