diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs index 5ea1853a..37b6c2ec 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs @@ -2537,7 +2537,10 @@ namespace WebsitePanel.EnterpriseServer UserInfo user = ObjectUtils.FillObjectFromDataReader(DataProvider.GetUserByExchangeOrganizationIdInternally(itemId)); - ExchangeServerController.GetExchangeMailboxPlansByUser(user, ref mailboxPlans); + if (user.Role == UserRole.User) + ExchangeServerController.GetExchangeMailboxPlansByUser(itemId, user, ref mailboxPlans); + else + ExchangeServerController.GetExchangeMailboxPlansByUser(0, user, ref mailboxPlans); return mailboxPlans; } @@ -2551,7 +2554,7 @@ namespace WebsitePanel.EnterpriseServer } } - private static void GetExchangeMailboxPlansByUser(UserInfo user, ref ListmailboxPlans) + private static void GetExchangeMailboxPlansByUser(int itemId, UserInfo user, ref ListmailboxPlans) { if ((user != null)) { @@ -2571,9 +2574,14 @@ namespace WebsitePanel.EnterpriseServer orgs = GetExchangeOrganizationsInternal(1, false); } - if ((orgs != null) &(orgs.Count > 0)) + int OrgId = -1; + if (itemId > 0) OrgId = itemId; + else if ((orgs != null) & (orgs.Count > 0)) OrgId = orgs[0].Id; + + + if (OrgId != -1) { - List Plans = ObjectUtils.CreateListFromDataReader(DataProvider.GetExchangeMailboxPlans(orgs[0].Id)); + List Plans = ObjectUtils.CreateListFromDataReader(DataProvider.GetExchangeMailboxPlans(OrgId)); foreach (ExchangeMailboxPlan p in Plans) { @@ -2583,7 +2591,7 @@ namespace WebsitePanel.EnterpriseServer UserInfo owner = UserController.GetUserInternally(user.OwnerId); - GetExchangeMailboxPlansByUser(owner, ref mailboxPlans); + GetExchangeMailboxPlansByUser(0, owner, ref mailboxPlans); } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/LyncController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/LyncController.cs index d0526ed3..0c2a67df 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/LyncController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/LyncController.cs @@ -542,15 +542,13 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution List plans = new List(); UserInfo user = ObjectUtils.FillObjectFromDataReader(DataProvider.GetUserByExchangeOrganizationIdInternally(itemId)); - - LyncController.GetLyncUserPlansByUser(user, ref plans); + + if (user.Role == UserRole.User) + LyncController.GetLyncUserPlansByUser(itemId, user, ref plans); + else + LyncController.GetLyncUserPlansByUser(0, user, ref plans); return plans; - - - - return ObjectUtils.CreateListFromDataReader( - DataProvider.GetLyncUserPlans(itemId)); } catch (Exception ex) { @@ -562,7 +560,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution } } - private static void GetLyncUserPlansByUser(UserInfo user, ref List plans) + private static void GetLyncUserPlansByUser(int itemId, UserInfo user, ref List plans) { if ((user != null)) { @@ -582,9 +580,13 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution orgs = ExchangeServerController.GetExchangeOrganizations(1, false); } - if ((orgs != null) & (orgs.Count > 0)) + int OrgId = -1; + if (itemId > 0) OrgId = itemId; + else if ((orgs != null) & (orgs.Count > 0)) OrgId = orgs[0].Id; + + if (OrgId != -1) { - List Plans = ObjectUtils.CreateListFromDataReader(DataProvider.GetLyncUserPlans(orgs[0].Id)); + List Plans = ObjectUtils.CreateListFromDataReader(DataProvider.GetLyncUserPlans(OrgId)); foreach (LyncUserPlan p in Plans) { @@ -594,7 +596,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution UserInfo owner = UserController.GetUserInternally(user.OwnerId); - GetLyncUserPlansByUser(owner, ref plans); + GetLyncUserPlansByUser(0, owner, ref plans); } }