@ -54,34 +54,34 @@ func TestIntegrationDashboardACLDataAccess(t *testing.T) {
setup ( t )
query := dashboards . GetDashboardACLInfoListQuery { DashboardID : savedFolder . ID , OrgID : 1 }
err := dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
queryResult , err := dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
require . Nil ( t , err )
require . Equal ( t , 2 , len ( query . Result ) )
require . Equal ( t , 2 , len ( queryResult ) )
defaultPermissionsId := int64 ( - 1 )
require . Equal ( t , defaultPermissionsId , query . Result [ 0 ] . DashboardID )
require . Equal ( t , org . RoleViewer , * query . Result [ 0 ] . Role )
require . False ( t , query . Result [ 0 ] . Inherited )
require . Equal ( t , defaultPermissionsId , query . Result [ 1 ] . DashboardID )
require . Equal ( t , org . RoleEditor , * query . Result [ 1 ] . Role )
require . False ( t , query . Result [ 1 ] . Inherited )
require . Equal ( t , defaultPermissionsId , queryResult [ 0 ] . DashboardID )
require . Equal ( t , org . RoleViewer , * queryResult [ 0 ] . Role )
require . False ( t , queryResult [ 0 ] . Inherited )
require . Equal ( t , defaultPermissionsId , queryResult [ 1 ] . DashboardID )
require . Equal ( t , org . RoleEditor , * queryResult [ 1 ] . Role )
require . False ( t , queryResult [ 1 ] . Inherited )
} )
t . Run ( "Dashboard acl should include acl for parent folder" , func ( t * testing . T ) {
setup ( t )
query := dashboards . GetDashboardACLInfoListQuery { DashboardID : childDash . ID , OrgID : 1 }
err := dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
queryResult , err := dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
require . Nil ( t , err )
require . Equal ( t , 2 , len ( query . Result ) )
require . Equal ( t , 2 , len ( queryResult ) )
defaultPermissionsId := int64 ( - 1 )
require . Equal ( t , defaultPermissionsId , query . Result [ 0 ] . DashboardID )
require . Equal ( t , org . RoleViewer , * query . Result [ 0 ] . Role )
require . True ( t , query . Result [ 0 ] . Inherited )
require . Equal ( t , defaultPermissionsId , query . Result [ 1 ] . DashboardID )
require . Equal ( t , org . RoleEditor , * query . Result [ 1 ] . Role )
require . True ( t , query . Result [ 1 ] . Inherited )
require . Equal ( t , defaultPermissionsId , queryResult [ 0 ] . DashboardID )
require . Equal ( t , org . RoleViewer , * queryResult [ 0 ] . Role )
require . True ( t , queryResult [ 0 ] . Inherited )
require . Equal ( t , defaultPermissionsId , queryResult [ 1 ] . DashboardID )
require . Equal ( t , org . RoleEditor , * queryResult [ 1 ] . Role )
require . True ( t , queryResult [ 1 ] . Inherited )
} )
t . Run ( "Folder with removed default permissions returns no acl items" , func ( t * testing . T ) {
@ -90,10 +90,10 @@ func TestIntegrationDashboardACLDataAccess(t *testing.T) {
require . Nil ( t , err )
query := dashboards . GetDashboardACLInfoListQuery { DashboardID : childDash . ID , OrgID : 1 }
err = dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
queryResult , err : = dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
require . Nil ( t , err )
require . Equal ( t , 0 , len ( query . Result ) )
require . Equal ( t , 0 , len ( queryResult ) )
} )
t . Run ( "Given a dashboard folder and a user" , func ( t * testing . T ) {
@ -110,11 +110,11 @@ func TestIntegrationDashboardACLDataAccess(t *testing.T) {
t . Run ( "When reading dashboard acl should include acl for parent folder" , func ( t * testing . T ) {
query := dashboards . GetDashboardACLInfoListQuery { DashboardID : childDash . ID , OrgID : 1 }
err := dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
queryResult , err := dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
require . Nil ( t , err )
require . Equal ( t , 1 , len ( query . Result ) )
require . Equal ( t , savedFolder . ID , query . Result [ 0 ] . DashboardID )
require . Equal ( t , 1 , len ( queryResult ) )
require . Equal ( t , savedFolder . ID , queryResult [ 0 ] . DashboardID )
} )
t . Run ( "Given child dashboard permission" , func ( t * testing . T ) {
@ -129,14 +129,14 @@ func TestIntegrationDashboardACLDataAccess(t *testing.T) {
t . Run ( "When reading dashboard acl should include acl for parent folder and child" , func ( t * testing . T ) {
query := dashboards . GetDashboardACLInfoListQuery { OrgID : 1 , DashboardID : childDash . ID }
err := dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
queryResult , err := dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
require . Nil ( t , err )
require . Equal ( t , 2 , len ( query . Result ) )
require . Equal ( t , savedFolder . ID , query . Result [ 0 ] . DashboardID )
require . True ( t , query . Result [ 0 ] . Inherited )
require . Equal ( t , childDash . ID , query . Result [ 1 ] . DashboardID )
require . False ( t , query . Result [ 1 ] . Inherited )
require . Equal ( t , 2 , len ( queryResult ) )
require . Equal ( t , savedFolder . ID , queryResult [ 0 ] . DashboardID )
require . True ( t , queryResult [ 0 ] . Inherited )
require . Equal ( t , childDash . ID , queryResult [ 1 ] . DashboardID )
require . False ( t , queryResult [ 1 ] . Inherited )
} )
} )
} )
@ -153,19 +153,19 @@ func TestIntegrationDashboardACLDataAccess(t *testing.T) {
query := dashboards . GetDashboardACLInfoListQuery { OrgID : 1 , DashboardID : childDash . ID }
err = dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
queryResult , err : = dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
require . Nil ( t , err )
defaultPermissionsId := int64 ( - 1 )
require . Equal ( t , 3 , len ( query . Result ) )
require . Equal ( t , defaultPermissionsId , query . Result [ 0 ] . DashboardID )
require . Equal ( t , org . RoleViewer , * query . Result [ 0 ] . Role )
require . True ( t , query . Result [ 0 ] . Inherited )
require . Equal ( t , defaultPermissionsId , query . Result [ 1 ] . DashboardID )
require . Equal ( t , org . RoleEditor , * query . Result [ 1 ] . Role )
require . True ( t , query . Result [ 1 ] . Inherited )
require . Equal ( t , childDash . ID , query . Result [ 2 ] . DashboardID )
require . False ( t , query . Result [ 2 ] . Inherited )
require . Equal ( t , 3 , len ( queryResult ) )
require . Equal ( t , defaultPermissionsId , queryResult [ 0 ] . DashboardID )
require . Equal ( t , org . RoleViewer , * queryResult [ 0 ] . Role )
require . True ( t , queryResult [ 0 ] . Inherited )
require . Equal ( t , defaultPermissionsId , queryResult [ 1 ] . DashboardID )
require . Equal ( t , org . RoleEditor , * queryResult [ 1 ] . Role )
require . True ( t , queryResult [ 1 ] . Inherited )
require . Equal ( t , childDash . ID , queryResult [ 2 ] . DashboardID )
require . False ( t , queryResult [ 2 ] . Inherited )
} )
t . Run ( "Add and delete dashboard permission" , func ( t * testing . T ) {
@ -179,23 +179,23 @@ func TestIntegrationDashboardACLDataAccess(t *testing.T) {
require . Nil ( t , err )
q1 := & dashboards . GetDashboardACLInfoListQuery { DashboardID : savedFolder . ID , OrgID : 1 }
err = dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , q1 )
q1Result , err : = dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , q1 )
require . Nil ( t , err )
require . Equal ( t , savedFolder . ID , q1 . Result [ 0 ] . DashboardID )
require . Equal ( t , models . PERMISSION_EDIT , q1 . Result [ 0 ] . Permission )
require . Equal ( t , "Edit" , q1 . Result [ 0 ] . PermissionName )
require . Equal ( t , currentUser . ID , q1 . Result [ 0 ] . UserID )
require . Equal ( t , currentUser . Login , q1 . Result [ 0 ] . UserLogin )
require . Equal ( t , currentUser . Email , q1 . Result [ 0 ] . UserEmail )
require . Equal ( t , savedFolder . ID , q1Result [ 0 ] . DashboardID )
require . Equal ( t , models . PERMISSION_EDIT , q1Result [ 0 ] . Permission )
require . Equal ( t , "Edit" , q1Result [ 0 ] . PermissionName )
require . Equal ( t , currentUser . ID , q1Result [ 0 ] . UserID )
require . Equal ( t , currentUser . Login , q1Result [ 0 ] . UserLogin )
require . Equal ( t , currentUser . Email , q1Result [ 0 ] . UserEmail )
err = updateDashboardACL ( t , dashboardStore , savedFolder . ID )
require . Nil ( t , err )
q3 := & dashboards . GetDashboardACLInfoListQuery { DashboardID : savedFolder . ID , OrgID : 1 }
err = dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , q3 )
q3Result , err : = dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , q3 )
require . Nil ( t , err )
require . Equal ( t , 0 , len ( q3 . Result ) )
require . Equal ( t , 0 , len ( q3Result ) )
} )
t . Run ( "Should be able to add a user permission for a team" , func ( t * testing . T ) {
@ -213,11 +213,11 @@ func TestIntegrationDashboardACLDataAccess(t *testing.T) {
require . Nil ( t , err )
q1 := & dashboards . GetDashboardACLInfoListQuery { DashboardID : savedFolder . ID , OrgID : 1 }
err = dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , q1 )
q1Result , err : = dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , q1 )
require . Nil ( t , err )
require . Equal ( t , savedFolder . ID , q1 . Result [ 0 ] . DashboardID )
require . Equal ( t , models . PERMISSION_EDIT , q1 . Result [ 0 ] . Permission )
require . Equal ( t , team1 . ID , q1 . Result [ 0 ] . TeamID )
require . Equal ( t , savedFolder . ID , q1Result [ 0 ] . DashboardID )
require . Equal ( t , models . PERMISSION_EDIT , q1Result [ 0 ] . Permission )
require . Equal ( t , team1 . ID , q1Result [ 0 ] . TeamID )
} )
t . Run ( "Should be able to update an existing permission for a team" , func ( t * testing . T ) {
@ -234,12 +234,12 @@ func TestIntegrationDashboardACLDataAccess(t *testing.T) {
require . Nil ( t , err )
q3 := & dashboards . GetDashboardACLInfoListQuery { DashboardID : savedFolder . ID , OrgID : 1 }
err = dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , q3 )
q3Result , err : = dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , q3 )
require . Nil ( t , err )
require . Equal ( t , 1 , len ( q3 . Result ) )
require . Equal ( t , savedFolder . ID , q3 . Result [ 0 ] . DashboardID )
require . Equal ( t , models . PERMISSION_ADMIN , q3 . Result [ 0 ] . Permission )
require . Equal ( t , team1 . ID , q3 . Result [ 0 ] . TeamID )
require . Equal ( t , 1 , len ( q3Result ) )
require . Equal ( t , savedFolder . ID , q3Result [ 0 ] . DashboardID )
require . Equal ( t , models . PERMISSION_ADMIN , q3Result [ 0 ] . Permission )
require . Equal ( t , team1 . ID , q3Result [ 0 ] . TeamID )
} )
} )
@ -250,17 +250,17 @@ func TestIntegrationDashboardACLDataAccess(t *testing.T) {
query := dashboards . GetDashboardACLInfoListQuery { DashboardID : rootFolderId , OrgID : 1 }
err := dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
queryResult , err := dashboardStore . GetDashboardACLInfoList ( context . Background ( ) , & query )
require . Nil ( t , err )
require . Equal ( t , 2 , len ( query . Result ) )
require . Equal ( t , 2 , len ( queryResult ) )
defaultPermissionsId := int64 ( - 1 )
require . Equal ( t , defaultPermissionsId , query . Result [ 0 ] . DashboardID )
require . Equal ( t , org . RoleViewer , * query . Result [ 0 ] . Role )
require . False ( t , query . Result [ 0 ] . Inherited )
require . Equal ( t , defaultPermissionsId , query . Result [ 1 ] . DashboardID )
require . Equal ( t , org . RoleEditor , * query . Result [ 1 ] . Role )
require . False ( t , query . Result [ 1 ] . Inherited )
require . Equal ( t , defaultPermissionsId , queryResult [ 0 ] . DashboardID )
require . Equal ( t , org . RoleViewer , * queryResult [ 0 ] . Role )
require . False ( t , queryResult [ 0 ] . Inherited )
require . Equal ( t , defaultPermissionsId , queryResult [ 1 ] . DashboardID )
require . Equal ( t , org . RoleEditor , * queryResult [ 1 ] . Role )
require . False ( t , queryResult [ 1 ] . Inherited )
} )
t . Run ( "Delete acl by user" , func ( t * testing . T ) {