Browse Source

WIP: delete dependent permissions on user group delete

Daniel Lee 8 years ago
parent
commit
222a938cdf
2 changed files with 9 additions and 1 deletions
  1. 1 0
      pkg/services/sqlstore/user_group.go
  2. 8 1
      pkg/services/sqlstore/user_group_test.go

+ 1 - 0
pkg/services/sqlstore/user_group.go

@@ -84,6 +84,7 @@ func DeleteUserGroup(cmd *m.DeleteUserGroupCommand) error {
 		deletes := []string{
 		deletes := []string{
 			"DELETE FROM user_group_member WHERE user_group_id = ?",
 			"DELETE FROM user_group_member WHERE user_group_id = ?",
 			"DELETE FROM user_group WHERE id = ?",
 			"DELETE FROM user_group WHERE id = ?",
+			"DELETE FROM dashboard_acl WHERE user_group_id = ?",
 		}
 		}
 
 
 		for _, sql := range deletes {
 		for _, sql := range deletes {

+ 8 - 1
pkg/services/sqlstore/user_group_test.go

@@ -88,12 +88,13 @@ func TestUserGroupCommandsAndQueries(t *testing.T) {
 				So(len(q1.Result), ShouldEqual, 0)
 				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
 				groupId := group2.Result.Id
 				err := AddUserGroupMember(&m.AddUserGroupMemberCommand{OrgId: 1, UserGroupId: groupId, UserId: userIds[1]})
 				err := AddUserGroupMember(&m.AddUserGroupMemberCommand{OrgId: 1, UserGroupId: groupId, UserId: userIds[1]})
 				So(err, ShouldBeNil)
 				So(err, ShouldBeNil)
 				err = AddUserGroupMember(&m.AddUserGroupMemberCommand{OrgId: 1, UserGroupId: groupId, UserId: userIds[2]})
 				err = AddUserGroupMember(&m.AddUserGroupMemberCommand{OrgId: 1, UserGroupId: groupId, UserId: userIds[2]})
 				So(err, ShouldBeNil)
 				So(err, ShouldBeNil)
+				err = AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{DashboardId: 1, OrgId: 1, PermissionType: m.PERMISSION_EDIT, UserGroupId: groupId})
 
 
 				err = DeleteUserGroup(&m.DeleteUserGroupCommand{Id: groupId})
 				err = DeleteUserGroup(&m.DeleteUserGroupCommand{Id: groupId})
 				So(err, ShouldBeNil)
 				So(err, ShouldBeNil)
@@ -101,6 +102,12 @@ func TestUserGroupCommandsAndQueries(t *testing.T) {
 				query := &m.GetUserGroupByIdQuery{Id: groupId}
 				query := &m.GetUserGroupByIdQuery{Id: groupId}
 				err = GetUserGroupById(query)
 				err = GetUserGroupById(query)
 				So(err, ShouldEqual, m.ErrUserGroupNotFound)
 				So(err, ShouldEqual, m.ErrUserGroupNotFound)
+
+				permQuery := &m.GetDashboardPermissionsQuery{DashboardId: 1}
+				err = GetDashboardPermissions(permQuery)
+				So(err, ShouldBeNil)
+
+				So(len(permQuery.Result), ShouldEqual, 0)
 			})
 			})
 		})
 		})
 	})
 	})