From 17f2b568ff5dbc412848310e03806d0a65a8f79d Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 19 Jan 2020 12:34:04 +0100 Subject: [PATCH] working on one row --- rowers/tests/test_permissions2.py | 205 ++++++---- viewnames.csv | 624 +++++++++++++++--------------- 2 files changed, 451 insertions(+), 378 deletions(-) diff --git a/rowers/tests/test_permissions2.py b/rowers/tests/test_permissions2.py index 06313695..2cb95f0e 100644 --- a/rowers/tests/test_permissions2.py +++ b/rowers/tests/test_permissions2.py @@ -6,83 +6,107 @@ class PermissionsViewTests(TestCase): self.c = Client() ## Users - Pro, Basic, Coach & Self Coach - self.ucoach = UserFactory(username='coachuser') - self.rcoach = Rower.objects.create(user=self.ucoach, + ucoach = UserFactory(username='coachuser') + rcoach = Rower.objects.create(user=ucoach, birthdate=faker.profile()['birthdate'], gdproptin=True,surveydone=True,gdproptindate=timezone.now(), rowerplan='coach',clubsize=10) - self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach) - self.coachinggroup = CoachingGroup.objects.create() - self.rcoach.mycoachgroup = self.coachinggroup - self.rcoach.save() - self.factory = RequestFactory() - self.ucoachpassword = faker.word() - self.ucoach.set_password(self.ucoachpassword) - self.ucoach.save() + ucoach_workouts = WorkoutFactory.create_batch(5, user=rcoach) + coachinggroup = CoachingGroup.objects.create() + rcoach.mycoachgroup = coachinggroup + rcoach.save() - self.uplan = UserFactory(username='planuser') - self.rplan = Rower.objects.create(user=self.uplan, + ucoachpassword = faker.word() + ucoach.set_password(ucoachpassword) + ucoach.save() + + self.ucoach = { + 'user': ucoach, + 'password': ucoachpassword, + 'username': ucoach.username, + 'workouts': ucoach_workouts, + } + + uplan = UserFactory(username='planuser') + rplan = Rower.objects.create(user=uplan, birthdate=faker.profile()['birthdate'], gdproptin=True,surveydone=True,gdproptindate=timezone.now(), - rowerplan='plan') + rowerplan='plan',clubsize=10) - self.uplan_workouts = WorkoutFactory.create_batch(5, user=self.rplan) - self.factory = RequestFactory() - self.uplanpassword = faker.word() - self.uplan.set_password(self.uplanpassword) - self.uplan.save() + uplan_workouts = WorkoutFactory.create_batch(5, user=rplan) + rcoach.save() - self.upro = UserFactory(username='prouser') - self.rpro = Rower.objects.create(user=self.upro, + uplanpassword = faker.word() + uplan.set_password(uplanpassword) + uplan.save() + + self.uplan = { + 'user': uplan, + 'password': uplanpassword, + 'username': uplan.username, + 'workouts': uplan_workouts, + } + + uplan2 = UserFactory(username='plan2user') + rplan2 = Rower.objects.create(user=uplan2, birthdate=faker.profile()['birthdate'], gdproptin=True,surveydone=True,gdproptindate=timezone.now(), - rowerplan='pro') + rowerplan='plan',clubsize=10) - self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro) - self.factory = RequestFactory() - self.upropassword = faker.word() - self.upro.set_password(self.upropassword) - self.upro.save() + uplan2_workouts = WorkoutFactory.create_batch(5, user=rplan2) + rcoach.save() - self.uplan2 = UserFactory(username='planuser2') - self.rplan2 = Rower.objects.create(user=self.uplan2, + uplan2password = faker.word() + uplan2.set_password(uplan2password) + uplan2.save() + + self.uplan2 = { + 'user': uplan2, + 'password': uplan2password, + 'username': uplan2.username, + 'workouts': uplan2_workouts, + } + + upro = UserFactory(username='prouser') + rpro = Rower.objects.create(user=upro, birthdate=faker.profile()['birthdate'], gdproptin=True,surveydone=True,gdproptindate=timezone.now(), - rowerplan='plan') + rowerplan='pro',clubsize=10) - self.uplan2_workouts = WorkoutFactory.create_batch(5, user=self.rplan2) - self.factory = RequestFactory() - self.uplan2password = faker.word() - self.uplan2.set_password(self.uplan2password) - self.uplan2.save() + upro_workouts = WorkoutFactory.create_batch(5, user=rpro) + rcoach.save() - self.upro2 = UserFactory(username='prouser2') - self.rpro2 = Rower.objects.create(user=self.upro2, + upropassword = faker.word() + upro.set_password(upropassword) + upro.save() + + self.upro = { + 'user': upro, + 'password': upropassword, + 'username': upro.username, + 'workouts': upro_workouts, + } + + ubasic = UserFactory(username='basicuser') + rbasic = Rower.objects.create(user=ubasic, birthdate=faker.profile()['birthdate'], gdproptin=True,surveydone=True,gdproptindate=timezone.now(), - rowerplan='pro') + rowerplan='basic',clubsize=10) - self.upro2_workouts = WorkoutFactory.create_batch(5, user=self.rpro2) - self.factory = RequestFactory() - self.upro2password = faker.word() - self.upro2.set_password(self.upro2password) - self.upro2.save() + ubasic_workouts = WorkoutFactory.create_batch(5, user=rbasic) + rcoach.save() - self.ubasic = UserFactory(username='basicuser') - self.rbasic = Rower.objects.create(user=self.ubasic, - birthdate=faker.profile()['birthdate'], - gdproptin=True,surveydone=True,gdproptindate=timezone.now(), - rowerplan='basic') - - self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic) - self.ubasic_workouts[0].privacy == 'private' - - self.factory = RequestFactory() - self.ubasicpassword = faker.word() - self.ubasic.set_password(self.ubasicpassword) - self.ubasic.save() + ubasicpassword = faker.word() + ubasic.set_password(ubasicpassword) + ubasic.save() + self.ubasic = { + 'user': ubasic, + 'password': ubasicpassword, + 'username': ubasic.username, + 'workouts': ubasic_workouts, + } ## TeamPro, TeamCoach, TeamSelfCoach @@ -90,17 +114,17 @@ class PermissionsViewTests(TestCase): self.teampro = Team.objects.create( name=faker.word(), notes=faker.text(), - manager=self.upro2) + manager=self.upro['user']) self.teamplan = Team.objects.create( name=faker.word()+'2', notes=faker.text(), - manager=self.uplan2) + manager=self.uplan2['user']) self.teamcoach = Team.objects.create( name=faker.word()+'3', notes=faker.text(), - manager=self.ucoach) + manager=self.ucoach['user']) viewstotest = [ ('workout_view', @@ -109,17 +133,23 @@ class PermissionsViewTests(TestCase): 'anonymous_response':200, 'own': 'basic', 'own_response': 200, + 'own_nonperm': 302, 'member': 'basic', 'member_response': 200, + 'member_nonperm': 404, 'coachee': 'coach', 'coachee_response': 200, - 'workoutid': False, - 'userid': True, + 'coachee_nonperm': 404, + 'is_staff': False, + 'workoutid': True, + 'userid': False, } ) ] + + @parameterized.expand(viewstotest) @patch('rowers.dataprep.create_engine') @patch('rowers.dataprep.read_df_sql') @@ -137,10 +167,53 @@ class PermissionsViewTests(TestCase): mocked_get_video_data, ): - for p in permissions: - url = reverse(view,kwargs=p['kwargs']) - if p['login']: - login = self.c.login(kwargs=p['login']) + if permissions['anonymous'] and not permissions['is_staff']: + urlstotest = [] + if permissions['workoutid']: + url = reverse(view,kwargs={'id':encoder.encode_hex(self.ucoach['workouts'][0].id)}) + urlstotest.append(url) + else: + url = reverse(view) - response = self.c.get(url,follow=True) - self.assertEqual(response.status_code,200) + for url in urlstotest: + print(url) + result = self.c.get(url) + self.assertEqual(result.status_code,permissions['anonymous_response']) + + if permissions['own'] and not permissions['is_staff']: + urlstotest = [] + falseurlstotest = [] + if permissions['own'] == 'basic': + thisuser = self.ubasic + notuser = None + elif permissions['own'] == 'pro': + thisuser = self.upro + notuser = self.ubasic + elif permissions['own'] == 'plan': + thisuser = self.uplan + notuser = self.upro + elif permissions['own'] == 'coach': + thisuser = self.ucoach + notuser = self.uplan + + + if permissions['workoutid']: + workouts = thisuser['workouts'] + url = reverse(view,kwargs={'id':encoder.encode_hex(workouts[0].id)}) + urlstotest.append(url) + if notuser: + workouts = notuser['workouts'] + url = reverse(view,kwargs={'id':encoder.encode_hex(workouts[0].id)}) + falseurlstotest.append(url) + + for url in urlstotest: + print(url) + login = self.c.login(username = thisuser['username'],password = thisuser['password']) + result = self.c.get(url) + self.assertEqual(result.status_code, permissions['own_response']) + + for url in falseurlstotest: + print(url) + login = self.c.login(username = notuser['username'],password = notuser['password']) + result = self.c.get(url) + self.assertEqual(result.status_code, permissions['own_response']) diff --git a/viewnames.csv b/viewnames.csv index e2047205..93b0bdc9 100644 --- a/viewnames.csv +++ b/viewnames.csv @@ -1,312 +1,312 @@ -,id,view,anonymous,anonymous_response,own,own_response,member,member_response,coachee,coachee_response,staff_only,userid,workoutid -0,0,workouts_summaries_email_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -1,1,rower_update_empower_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -2,2,agegroupcpview,TRUE,200,basic,200,basic,200,coach,200,True,False,False -3,4,ajax_agegrouprecords,TRUE,200,basic,200,basic,200,coach,200,True,False,False -4,5,fitness_metric_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -5,6,agegrouprecordview,TRUE,200,basic,200,basic,200,coach,200,True,False,False -6,7,workouts_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -7,8,virtualevents_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -8,9,virtualevent_create_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -9,10,indoorvirtualevent_create_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -10,11,virtualevent_toggle_email_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -11,12,indoorvirtualevent_toggle_email_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -12,13,virtualevent_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -13,14,virtualevent_ranking_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -14,15,virtualevent_edit_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -15,16,indoorvirtualevent_edit_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -16,17,virtualevent_register_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -17,18,indoorvirtualevent_register_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -18,19,virtualevent_addboat_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -19,20,virtualevent_withdraw_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -20,21,virtualevent_submit_result_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -21,22,virtualevent_disqualify_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -22,24,courses_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -23,25,course_upload_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -24,26,addmanual_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -25,27,team_comparison_select,TRUE,200,basic,200,basic,200,coach,200,True,True,True -26,28,workouts_join_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -27,29,workouts_join_select,TRUE,200,basic,200,basic,200,coach,200,True,True,False -28,30,user_boxplot_select,TRUE,200,basic,200,basic,200,coach,200,True,True,False -29,31,analysis_new,TRUE,200,basic,200,basic,200,coach,200,True,True,False -30,32,user_multiflex_select,TRUE,200,basic,200,basic,200,coach,200,True,True,False -31,33,session_jobs_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -32,34,session_jobs_status,TRUE,200,basic,200,basic,200,coach,200,True,False,False -33,35,kill_async_job,TRUE,200,basic,200,basic,200,coach,200,True,False,False -34,36,post_progress,TRUE,200,basic,200,basic,200,coach,200,True,False,False -35,37,graphs_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -36,38,fitnessmetric_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -37,39,rankings_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -38,40,rankings_view2,TRUE,200,basic,200,basic,200,coach,200,True,False,False -39,41,otwrankings_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -40,42,oterankings_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -41,43,cum_flex,TRUE,200,basic,200,basic,200,coach,200,True,False,False -42,44,analysis_view_data,TRUE,200,basic,200,basic,200,coach,200,True,False,False -43,47,cum_flex_data,TRUE,200,basic,200,basic,200,coach,200,True,False,False -44,48,histo,TRUE,200,basic,200,basic,200,coach,200,True,False,False -45,49,histo_data,TRUE,200,basic,200,basic,200,coach,200,True,False,False -46,51,cumstats,TRUE,200,basic,200,basic,200,coach,200,True,True,False -47,53,graph_show_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -48,54,GraphDelete,TRUE,200,basic,200,basic,200,coach,200,True,False,False -49,55,get_thumbnails,TRUE,200,basic,200,basic,200,coach,200,True,False,True -50,56,otw_use_impeller,TRUE,200,basic,200,basic,200,coach,200,True,False,True -51,57,otw_use_gps,TRUE,200,basic,200,basic,200,coach,200,True,False,True -52,58,workout_toggle_ranking,TRUE,200,basic,200,basic,200,coach,200,True,False,True -53,59,team_workout_upload_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -54,60,workout_upload_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -55,61,workout_histo_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -56,62,workout_forcecurve_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -57,63,workout_unsubscribe_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -58,64,workout_comment_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -59,65,workout_tcxemail_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -60,66,workout_gpxemail_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -61,67,workout_csvemail_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -62,68,workout_csvtoadmin_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -63,69,workout_edit_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -64,70,workout_map_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -65,71,workout_update_cp_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -66,72,instroke_chart,TRUE,200,basic,200,basic,200,coach,200,True,False,False -67,73,instroke_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -68,74,workout_stats_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -69,75,workout_data_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -70,76,workout_otwsetpower_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -71,77,workout_otwpowerplot_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -72,78,workout_wind_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -73,79,workout_uploadimage_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -74,80,virtualevent_compare_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -75,81,virtualevent_uploadimage_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -76,82,virtualevent_setlogo_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -77,83,logo_delete_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -78,84,workout_downloadwind_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -79,85,workout_downloadmetar_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -80,86,workout_stream_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -81,87,workout_summary_edit_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -82,88,workout_summary_restore_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -83,89,workout_split_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -84,90,workout_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -85,91,workout_video_create_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -86,92,VideoDelete,TRUE,200,basic,200,basic,200,coach,200,True,False,False -87,93,workout_video_view_mini,TRUE,200,basic,200,basic,200,coach,200,True,False,True -88,94,workout_video_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -89,95,list_videos,TRUE,200,basic,200,basic,200,coach,200,True,False,False -90,96,video_selectworkout,TRUE,200,basic,200,basic,200,coach,200,True,False,False -91,98,workout_fusion_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -92,99,workout_fusion_list,TRUE,200,basic,200,basic,200,coach,200,True,False,True -93,100,TemplateView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -94,103,workout_add_chart_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -95,112,WorkoutDelete,TRUE,200,basic,200,basic,200,coach,200,True,False,False -96,113,workout_smoothenpace_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -97,114,workout_undo_smoothenpace_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -98,115,workout_c2import_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -99,120,workout_stravaimport_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -100,122,workout_getc2workout_all,TRUE,200,basic,200,basic,200,coach,200,True,False,False -101,124,workout_getimportview,TRUE,200,basic,200,basic,200,coach,200,True,False,False -102,125,workout_getstravaworkout_all,TRUE,200,basic,200,basic,200,coach,200,True,False,False -103,126,workout_getstravaworkout_next,TRUE,200,basic,200,basic,200,coach,200,True,False,False -104,127,workout_sporttracksimport_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -105,129,workout_getsporttracksworkout_all,TRUE,200,basic,200,basic,200,coach,200,True,False,False -106,130,workout_polarimport_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -107,132,workout_runkeeperimport_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -108,134,workout_underarmourimport_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -109,135,workout_c2_upload_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -110,136,workout_strava_upload_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -111,137,workout_recalcsummary_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -112,138,workout_sporttracks_upload_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -113,139,workout_runkeeper_upload_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -114,140,workout_underarmour_upload_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -115,141,workout_tp_upload_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -116,142,multi_compare_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -117,145,alerts_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -118,147,AlertDelete,TRUE,200,basic,200,basic,200,coach,200,True,False,False -119,148,alert_edit_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -120,150,alert_create_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -121,152,alert_report_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -122,155,boxplot_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -123,157,boxplot_view_data,TRUE,200,basic,200,basic,200,coach,200,True,False,False -124,158,multiflex_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -125,160,multiflex_data,TRUE,200,basic,200,basic,200,coach,200,True,False,False -126,161,deactivate_user,TRUE,200,basic,200,basic,200,coach,200,True,False,False -127,162,remove_user,TRUE,200,basic,200,basic,200,coach,200,True,False,False -128,163,user_gdpr_confirm,TRUE,200,basic,200,basic,200,coach,200,True,False,False -129,165,user_gdpr_optin,TRUE,200,basic,200,basic,200,coach,200,True,False,False -130,167,rower_teams_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -131,168,rower_calcdps_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -132,169,rower_exportsettings_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -133,171,team_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -134,172,team_members_stats_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -135,173,team_edit_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -136,174,team_leaveconfirm_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -137,175,team_leave_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -138,176,team_deleteconfirm_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -139,177,team_requestmembership_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -140,178,reject_revoke_coach_request,TRUE,200,basic,200,basic,200,coach,200,True,False,False -141,179,coach_drop_athlete_confirm_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -142,180,coach_drop_athlete_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -143,181,athlete_drop_coach_confirm_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -144,182,athlete_drop_coach_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -145,184,reject_revoke_coach_offer,TRUE,200,basic,200,basic,200,coach,200,True,False,False -146,186,request_coaching_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -147,187,offer_coaching_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -148,188,coach_accept_coachrequest_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -149,189,rower_accept_coachoffer_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -150,190,team_delete_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -151,191,team_create_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -152,192,manager_member_drop_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -153,193,invitation_reject_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -154,194,invitation_revoke_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -155,195,rower_invitations_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -156,196,raise_500,TRUE,200,basic,200,basic,200,coach,200,True,False,False -157,198,request_revoke_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -158,199,request_reject_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -159,200,manager_requests_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -160,202,rower_edit_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -161,204,rower_prefs_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -162,205,transactions_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -163,208,rower_c2_authorize,TRUE,200,basic,200,basic,200,coach,200,True,False,False -164,209,rower_polar_authorize,TRUE,200,basic,200,basic,200,coach,200,True,False,False -165,210,rower_revokeapp_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -166,211,rower_strava_authorize,TRUE,200,basic,200,basic,200,coach,200,True,False,False -167,212,rower_sporttracks_authorize,TRUE,200,basic,200,basic,200,coach,200,True,False,False -168,213,rower_underarmour_authorize,TRUE,200,basic,200,basic,200,coach,200,True,False,False -169,214,rower_tp_authorize,TRUE,200,basic,200,basic,200,coach,200,True,False,False -170,215,rower_runkeeper_authorize,TRUE,200,basic,200,basic,200,coach,200,True,False,False -171,216,rower_sporttracks_token_refresh,TRUE,200,basic,200,basic,200,coach,200,True,False,False -172,217,rower_underarmour_token_refresh,TRUE,200,basic,200,basic,200,coach,200,True,False,False -173,218,rower_tp_token_refresh,TRUE,200,basic,200,basic,200,coach,200,True,False,False -174,219,rower_c2_token_refresh,TRUE,200,basic,200,basic,200,coach,200,True,False,False -175,220,rower_favoritecharts_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -176,222,workout_workflow_config2_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -177,224,workflow_default_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -178,225,sendmail,TRUE,200,basic,200,basic,200,coach,200,True,False,False -179,231,analysis_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -180,232,laboratory_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -181,233,errormessage_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -182,237,payment_confirm_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -183,238,upgrade_confirm_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -184,240,downgrade_confirm_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -185,241,billing_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -186,242,upgrade_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -187,243,downgrade_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -188,244,payment_completed_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -189,245,downgrade_completed_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -190,246,paidplans_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -191,247,plan_stop_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -192,248,plan_tobasic_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -193,249,checkouts_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -194,250,upgrade_checkouts_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -195,251,downgrade_checkouts_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -196,252,planrequired_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -197,253,start_trial_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -198,254,start_plantrial_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -199,256,rower_register_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -200,257,freecoach_register_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -201,259,workout_workflow_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -202,260,workout_flexchart3_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True -203,264,rower_process_testcallback,TRUE,200,basic,200,basic,200,coach,200,True,False,False -204,265,rower_create_trainingplan,TRUE,200,basic,200,basic,200,coach,200,True,False,False -205,267,TrainingPlanDelete,TRUE,200,basic,200,basic,200,coach,200,True,False,False -206,268,MicroCycleDelete,TRUE,200,basic,200,basic,200,coach,200,True,False,False -207,269,MesoCycleDelete,TRUE,200,basic,200,basic,200,coach,200,True,False,False -208,270,MacroCycleDelete,TRUE,200,basic,200,basic,200,coach,200,True,False,False -209,271,rower_trainingplan_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -210,279,rower_trainingplan_execution_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -211,281,TrainingMacroCycleUpdate,TRUE,200,basic,200,basic,200,coach,200,True,False,False -212,282,TrainingMesoCycleUpdate,TRUE,200,basic,200,basic,200,coach,200,True,False,False -213,283,planmacrocyclebymonth,TRUE,200,basic,200,basic,200,coach,200,True,False,False -214,285,planmesocyclebyweek,TRUE,200,basic,200,basic,200,coach,200,True,False,False -215,287,TrainingMicroCycleUpdate,TRUE,200,basic,200,basic,200,coach,200,True,False,False -216,288,rower_delete_trainingtarget,TRUE,200,basic,200,basic,200,coach,200,True,False,False -217,289,TrainingPlanUpdate,TRUE,200,basic,200,basic,200,coach,200,True,False,False -218,290,TrainingTargetUpdate,TRUE,200,basic,200,basic,200,coach,200,True,False,False -219,291,strokedataform,TRUE,200,basic,200,basic,200,coach,200,True,False,False -220,292,plannedsession_teamcreate_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -221,296,plannedsession_teamedit_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -222,298,plannedsession_create_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -223,300,plannedsession_multiclone_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -224,302,plannedsession_multicreate_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -225,305,plannedsession_edit_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -226,306,plannedsession_totemplate_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -227,307,plannedsession_compare_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -228,310,plannedsession_clone_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -229,311,plannedsession_teamclone_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -230,313,plannedsession_detach_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -231,315,plannedsession_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -232,317,PlannedSessionDelete,TRUE,200,basic,200,basic,200,coach,200,True,False,False -233,319,plannedsessions_manage_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -234,323,plannedsessions_coach_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -235,325,plannedsessions_coach_icsemail_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -236,326,plannedsessions_print_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -237,327,plannedsession_comment_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -238,330,plannedsessions_icsemail_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -239,332,plannedsessions_view,TRUE,200,basic,200,basic,200,coach,200,True,True,False -240,334,course_edit_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -241,335,course_delete_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -242,336,course_kmldownload_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -243,337,course_replace_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -244,338,course_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -245,339,course_map_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -246,341,c2listdebug_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -247,343,rower_process_callback,TRUE,200,basic,200,basic,200,coach,200,True,False,False -248,344,rower_process_stravacallback,TRUE,200,basic,200,basic,200,coach,200,True,False,False -249,345,rower_process_sporttrackscallback,TRUE,200,basic,200,basic,200,coach,200,True,False,False -250,346,rower_process_underarmourcallback,TRUE,200,basic,200,basic,200,coach,200,True,False,False -251,347,rower_process_polarcallback,TRUE,200,basic,200,basic,200,coach,200,True,False,False -252,348,rower_process_runkeepercallback,TRUE,200,basic,200,basic,200,coach,200,True,False,False -253,349,rower_process_tpcallback,TRUE,200,basic,200,basic,200,coach,200,True,False,False -254,350,rower_process_twittercallback,TRUE,200,basic,200,basic,200,coach,200,True,False,False -255,351,set_language,TRUE,200,basic,200,basic,200,coach,200,True,False,False -256,352,SetOffsetView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -257,353,stats,TRUE,200,basic,200,basic,200,coach,200,True,False,False -258,354,stats_json,TRUE,200,basic,200,basic,200,coach,200,True,False,False -259,355,jobs,TRUE,200,basic,200,basic,200,coach,200,True,False,False -260,356,workers,TRUE,200,basic,200,basic,200,coach,200,True,False,False -261,357,worker_details,TRUE,200,basic,200,basic,200,coach,200,True,False,False -262,358,finished_jobs,TRUE,200,basic,200,basic,200,coach,200,True,False,False -263,359,started_jobs,TRUE,200,basic,200,basic,200,coach,200,True,False,False -264,360,deferred_jobs,TRUE,200,basic,200,basic,200,coach,200,True,False,False -265,361,clear_queue,TRUE,200,basic,200,basic,200,coach,200,True,False,False -266,362,requeue_all,TRUE,200,basic,200,basic,200,coach,200,True,False,False -267,363,job_detail,TRUE,200,basic,200,basic,200,coach,200,True,False,False -268,364,delete_job,TRUE,200,basic,200,basic,200,coach,200,True,False,False -269,365,actions,TRUE,200,basic,200,basic,200,coach,200,True,False,False -270,366,requeue_job_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -271,367,enqueue_job,TRUE,200,basic,200,basic,200,coach,200,True,False,False -272,368,JavaScriptCatalog,TRUE,200,basic,200,basic,200,coach,200,True,False,False -273,369,serve,TRUE,200,basic,200,basic,200,coach,200,True,False,False -274,371,LoginView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -275,372,LogoutView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -276,373,PasswordChangeView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -277,374,PasswordChangeDoneView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -278,375,PasswordResetView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -279,376,PasswordResetDoneView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -280,377,PasswordResetConfirmView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -281,378,PasswordResetCompleteView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -282,386,index,TRUE,200,basic,200,basic,200,coach,200,True,False,False -283,387,login,TRUE,200,basic,200,basic,200,coach,200,True,False,False -284,388,logout,TRUE,200,basic,200,basic,200,coach,200,True,False,False -285,389,password_change,TRUE,200,basic,200,basic,200,coach,200,True,False,False -286,390,password_change_done,TRUE,200,basic,200,basic,200,coach,200,True,False,False -287,391,i18n_javascript,TRUE,200,basic,200,basic,200,coach,200,True,False,False -288,392,shortcut,TRUE,200,basic,200,basic,200,coach,200,True,False,False -289,393,changelist_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -290,394,add_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -291,395,autocomplete_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -292,396,history_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -293,397,delete_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -294,398,change_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -295,399,RedirectView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -296,568,app_index,TRUE,200,basic,200,basic,200,coach,200,True,False,False -297,571,landingview,TRUE,200,basic,200,basic,200,coach,200,True,False,False -298,573,get_blog_posts,TRUE,200,basic,200,basic,200,coach,200,True,False,False -299,576,AuthorizationView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -300,577,TokenView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -301,578,WorkoutViewSet,TRUE,200,basic,200,basic,200,coach,200,True,False,False -302,582,RowerViewSet,TRUE,200,basic,200,basic,200,coach,200,True,False,False -303,586,FavoriteChartViewSet,TRUE,200,basic,200,basic,200,coach,200,True,False,False -304,590,APIRootView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -305,592,SwaggerSchemaView,TRUE,200,basic,200,basic,200,coach,200,True,False,False -306,595,strokedatajson,TRUE,200,basic,200,basic,200,coach,200,True,False,True -307,596,error500_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -308,603,failed_queue_view,TRUE,200,basic,200,basic,200,coach,200,True,False,False -309,604,failed_queue_empty,TRUE,200,basic,200,basic,200,coach,200,True,False,False -310,605,failed_job_view,TRUE,200,basic,200,basic,200,coach,200,True,False,True +,id,view,anonymous,anonymous_response,own,own_response,own_nonperm,member,member_response,member_nonperm,coachee,coachee_response,coachee_nonperm,is_staff,userid,workoutid +0,0,workouts_summaries_email_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +1,1,rower_update_empower_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +2,2,agegroupcpview,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +3,4,ajax_agegrouprecords,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +4,5,fitness_metric_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +5,6,agegrouprecordview,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +6,7,workouts_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +7,8,virtualevents_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +8,9,virtualevent_create_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +9,10,indoorvirtualevent_create_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +10,11,virtualevent_toggle_email_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +11,12,indoorvirtualevent_toggle_email_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +12,13,virtualevent_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +13,14,virtualevent_ranking_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +14,15,virtualevent_edit_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +15,16,indoorvirtualevent_edit_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +16,17,virtualevent_register_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +17,18,indoorvirtualevent_register_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +18,19,virtualevent_addboat_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +19,20,virtualevent_withdraw_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +20,21,virtualevent_submit_result_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +21,22,virtualevent_disqualify_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +22,24,courses_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +23,25,course_upload_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +24,26,addmanual_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +25,27,team_comparison_select,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,True +26,28,workouts_join_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +27,29,workouts_join_select,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +28,30,user_boxplot_select,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +29,31,analysis_new,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +30,32,user_multiflex_select,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +31,33,session_jobs_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +32,34,session_jobs_status,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +33,35,kill_async_job,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +34,36,post_progress,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +35,37,graphs_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +36,38,fitnessmetric_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +37,39,rankings_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +38,40,rankings_view2,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +39,41,otwrankings_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +40,42,oterankings_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +41,43,cum_flex,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +42,44,analysis_view_data,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +43,47,cum_flex_data,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +44,48,histo,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +45,49,histo_data,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +46,51,cumstats,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +47,53,graph_show_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +48,54,GraphDelete,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +49,55,get_thumbnails,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +50,56,otw_use_impeller,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +51,57,otw_use_gps,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +52,58,workout_toggle_ranking,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +53,59,team_workout_upload_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +54,60,workout_upload_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +55,61,workout_histo_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +56,62,workout_forcecurve_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +57,63,workout_unsubscribe_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +58,64,workout_comment_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +59,65,workout_tcxemail_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +60,66,workout_gpxemail_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +61,67,workout_csvemail_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +62,68,workout_csvtoadmin_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +63,69,workout_edit_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +64,70,workout_map_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +65,71,workout_update_cp_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +66,72,instroke_chart,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +67,73,instroke_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +68,74,workout_stats_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +69,75,workout_data_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +70,76,workout_otwsetpower_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +71,77,workout_otwpowerplot_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +72,78,workout_wind_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +73,79,workout_uploadimage_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +74,80,virtualevent_compare_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +75,81,virtualevent_uploadimage_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +76,82,virtualevent_setlogo_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +77,83,logo_delete_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +78,84,workout_downloadwind_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +79,85,workout_downloadmetar_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +80,86,workout_stream_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +81,87,workout_summary_edit_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +82,88,workout_summary_restore_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +83,89,workout_split_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +84,90,workout_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +85,91,workout_video_create_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +86,92,VideoDelete,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +87,93,workout_video_view_mini,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +88,94,workout_video_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +89,95,list_videos,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +90,96,video_selectworkout,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +91,98,workout_fusion_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +92,99,workout_fusion_list,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +93,100,TemplateView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +94,103,workout_add_chart_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +95,112,WorkoutDelete,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +96,113,workout_smoothenpace_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +97,114,workout_undo_smoothenpace_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +98,115,workout_c2import_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +99,120,workout_stravaimport_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +100,122,workout_getc2workout_all,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +101,124,workout_getimportview,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +102,125,workout_getstravaworkout_all,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +103,126,workout_getstravaworkout_next,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +104,127,workout_sporttracksimport_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +105,129,workout_getsporttracksworkout_all,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +106,130,workout_polarimport_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +107,132,workout_runkeeperimport_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +108,134,workout_underarmourimport_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +109,135,workout_c2_upload_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +110,136,workout_strava_upload_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +111,137,workout_recalcsummary_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +112,138,workout_sporttracks_upload_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +113,139,workout_runkeeper_upload_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +114,140,workout_underarmour_upload_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +115,141,workout_tp_upload_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +116,142,multi_compare_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +117,145,alerts_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +118,147,AlertDelete,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +119,148,alert_edit_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +120,150,alert_create_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +121,152,alert_report_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +122,155,boxplot_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +123,157,boxplot_view_data,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +124,158,multiflex_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +125,160,multiflex_data,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +126,161,deactivate_user,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +127,162,remove_user,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +128,163,user_gdpr_confirm,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +129,165,user_gdpr_optin,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +130,167,rower_teams_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +131,168,rower_calcdps_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +132,169,rower_exportsettings_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +133,171,team_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +134,172,team_members_stats_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +135,173,team_edit_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +136,174,team_leaveconfirm_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +137,175,team_leave_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +138,176,team_deleteconfirm_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +139,177,team_requestmembership_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +140,178,reject_revoke_coach_request,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +141,179,coach_drop_athlete_confirm_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +142,180,coach_drop_athlete_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +143,181,athlete_drop_coach_confirm_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +144,182,athlete_drop_coach_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +145,184,reject_revoke_coach_offer,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +146,186,request_coaching_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +147,187,offer_coaching_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +148,188,coach_accept_coachrequest_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +149,189,rower_accept_coachoffer_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +150,190,team_delete_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +151,191,team_create_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +152,192,manager_member_drop_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +153,193,invitation_reject_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +154,194,invitation_revoke_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +155,195,rower_invitations_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +156,196,raise_500,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +157,198,request_revoke_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +158,199,request_reject_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +159,200,manager_requests_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +160,202,rower_edit_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +161,204,rower_prefs_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +162,205,transactions_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +163,208,rower_c2_authorize,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +164,209,rower_polar_authorize,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +165,210,rower_revokeapp_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +166,211,rower_strava_authorize,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +167,212,rower_sporttracks_authorize,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +168,213,rower_underarmour_authorize,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +169,214,rower_tp_authorize,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +170,215,rower_runkeeper_authorize,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +171,216,rower_sporttracks_token_refresh,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +172,217,rower_underarmour_token_refresh,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +173,218,rower_tp_token_refresh,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +174,219,rower_c2_token_refresh,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +175,220,rower_favoritecharts_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +176,222,workout_workflow_config2_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +177,224,workflow_default_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +178,225,sendmail,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +179,231,analysis_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +180,232,laboratory_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +181,233,errormessage_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +182,237,payment_confirm_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +183,238,upgrade_confirm_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +184,240,downgrade_confirm_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +185,241,billing_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +186,242,upgrade_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +187,243,downgrade_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +188,244,payment_completed_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +189,245,downgrade_completed_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +190,246,paidplans_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +191,247,plan_stop_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +192,248,plan_tobasic_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +193,249,checkouts_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +194,250,upgrade_checkouts_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +195,251,downgrade_checkouts_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +196,252,planrequired_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +197,253,start_trial_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +198,254,start_plantrial_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +199,256,rower_register_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +200,257,freecoach_register_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +201,259,workout_workflow_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +202,260,workout_flexchart3_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +203,264,rower_process_testcallback,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +204,265,rower_create_trainingplan,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +205,267,TrainingPlanDelete,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +206,268,MicroCycleDelete,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +207,269,MesoCycleDelete,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +208,270,MacroCycleDelete,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +209,271,rower_trainingplan_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +210,279,rower_trainingplan_execution_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +211,281,TrainingMacroCycleUpdate,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +212,282,TrainingMesoCycleUpdate,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +213,283,planmacrocyclebymonth,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +214,285,planmesocyclebyweek,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +215,287,TrainingMicroCycleUpdate,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +216,288,rower_delete_trainingtarget,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +217,289,TrainingPlanUpdate,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +218,290,TrainingTargetUpdate,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +219,291,strokedataform,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +220,292,plannedsession_teamcreate_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +221,296,plannedsession_teamedit_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +222,298,plannedsession_create_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +223,300,plannedsession_multiclone_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +224,302,plannedsession_multicreate_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +225,305,plannedsession_edit_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +226,306,plannedsession_totemplate_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +227,307,plannedsession_compare_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +228,310,plannedsession_clone_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +229,311,plannedsession_teamclone_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +230,313,plannedsession_detach_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +231,315,plannedsession_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +232,317,PlannedSessionDelete,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +233,319,plannedsessions_manage_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +234,323,plannedsessions_coach_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +235,325,plannedsessions_coach_icsemail_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +236,326,plannedsessions_print_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +237,327,plannedsession_comment_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +238,330,plannedsessions_icsemail_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +239,332,plannedsessions_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,True,False +240,334,course_edit_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +241,335,course_delete_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +242,336,course_kmldownload_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +243,337,course_replace_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +244,338,course_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +245,339,course_map_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +246,341,c2listdebug_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +247,343,rower_process_callback,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +248,344,rower_process_stravacallback,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +249,345,rower_process_sporttrackscallback,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +250,346,rower_process_underarmourcallback,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +251,347,rower_process_polarcallback,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +252,348,rower_process_runkeepercallback,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +253,349,rower_process_tpcallback,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +254,350,rower_process_twittercallback,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +255,351,set_language,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +256,352,SetOffsetView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +257,353,stats,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +258,354,stats_json,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +259,355,jobs,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +260,356,workers,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +261,357,worker_details,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +262,358,finished_jobs,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +263,359,started_jobs,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +264,360,deferred_jobs,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +265,361,clear_queue,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +266,362,requeue_all,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +267,363,job_detail,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +268,364,delete_job,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +269,365,actions,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +270,366,requeue_job_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +271,367,enqueue_job,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +272,368,JavaScriptCatalog,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +273,369,serve,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +274,371,LoginView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +275,372,LogoutView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +276,373,PasswordChangeView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +277,374,PasswordChangeDoneView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +278,375,PasswordResetView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +279,376,PasswordResetDoneView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +280,377,PasswordResetConfirmView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +281,378,PasswordResetCompleteView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +282,386,index,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +283,387,login,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +284,388,logout,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +285,389,password_change,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +286,390,password_change_done,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +287,391,i18n_javascript,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +288,392,shortcut,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +289,393,changelist_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +290,394,add_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +291,395,autocomplete_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +292,396,history_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +293,397,delete_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +294,398,change_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +295,399,RedirectView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +296,568,app_index,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +297,571,landingview,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +298,573,get_blog_posts,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +299,576,AuthorizationView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +300,577,TokenView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +301,578,WorkoutViewSet,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +302,582,RowerViewSet,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +303,586,FavoriteChartViewSet,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +304,590,APIRootView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +305,592,SwaggerSchemaView,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +306,595,strokedatajson,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True +307,596,error500_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +308,603,failed_queue_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +309,604,failed_queue_empty,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,False +310,605,failed_job_view,TRUE,200,basic,200,302,basic,200,302,coach,200,302,False,False,True