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