added is_coach permissions to user views (not tested)
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user