Added UserNameFormat dropdown into HostedOrganizations properties
and this value is used to identify how Active Directory user name should be created (with organization Id or without).
This commit is contained in:
parent
e28411b9c7
commit
9984d6d1cc
5 changed files with 106 additions and 9 deletions
|
@ -1314,8 +1314,18 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
// load organization
|
// load organization
|
||||||
Organization org = GetOrganization(itemId);
|
Organization org = GetOrganization(itemId);
|
||||||
|
|
||||||
if (org == null)
|
if (org == null)
|
||||||
|
{
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
StringDictionary serviceSettings = ServerController.GetServiceSettings(org.ServiceId);
|
||||||
|
|
||||||
|
if (serviceSettings == null)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
// check package
|
// check package
|
||||||
int packageCheck = SecurityContext.CheckPackage(org.PackageId, DemandPackage.IsActive);
|
int packageCheck = SecurityContext.CheckPackage(org.PackageId, DemandPackage.IsActive);
|
||||||
|
@ -1329,7 +1339,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
Organizations orgProxy = GetOrganizationProxy(org.ServiceId);
|
Organizations orgProxy = GetOrganizationProxy(org.ServiceId);
|
||||||
|
|
||||||
string upn = string.Format("{0}@{1}", name, domain);
|
string upn = string.Format("{0}@{1}", name, domain);
|
||||||
string sAMAccountName = BuildAccountName(org.OrganizationId, name, org.ServiceId);
|
string sAMAccountName = AppendOrgId(serviceSettings) ? BuildAccountNameWithOrgId(org.OrganizationId, name, org.ServiceId) : BuildAccountName(org.OrganizationId, name, org.ServiceId);
|
||||||
|
|
||||||
TaskManager.Write("accountName :" + sAMAccountName);
|
TaskManager.Write("accountName :" + sAMAccountName);
|
||||||
TaskManager.Write("upn :" + upn);
|
TaskManager.Write("upn :" + upn);
|
||||||
|
@ -1367,7 +1377,23 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return userId;
|
return userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary> Checks should or not user name include organization id. </summary>
|
||||||
|
/// <param name="serviceSettings"> The service settings. </param>
|
||||||
|
/// <returns> True - if organization id should be appended. </returns>
|
||||||
|
private static bool AppendOrgId(StringDictionary serviceSettings)
|
||||||
|
{
|
||||||
|
if (!serviceSettings.ContainsKey("usernameformat"))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!serviceSettings["usernameformat"].Equals("Append OrgId", StringComparison.CurrentCultureIgnoreCase))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public static int ImportUser(int itemId, string accountName, string displayName, string name, string domain, string password, string subscriberNumber)
|
public static int ImportUser(int itemId, string accountName, string displayName, string name, string domain, string password, string subscriberNumber)
|
||||||
{
|
{
|
||||||
|
@ -1474,6 +1500,40 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return accountName;
|
return accountName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary> Building account name with organization Id. </summary>
|
||||||
|
/// <param name="orgId"> The organization identifier. </param>
|
||||||
|
/// <param name="name"> The name. </param>
|
||||||
|
/// <param name="serviceId"> The service identifier. </param>
|
||||||
|
/// <returns> The account name with organization Id. </returns>
|
||||||
|
private static string BuildAccountNameWithOrgId(string orgId, string name, int serviceId)
|
||||||
|
{
|
||||||
|
int maxLen = 19 - orgId.Length;
|
||||||
|
|
||||||
|
// try to choose name
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
string num = i > 0 ? i.ToString() : "";
|
||||||
|
int len = maxLen - num.Length;
|
||||||
|
|
||||||
|
if (name.Length > len)
|
||||||
|
{
|
||||||
|
name = name.Substring(0, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
string accountName = name + num + "_" + orgId;
|
||||||
|
|
||||||
|
// check if already exists
|
||||||
|
if (!AccountExists(accountName, serviceId))
|
||||||
|
{
|
||||||
|
return accountName;
|
||||||
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static string genSamLogin(string login, string strCounter)
|
private static string genSamLogin(string login, string strCounter)
|
||||||
{
|
{
|
||||||
int maxLogin = 20;
|
int maxLogin = 20;
|
||||||
|
|
|
@ -126,4 +126,13 @@
|
||||||
<data name="lblTemporyDomainName.Text" xml:space="preserve">
|
<data name="lblTemporyDomainName.Text" xml:space="preserve">
|
||||||
<value>Tempory Domain Name:</value>
|
<value>Tempory Domain Name:</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="lblUserNameFormat.Text" xml:space="preserve">
|
||||||
|
<value>Username Format:</value>
|
||||||
|
</data>
|
||||||
|
<data name="listItemStandard.Text" xml:space="preserve">
|
||||||
|
<value>Standard</value>
|
||||||
|
</data>
|
||||||
|
<data name="listItemAppendOrgId.Text" xml:space="preserve">
|
||||||
|
<value>Append OrgID</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -23,4 +23,13 @@
|
||||||
<asp:RequiredFieldValidator ControlToValidate="txtTemporyDomainName" ErrorMessage="*" />
|
<asp:RequiredFieldValidator ControlToValidate="txtTemporyDomainName" ErrorMessage="*" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" nowrap="nowrap"><asp:Label runat="server" ID="UserNameFormatLabel" meta:resourcekey="lblUserNameFormat"/></td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList runat="server" ID="UserNameFormatDropDown">
|
||||||
|
<asp:ListItem Value="1" meta:resourcekey="listItemStandard"/>
|
||||||
|
<asp:ListItem Value="2" meta:resourcekey="listItemAppendOrgId"/>
|
||||||
|
</asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
|
@ -35,6 +35,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
public const string RootOU = "RootOU";
|
public const string RootOU = "RootOU";
|
||||||
public const string PrimaryDomainController = "PrimaryDomainController";
|
public const string PrimaryDomainController = "PrimaryDomainController";
|
||||||
public const string TemporyDomainName = "TempDomain";
|
public const string TemporyDomainName = "TempDomain";
|
||||||
|
public const string UserNameFormat = "UserNameFormat";
|
||||||
|
|
||||||
protected void Page_Load(object sender, EventArgs e)
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
@ -46,6 +47,12 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
txtPrimaryDomainController.Text = settings[PrimaryDomainController];
|
txtPrimaryDomainController.Text = settings[PrimaryDomainController];
|
||||||
txtRootOU.Text = settings[RootOU];
|
txtRootOU.Text = settings[RootOU];
|
||||||
txtTemporyDomainName.Text = settings[TemporyDomainName];
|
txtTemporyDomainName.Text = settings[TemporyDomainName];
|
||||||
|
|
||||||
|
if (settings.ContainsKey(UserNameFormat))
|
||||||
|
{
|
||||||
|
UserNameFormatDropDown.SelectedValue =
|
||||||
|
UserNameFormatDropDown.Items.FindByText(settings[UserNameFormat]).Value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SaveSettings(System.Collections.Specialized.StringDictionary settings)
|
public void SaveSettings(System.Collections.Specialized.StringDictionary settings)
|
||||||
|
@ -53,6 +60,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
settings[RootOU] = txtRootOU.Text.Trim();
|
settings[RootOU] = txtRootOU.Text.Trim();
|
||||||
settings[PrimaryDomainController] = txtPrimaryDomainController.Text.Trim();
|
settings[PrimaryDomainController] = txtPrimaryDomainController.Text.Trim();
|
||||||
settings[TemporyDomainName] = txtTemporyDomainName.Text.Trim();
|
settings[TemporyDomainName] = txtTemporyDomainName.Text.Trim();
|
||||||
|
settings[UserNameFormat] = UserNameFormatDropDown.SelectedItem.Text;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,22 +1,15 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.1378
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.ProviderControls {
|
namespace WebsitePanel.Portal.ProviderControls {
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Organizations_Settings class.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated class.
|
|
||||||
/// </remarks>
|
|
||||||
public partial class Organizations_Settings {
|
public partial class Organizations_Settings {
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -81,5 +74,23 @@ namespace WebsitePanel.Portal.ProviderControls {
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtTemporyDomainName;
|
protected global::System.Web.UI.WebControls.TextBox txtTemporyDomainName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// UserNameFormatLabel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label UserNameFormatLabel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// UserNameFormatDropDown control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList UserNameFormatDropDown;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue