This commit is contained in:
Virtuworks 2013-09-13 10:48:42 -04:00
commit 32c72addac
8 changed files with 265 additions and 71 deletions

View file

@ -45,14 +45,37 @@ namespace WebsitePanel.Portal.ExchangeServer
{
public partial class ExchangeDistributionListMemberOf : WebsitePanelModuleBase
{
protected PackageContext cntx;
protected PackageContext Cntx
{
get
{
if (cntx == null)
{
cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
}
return cntx;
}
}
protected bool EnableSecurityGroups
{
get
{
return Utils.CheckQouta(Quotas.ORGANIZATION_SECURITYGROUPMANAGEMENT, Cntx);
}
}
protected void Page_Load(object sender, EventArgs e)
{
groups.SecurityGroupsEnabled = EnableSecurityGroups;
if (!IsPostBack)
{
BindSettings();
}
}
private void BindSettings()
@ -67,17 +90,20 @@ namespace WebsitePanel.Portal.ExchangeServer
ExchangeAccount[] dLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
ExchangeAccount[] secGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
List<ExchangeAccount> groupsList = new List<ExchangeAccount>();
foreach (ExchangeAccount distList in dLists)
{
groupsList.Add(distList);
}
foreach (ExchangeAccount secGroup in secGroups)
if (EnableSecurityGroups)
{
groupsList.Add(secGroup);
ExchangeAccount[] secGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount secGroup in secGroups)
{
groupsList.Add(secGroup);
}
}
groups.SetAccounts(groupsList.ToArray());
@ -96,18 +122,24 @@ namespace WebsitePanel.Portal.ExchangeServer
try
{
ExchangeAccount[] oldSecGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
ExchangeAccount[] oldDistLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
IList<ExchangeAccount> oldGroups = new List<ExchangeAccount>();
foreach (ExchangeAccount distList in oldSecGroups)
if (EnableSecurityGroups)
{
oldGroups.Add(distList);
ExchangeAccount[] oldSecGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount secGroup in oldSecGroups)
{
oldGroups.Add(secGroup);
}
}
foreach (ExchangeAccount secGroup in oldDistLists)
ExchangeAccount[] oldDistLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount distList in oldDistLists)
{
oldGroups.Add(secGroup);
oldGroups.Add(distList);
}
IDictionary<string, ExchangeAccountType> newGroups = groups.GetFullAccounts();

View file

@ -35,8 +35,33 @@ namespace WebsitePanel.Portal.ExchangeServer
{
public partial class ExchangeMailboxMemberOf : WebsitePanelModuleBase
{
protected PackageContext cntx;
protected PackageContext Cntx
{
get
{
if (cntx == null)
{
cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
}
return cntx;
}
}
protected bool EnableSecurityGroups
{
get
{
return Utils.CheckQouta(Quotas.ORGANIZATION_SECURITYGROUPMANAGEMENT, Cntx);
}
}
protected void Page_Load(object sender, EventArgs e)
{
groups.SecurityGroupsEnabled = EnableSecurityGroups;
if (!IsPostBack)
{
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
@ -44,9 +69,7 @@ namespace WebsitePanel.Portal.ExchangeServer
BindSettings();
UserInfo user = UsersHelper.GetUser(PanelSecurity.EffectiveUserId);
}
}
private void BindSettings()
@ -59,21 +82,25 @@ namespace WebsitePanel.Portal.ExchangeServer
// title
litDisplayName.Text = mailbox.DisplayName;
//Distribution Lists
ExchangeAccount[] dLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
//Security Groups
ExchangeAccount[] securGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
List<ExchangeAccount> groupsList = new List<ExchangeAccount>();
//Distribution Lists
ExchangeAccount[] dLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount distList in dLists)
{
groupsList.Add(distList);
}
foreach (ExchangeAccount secGroup in securGroups)
if (EnableSecurityGroups)
{
groupsList.Add(secGroup);
//Security Groups
ExchangeAccount[] securGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount secGroup in securGroups)
{
groupsList.Add(secGroup);
}
}
groups.SetAccounts(groupsList.ToArray());
@ -92,18 +119,23 @@ namespace WebsitePanel.Portal.ExchangeServer
try
{
ExchangeAccount[] oldSecGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
ExchangeAccount[] oldDistLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
IList<ExchangeAccount> oldGroups = new List<ExchangeAccount>();
foreach (ExchangeAccount distList in oldSecGroups)
if (EnableSecurityGroups)
{
oldGroups.Add(distList);
ExchangeAccount[] oldSecGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount secGroup in oldSecGroups)
{
oldGroups.Add(secGroup);
}
}
foreach (ExchangeAccount secGroup in oldDistLists)
ExchangeAccount[] oldDistLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount distList in oldDistLists)
{
oldGroups.Add(secGroup);
oldGroups.Add(distList);
}
IDictionary<string, ExchangeAccountType> newGroups = groups.GetFullAccounts();

View file

@ -37,8 +37,41 @@ namespace WebsitePanel.Portal.HostedSolution
{
public partial class OrganizationSecurityGroupMemberOf : WebsitePanelModuleBase
{
protected PackageContext cntx;
protected PackageContext Cntx
{
get
{
if (cntx == null)
{
cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
}
return cntx;
}
}
protected bool EnableDistributionLists
{
get
{
return Cntx.Groups.ContainsKey(ResourceGroups.Exchange) & Utils.CheckQouta(Quotas.EXCHANGE2007_DISTRIBUTIONLISTS, Cntx);
}
}
protected bool EnableSecurityGroups
{
get
{
return Utils.CheckQouta(Quotas.ORGANIZATION_SECURITYGROUPMANAGEMENT, Cntx);
}
}
protected void Page_Load(object sender, EventArgs e)
{
groups.DistributionListsEnabled = EnableDistributionLists;
if (!IsPostBack)
{
BindSettings();
@ -53,22 +86,29 @@ namespace WebsitePanel.Portal.HostedSolution
OrganizationSecurityGroup group = ES.Services.Organizations.GetSecurityGroupGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID);
litDisplayName.Text = group.DisplayName;
//Distribution Lists
ExchangeAccount[] dLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
//Security Groups
ExchangeAccount[] securGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
List<ExchangeAccount> groupsList = new List<ExchangeAccount>();
foreach (ExchangeAccount distList in dLists)
if (EnableDistributionLists)
{
groupsList.Add(distList);
//Distribution Lists
ExchangeAccount[] dLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount distList in dLists)
{
groupsList.Add(distList);
}
}
foreach (ExchangeAccount secGroup in securGroups)
if (EnableSecurityGroups)
{
groupsList.Add(secGroup);
//Security Groups
ExchangeAccount[] securGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount secGroup in securGroups)
{
groupsList.Add(secGroup);
}
}
groups.SetAccounts(groupsList.ToArray());
@ -87,21 +127,30 @@ namespace WebsitePanel.Portal.HostedSolution
try
{
ExchangeAccount[] oldSecGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
ExchangeAccount[] oldDistLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
IList<ExchangeAccount> oldGroups = new List<ExchangeAccount>();
foreach (ExchangeAccount distList in oldSecGroups)
if (EnableDistributionLists)
{
oldGroups.Add(distList);
ExchangeAccount[] oldDistLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount distList in oldDistLists)
{
oldGroups.Add(distList);
}
}
foreach (ExchangeAccount secGroup in oldDistLists)
if (EnableSecurityGroups)
{
oldGroups.Add(secGroup);
ExchangeAccount[] oldSecGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount secGroup in oldSecGroups)
{
oldGroups.Add(secGroup);
}
}
IDictionary<string, ExchangeAccountType> newGroups = groups.GetFullAccounts();
foreach (ExchangeAccount oldGroup in oldGroups)
{
if (newGroups.ContainsKey(oldGroup.AccountName))

View file

@ -37,8 +37,42 @@ namespace WebsitePanel.Portal.HostedSolution
{
public partial class UserMemberOf : WebsitePanelModuleBase
{
protected PackageContext cntx;
protected PackageContext Cntx
{
get
{
if (cntx == null)
{
cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
}
return cntx;
}
}
protected bool EnableDistributionLists
{
get
{
return Cntx.Groups.ContainsKey(ResourceGroups.Exchange) & Utils.CheckQouta(Quotas.EXCHANGE2007_DISTRIBUTIONLISTS, Cntx);
}
}
protected bool EnableSecurityGroups
{
get
{
return Utils.CheckQouta(Quotas.ORGANIZATION_SECURITYGROUPMANAGEMENT, Cntx);
}
}
protected void Page_Load(object sender, EventArgs e)
{
groups.DistributionListsEnabled = EnableDistributionLists;
groups.SecurityGroupsEnabled = EnableSecurityGroups;
if (!IsPostBack)
{
BindSettings();
@ -61,22 +95,29 @@ namespace WebsitePanel.Portal.HostedSolution
|| user.AccountType == ExchangeAccountType.Equipment);
litDisplayName.Text = user.DisplayName;
//Distribution Lists
ExchangeAccount[] dLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
//Security Groups
ExchangeAccount[] securGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
List<ExchangeAccount> groupsList = new List<ExchangeAccount>();
foreach (ExchangeAccount distList in dLists)
if (EnableDistributionLists)
{
groupsList.Add(distList);
//Distribution Lists
ExchangeAccount[] dLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount distList in dLists)
{
groupsList.Add(distList);
}
}
foreach (ExchangeAccount secGroup in securGroups)
if (EnableSecurityGroups)
{
groupsList.Add(secGroup);
//Security Groups
ExchangeAccount[] securGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount secGroup in securGroups)
{
groupsList.Add(secGroup);
}
}
groups.SetAccounts(groupsList.ToArray());
@ -95,21 +136,30 @@ namespace WebsitePanel.Portal.HostedSolution
try
{
ExchangeAccount[] oldSecGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
ExchangeAccount[] oldDistLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
IList<ExchangeAccount> oldGroups = new List<ExchangeAccount>();
foreach (ExchangeAccount distList in oldSecGroups)
if (EnableDistributionLists)
{
oldGroups.Add(distList);
ExchangeAccount[] oldDistLists = ES.Services.ExchangeServer.GetDistributionListsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount distList in oldDistLists)
{
oldGroups.Add(distList);
}
}
foreach (ExchangeAccount secGroup in oldDistLists)
if (EnableSecurityGroups)
{
oldGroups.Add(secGroup);
ExchangeAccount[] oldSecGroups = ES.Services.Organizations.GetSecurityGroupsByMember(PanelRequest.ItemID, PanelRequest.AccountID);
foreach (ExchangeAccount secGroup in oldSecGroups)
{
oldGroups.Add(secGroup);
}
}
IDictionary<string, ExchangeAccountType> newGroups = groups.GetFullAccounts();
foreach (ExchangeAccount oldGroup in oldGroups)
{
if (newGroups.ContainsKey(oldGroup.AccountName))
@ -145,7 +195,6 @@ namespace WebsitePanel.Portal.HostedSolution
messageBox.ShowSuccessMessage("ORGANIZATION_UPDATE_USER_SETTINGS");
BindSettings();
}
catch (Exception ex)

View file

@ -31,6 +31,7 @@ using System.Collections.Generic;
using WebsitePanel.Portal.Code.UserControls;
using WebsitePanel.WebPortal;
using WebsitePanel.EnterpriseServer;
using WebsitePanel.Providers.HostedSolution;
namespace WebsitePanel.Portal.ExchangeServer.UserControls
{
@ -59,8 +60,23 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
if (Utils.CheckQouta(Quotas.ORGANIZATION_SECURITYGROUPMANAGEMENT, cntx) || Utils.CheckQouta(Quotas.EXCHANGE2007_DISTRIBUTIONLISTS, cntx))
bool bSuccess = Utils.CheckQouta(Quotas.ORGANIZATION_SECURITYGROUPMANAGEMENT, cntx);
if (!bSuccess)
{
// get user settings
OrganizationUser user = ES.Services.Organizations.GetUserGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID);
bSuccess = (Utils.CheckQouta(Quotas.EXCHANGE2007_DISTRIBUTIONLISTS, cntx)
&& (user.AccountType == ExchangeAccountType.Mailbox
|| user.AccountType == ExchangeAccountType.Room
|| user.AccountType == ExchangeAccountType.Equipment));
}
if (bSuccess)
{
tabsList.Add(CreateTab("user_memberof", "Tab.MemberOf"));
}
// find selected menu item
int idx = 0;