From aef44beb2234520590f63a63d11211ce3fb4dd55 Mon Sep 17 00:00:00 2001 From: Christopher York Date: Fri, 4 Jan 2013 14:58:08 -0600 Subject: [PATCH] Fixed: Child account packages not suspending resulting in child services not being suspended with the parent. Fixed: Child account peer users were not being suspended when the parent is suspended. --- .../Code/Users/UserController.cs | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Users/UserController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Users/UserController.cs index 14893de2..ff333445 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Users/UserController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Users/UserController.cs @@ -678,6 +678,12 @@ namespace WebsitePanel.EnterpriseServer TaskManager.StartTask(taskId, "USER", "CHANGE_STATUS", user.Username); TaskManager.ItemId = user.UserId; + // update user packages + List packages = new List(); + + // Add the users package(s) + packages.AddRange(PackageController.GetPackages(userId)); + try { @@ -699,20 +705,24 @@ namespace WebsitePanel.EnterpriseServer List children = GetUsers(userId, true); foreach (UserInfo child in children) { - result = ChangeUserStatusInternal(child.UserId, status); - if (result < 0) - return result; + // Add the child users packages + packages.AddRange(PackageController.GetPackages(child.UserId)); + + // change child user peers + List childPeers = GetUserPeers(child.UserId); + foreach (UserInfo peer in childPeers) + { + result = ChangeUserStatusInternal(peer.UserId, status); + if (result < 0) + return result; + } + + // change child account + result = ChangeUserStatusInternal(child.UserId, status); + if (result < 0) + return result; } - // update user packages - List packages = new List(); - - // his packages - packages.AddRange(PackageController.GetMyPackages(userId)); - - // children packages - packages.AddRange(PackageController.GetPackages(userId)); - PackageStatus packageStatus = PackageStatus.Active; switch (status) {