add new functionallity "Additional Default Groups"

This commit is contained in:
vfedosevich 2013-10-17 16:09:28 +03:00
parent b56981b1a6
commit 9d5e559604
22 changed files with 913 additions and 279 deletions

View file

@ -718,42 +718,28 @@ namespace WebsitePanel.Providers.HostedSolution
string server = GetServerName();
string securityGroupPath = AddADPrefix(securityGroup);
bool enableDefaultGroup = !string.IsNullOrEmpty(securityGroup);
if (enableDefaultGroup)
{
//Create mail enabled organization security group
EnableMailSecurityDistributionGroup(runSpace, securityGroup, organizationId);
transaction.RegisterMailEnabledDistributionGroup(securityGroup);
UpdateSecurityDistributionGroup(runSpace, securityGroup, organizationId, IsConsumer);
}
//Create mail enabled organization security group
EnableMailSecurityDistributionGroup(runSpace, securityGroup, organizationId);
transaction.RegisterMailEnabledDistributionGroup(securityGroup);
UpdateSecurityDistributionGroup(runSpace, securityGroup, organizationId, IsConsumer);
//create GAL
string galId = CreateGlobalAddressList(runSpace, organizationId);
transaction.RegisterNewGlobalAddressList(galId);
ExchangeLog.LogInfo(" Global Address List: {0}", galId);
if (enableDefaultGroup)
{
UpdateGlobalAddressList(runSpace, galId, securityGroupPath);
}
UpdateGlobalAddressList(runSpace, galId, securityGroupPath);
//create AL
string alId = CreateAddressList(runSpace, organizationId);
transaction.RegisterNewAddressList(alId);
ExchangeLog.LogInfo(" Address List: {0}", alId);
if (enableDefaultGroup)
{
UpdateAddressList(runSpace, alId, securityGroupPath);
}
UpdateAddressList(runSpace, alId, securityGroupPath);
//create RAL
string ralId = CreateRoomsAddressList(runSpace, organizationId);
transaction.RegisterNewRoomsAddressList(ralId);
ExchangeLog.LogInfo(" Rooms Address List: {0}", ralId);
if (enableDefaultGroup)
{
UpdateAddressList(runSpace, ralId, securityGroupPath);
}
UpdateAddressList(runSpace, ralId, securityGroupPath);
//create ActiveSync policy
string asId = CreateActiveSyncPolicy(runSpace, organizationId);
@ -855,13 +841,8 @@ namespace WebsitePanel.Providers.HostedSolution
string oabId = CreateOfflineAddressBook(runSpace, organizationId, server, oabVirtualDir);
transaction.RegisterNewOfflineAddressBook(oabId);
bool enableDefaultGroup = !string.IsNullOrEmpty(securityGroup);
if (enableDefaultGroup)
{
string securityGroupId = AddADPrefix(securityGroup);
UpdateOfflineAddressBook(runSpace, oabId, securityGroupId);
}
string securityGroupId = AddADPrefix(securityGroup);
UpdateOfflineAddressBook(runSpace, oabId, securityGroupId);
info.OfflineAddressBook = oabId;
}
@ -1016,12 +997,7 @@ namespace WebsitePanel.Providers.HostedSolution
//disable mail security distribution group
try
{
bool enableDefaultGroup = !string.IsNullOrEmpty(securityGroup);
if (enableDefaultGroup)
{
DisableMailSecurityDistributionGroup(runSpace, securityGroup);
}
DisableMailSecurityDistributionGroup(runSpace, securityGroup);
}
catch (Exception ex)
{
@ -4111,12 +4087,7 @@ namespace WebsitePanel.Providers.HostedSolution
string id = AddPublicFolder(runSpace, folderName, parentFolder);
transaction.RegisterNewPublicFolder(string.Empty, id);
bool enableDefaultGroup = !string.IsNullOrEmpty(securityGroup);
if (enableDefaultGroup)
{
SetPublicFolderPermissions(runSpace, id, securityGroup);
}
SetPublicFolderPermissions(runSpace, id, securityGroup);
if (mailEnabled)
{

View file

@ -92,42 +92,28 @@ namespace WebsitePanel.Providers.HostedSolution
string server = GetServerName();
string securityGroupPath = AddADPrefix(securityGroup);
bool enableDefaultGroup = !string.IsNullOrEmpty(securityGroup);
if (enableDefaultGroup)
{
//Create mail enabled organization security group
EnableMailSecurityDistributionGroup(runSpace, securityGroup, organizationId);
transaction.RegisterMailEnabledDistributionGroup(securityGroup);
UpdateSecurityDistributionGroup(runSpace, securityGroup, organizationId, IsConsumer);
}
//Create mail enabled organization security group
EnableMailSecurityDistributionGroup(runSpace, securityGroup, organizationId);
transaction.RegisterMailEnabledDistributionGroup(securityGroup);
UpdateSecurityDistributionGroup(runSpace, securityGroup, organizationId, IsConsumer);
//create GAL
string galId = CreateGlobalAddressList(runSpace, organizationId);
transaction.RegisterNewGlobalAddressList(galId);
ExchangeLog.LogInfo(" Global Address List: {0}", galId);
if (enableDefaultGroup)
{
UpdateGlobalAddressList(runSpace, galId, securityGroupPath);
}
UpdateGlobalAddressList(runSpace, galId, securityGroupPath);
//create AL
string alId = CreateAddressList(runSpace, organizationId);
transaction.RegisterNewAddressList(alId);
ExchangeLog.LogInfo(" Address List: {0}", alId);
if (enableDefaultGroup)
{
UpdateAddressList(runSpace, alId, securityGroupPath);
}
UpdateAddressList(runSpace, alId, securityGroupPath);
//create RAL
string ralId = CreateRoomsAddressList(runSpace, organizationId);
transaction.RegisterNewRoomsAddressList(ralId);
ExchangeLog.LogInfo(" Rooms Address List: {0}", ralId);
if (enableDefaultGroup)
{
UpdateAddressList(runSpace, ralId, securityGroupPath);
}
UpdateAddressList(runSpace, ralId, securityGroupPath);
//create ActiveSync policy
string asId = CreateActiveSyncPolicy(runSpace, organizationId);
@ -297,12 +283,7 @@ namespace WebsitePanel.Providers.HostedSolution
//disable mail security distribution group
try
{
bool enableDefaultGroup = !string.IsNullOrEmpty(securityGroup);
if (enableDefaultGroup)
{
DisableMailSecurityDistributionGroup(runSpace, securityGroup);
}
DisableMailSecurityDistributionGroup(runSpace, securityGroup);
}
catch (Exception ex)
{

View file

@ -206,12 +206,12 @@ namespace WebsitePanel.Providers.HostedSolution
return ActiveDirectoryUtils.AdObjectExists(orgPath);
}
public Organization CreateOrganization(string organizationId, bool enableDefaultGroup)
public Organization CreateOrganization(string organizationId)
{
return CreateOrganizationInternal(organizationId, enableDefaultGroup);
return CreateOrganizationInternal(organizationId);
}
internal Organization CreateOrganizationInternal(string organizationId, bool enableDefaultGroup)
internal Organization CreateOrganizationInternal(string organizationId)
{
HostedSolutionLog.LogStart("CreateOrganizationInternal");
HostedSolutionLog.DebugInfo("OrganizationId : {0}", organizationId);
@ -232,19 +232,14 @@ namespace WebsitePanel.Providers.HostedSolution
ActiveDirectoryUtils.CreateOrganizationalUnit(organizationId, parentPath);
ouCreated = true;
if (enableDefaultGroup)
{
//Create security group
ActiveDirectoryUtils.CreateGroup(orgPath, organizationId);
groupCreated = true;
}
//Create security group
ActiveDirectoryUtils.CreateGroup(orgPath, organizationId);
groupCreated = true;
org = new Organization();
org.OrganizationId = organizationId;
org.DistinguishedName = ActiveDirectoryUtils.RemoveADPrefix(orgPath);
org.SecurityGroup = enableDefaultGroup
? ActiveDirectoryUtils.RemoveADPrefix(GetGroupPath(organizationId))
: "";
org.SecurityGroup = ActiveDirectoryUtils.RemoveADPrefix(GetGroupPath(organizationId));
org.GroupName = organizationId;
}
@ -378,12 +373,12 @@ namespace WebsitePanel.Providers.HostedSolution
#region Users
public int CreateUser(string organizationId, string loginName, string displayName, string upn, string password, bool enabled, bool enableDefaultGroup)
public int CreateUser(string organizationId, string loginName, string displayName, string upn, string password, bool enabled)
{
return CreateUserInternal(organizationId, loginName, displayName, upn, password, enabled, enableDefaultGroup);
return CreateUserInternal(organizationId, loginName, displayName, upn, password, enabled);
}
internal int CreateUserInternal(string organizationId, string loginName, string displayName, string upn, string password, bool enabled, bool enableDefaultGroup)
internal int CreateUserInternal(string organizationId, string loginName, string displayName, string upn, string password, bool enabled)
{
HostedSolutionLog.LogStart("CreateUserInternal");
HostedSolutionLog.DebugInfo("organizationId : {0}", organizationId);
@ -421,14 +416,11 @@ namespace WebsitePanel.Providers.HostedSolution
return Errors.AD_OBJECT_ALREADY_EXISTS;
}
if (enableDefaultGroup)
{
string groupPath = GetGroupPath(organizationId);
HostedSolutionLog.DebugInfo("Group retrieved: {0}", groupPath);
string groupPath = GetGroupPath(organizationId);
HostedSolutionLog.DebugInfo("Group retrieved: {0}", groupPath);
ActiveDirectoryUtils.AddObjectToGroup(userPath, groupPath);
HostedSolutionLog.DebugInfo("Added to group: {0}", groupPath);
}
ActiveDirectoryUtils.AddObjectToGroup(userPath, groupPath);
HostedSolutionLog.DebugInfo("Added to group: {0}", groupPath);
}
catch (Exception e)
{