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