From 222a938cdfb23c4cb5e9992b149aea1e586c4b8e Mon Sep 17 00:00:00 2001 From: Daniel Lee Date: Wed, 14 Jun 2017 18:40:08 +0200 Subject: [PATCH] WIP: delete dependent permissions on user group delete --- pkg/services/sqlstore/user_group.go | 1 + pkg/services/sqlstore/user_group_test.go | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/services/sqlstore/user_group.go b/pkg/services/sqlstore/user_group.go index 27eecf5fabb..36c4ab59cae 100644 --- a/pkg/services/sqlstore/user_group.go +++ b/pkg/services/sqlstore/user_group.go @@ -84,6 +84,7 @@ func DeleteUserGroup(cmd *m.DeleteUserGroupCommand) error { deletes := []string{ "DELETE FROM user_group_member WHERE user_group_id = ?", "DELETE FROM user_group WHERE id = ?", + "DELETE FROM dashboard_acl WHERE user_group_id = ?", } for _, sql := range deletes { diff --git a/pkg/services/sqlstore/user_group_test.go b/pkg/services/sqlstore/user_group_test.go index 5e83d95d685..0d0610df4f4 100644 --- a/pkg/services/sqlstore/user_group_test.go +++ b/pkg/services/sqlstore/user_group_test.go @@ -88,12 +88,13 @@ func TestUserGroupCommandsAndQueries(t *testing.T) { So(len(q1.Result), ShouldEqual, 0) }) - Convey("Should be able to remove a group with users", func() { + Convey("Should be able to remove a group with users and permissions", func() { groupId := group2.Result.Id err := AddUserGroupMember(&m.AddUserGroupMemberCommand{OrgId: 1, UserGroupId: groupId, UserId: userIds[1]}) So(err, ShouldBeNil) err = AddUserGroupMember(&m.AddUserGroupMemberCommand{OrgId: 1, UserGroupId: groupId, UserId: userIds[2]}) So(err, ShouldBeNil) + err = AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{DashboardId: 1, OrgId: 1, PermissionType: m.PERMISSION_EDIT, UserGroupId: groupId}) err = DeleteUserGroup(&m.DeleteUserGroupCommand{Id: groupId}) So(err, ShouldBeNil) @@ -101,6 +102,12 @@ func TestUserGroupCommandsAndQueries(t *testing.T) { query := &m.GetUserGroupByIdQuery{Id: groupId} err = GetUserGroupById(query) So(err, ShouldEqual, m.ErrUserGroupNotFound) + + permQuery := &m.GetDashboardPermissionsQuery{DashboardId: 1} + err = GetDashboardPermissions(permQuery) + So(err, ShouldBeNil) + + So(len(permQuery.Result), ShouldEqual, 0) }) }) })