diff --git a/src/Umbraco.Core/Models/MemberType.cs b/src/Umbraco.Core/Models/MemberType.cs index 2b32681392..01a3d57738 100644 --- a/src/Umbraco.Core/Models/MemberType.cs +++ b/src/Umbraco.Core/Models/MemberType.cs @@ -15,6 +15,7 @@ namespace Umbraco.Core.Models { //Dictionary is divided into string: PropertyTypeAlias, Tuple: MemberCanEdit, VisibleOnProfile, PropertyTypeId private IDictionary> _memberTypePropertyTypes; + private string _alias; public MemberType(int parentId) : base(parentId) { @@ -27,6 +28,29 @@ namespace Umbraco.Core.Models } private static readonly PropertyInfo MemberTypePropertyTypesSelector = ExpressionHelper.GetPropertyInfo>>(x => x.MemberTypePropertyTypes); + private static readonly PropertyInfo AliasSelector = ExpressionHelper.GetPropertyInfo(x => x.Alias); + + /// + /// The Alias of the ContentType + /// + [DataMember] + public override string Alias + { + get { return _alias; } + set + { + //NOTE: WE are overriding this because we don't want to do a ToSafeAlias when the alias is the special case of + // "_umbracoSystemDefaultProtectType" which is used internally, currently there is an issue with the safe alias as it strips + // leading underscores which we don't want in this case. + // see : http://issues.umbraco.org/issue/U4-3968 + + SetPropertyValueAndDetectChanges(o => + { + _alias = value == "_umbracoSystemDefaultProtectType" ? value : value.ToSafeAlias(); + return _alias; + }, _alias, AliasSelector); + } + } /// /// Gets or Sets a Dictionary of Tuples (MemberCanEdit, VisibleOnProfile, PropertyTypeId) by the PropertyTypes' alias. diff --git a/src/Umbraco.Core/Security/MembershipProviderExtensions.cs b/src/Umbraco.Core/Security/MembershipProviderExtensions.cs index daa4623747..85db27ac97 100644 --- a/src/Umbraco.Core/Security/MembershipProviderExtensions.cs +++ b/src/Umbraco.Core/Security/MembershipProviderExtensions.cs @@ -20,5 +20,10 @@ namespace Umbraco.Core.Security return (membershipProvider is UmbracoMembershipProviderBase); } + public static UmbracoMembershipProviderBase AsUmbracoMembershipProvider(this MembershipProvider membershipProvider) + { + return (UmbracoMembershipProviderBase)membershipProvider; + } + } } diff --git a/src/Umbraco.Web.UI/umbraco/dialogs/protectPage.aspx b/src/Umbraco.Web.UI/umbraco/dialogs/protectPage.aspx index 19edd39dfc..8f57f60b7c 100644 --- a/src/Umbraco.Web.UI/umbraco/dialogs/protectPage.aspx +++ b/src/Umbraco.Web.UI/umbraco/dialogs/protectPage.aspx @@ -1,7 +1,6 @@ -<%@ Page Language="c#" MasterPageFile="../masterpages/umbracoDialog.Master" Codebehind="protectPage.aspx.cs" AutoEventWireup="True" Inherits="umbraco.presentation.umbraco.dialogs.protectPage" %> +<%@ Page Language="c#" MasterPageFile="../masterpages/umbracoDialog.Master" AutoEventWireup="True" Inherits="umbraco.presentation.umbraco.dialogs.protectPage" %> <%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %> - - - - - - - - - - - - - - -
-

<%= umbraco.ui.Text("publicAccess", "paSimple", base.getUser())%>

-

<%= umbraco.ui.Text("publicAccess", "paSimpleHelp", base.getUser())%>

-
-
- - -
-

<%= umbraco.ui.Text("publicAccess", "paAdvanced", base.getUser())%>

-

<%= umbraco.ui.Text("publicAccess", "paAdvancedHelp", base.getUser())%>

- - -

- <%= umbraco.ui.Text("publicAccess", "paAdvancedNoGroups", base.getUser())%> -

-
- -
-
-

-   <%= umbraco.ui.Text("or") %>  <%=umbraco.ui.Text("cancel")%> -

-
- - - - -

<%= umbraco.ui.Text("publicAccess", "paSetLogin", base.getUser())%>

-
- - - - - - -
- - - -

<%= umbraco.ui.Text("publicAccess", "paSelectRoles", base.getUser())%>

-
- - - -
- - - - - -
- - <%=umbraco.ui.Text("paLoginPageHelp")%> - -

-
- - - -
- - <%=umbraco.ui.Text("paErrorPageHelp")%> - -
-
- -
-

- - -   <%= umbraco.ui.Text("or") %>  <%=umbraco.ui.Text("cancel")%> -

-
- - -
- - - - - - - \ No newline at end of file diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/protectPage.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/protectPage.aspx.cs index 50a4a033e3..e301ae3de8 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/protectPage.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/protectPage.aspx.cs @@ -1,9 +1,11 @@ -using System; +using System; +using System.Globalization; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Windows.Forms.VisualStyles; using Umbraco.Core; +using Umbraco.Core.Logging; using umbraco.cms.businesslogic.member; using umbraco.cms.businesslogic.web; using umbraco.controls; @@ -24,11 +26,16 @@ namespace umbraco.presentation.umbraco.dialogs } - protected System.Web.UI.WebControls.Literal jsShowWindow; + protected Literal jsShowWindow; protected DualSelectbox _memberGroups = new DualSelectbox(); protected ContentPicker loginPagePicker = new ContentPicker(); protected ContentPicker errorPagePicker = new ContentPicker(); + override protected void OnInit(EventArgs e) + { + base.OnInit(e); + } + protected void selectMode(object sender, EventArgs e) { p_mode.Visible = false; @@ -48,11 +55,11 @@ namespace umbraco.presentation.umbraco.dialogs } } - protected void Page_Load(object sender, System.EventArgs e) + protected void Page_Load(object sender, EventArgs e) { // Check for editing int documentId = int.Parse(helper.Request("nodeId")); - cms.businesslogic.web.Document documentObject = new cms.businesslogic.web.Document(documentId); + var documentObject = new Document(documentId); jsShowWindow.Text = ""; ph_errorpage.Controls.Add(errorPagePicker); @@ -63,12 +70,12 @@ namespace umbraco.presentation.umbraco.dialogs pp_loginPage.Text = ui.Text("paLoginPage"); pp_errorPage.Text = ui.Text("paErrorPage"); - pane_chooseMode.Text = ui.Text("publicAccess", "paHowWould", base.getUser()); - pane_pages.Text = ui.Text("publicAccess", "paSelectPages", base.getUser()); - pane_simple.Text = ui.Text("publicAccess", "paSimple", base.getUser()); - pane_advanced.Text = ui.Text("publicAccess", "paAdvanced", base.getUser()); + pane_chooseMode.Text = ui.Text("publicAccess", "paHowWould", UmbracoUser); + pane_pages.Text = ui.Text("publicAccess", "paSelectPages", UmbracoUser); + pane_simple.Text = ui.Text("publicAccess", "paSimple", UmbracoUser); + pane_advanced.Text = ui.Text("publicAccess", "paAdvanced", UmbracoUser); - if (!IsPostBack) + if (IsPostBack == false) { if (Access.IsProtected(documentId, documentObject.Path) && Access.GetProtectionType(documentId) != ProtectionType.NotProtected) { @@ -80,23 +87,27 @@ namespace umbraco.presentation.umbraco.dialogs int loginPage = Access.GetLoginPage(documentObject.Path); try { - Document loginPageObj = new Document(loginPage); + var loginPageObj = new Document(loginPage); if (loginPageObj != null) { - loginPagePicker.Value = loginPage.ToString(); + loginPagePicker.Value = loginPage.ToString(CultureInfo.InvariantCulture); } - Document errorPageObj = new Document(errorPage); - errorPagePicker.Value = errorPage.ToString(); + var errorPageObj = new Document(errorPage); + errorPagePicker.Value = errorPage.ToString(CultureInfo.InvariantCulture); } - catch + catch (Exception ex) { + LogHelper.Error("An error occurred initializing the protect page editor", ex); } if (Access.GetProtectionType(documentId) == ProtectionType.Simple) { - MembershipUser m = Access.GetAccessingMembershipUser(documentId); - simpleLogin.Text = m.UserName; + MembershipUser m = Access.GetAccessingMembershipUser(documentId); pane_simple.Visible = true; + pp_pass.Visible = false; + simpleLogin.Visible = false; + SimpleLoginLabel.Visible = true; + SimpleLoginLabel.Text = m.UserName; pane_advanced.Visible = false; bt_protect.CommandName = "simple"; @@ -116,17 +127,17 @@ namespace umbraco.presentation.umbraco.dialogs // Load up membergrouops _memberGroups.ID = "Membergroups"; _memberGroups.Width = 175; - string selectedGroups = ""; - string[] _roles = Roles.GetAllRoles(); + var selectedGroups = ""; + var roles = Roles.GetAllRoles(); - if (_roles.Length > 0) + if (roles.Length > 0) { - foreach (string role in _roles) + foreach (string role in roles) { ListItem li = new ListItem(role, role); - if (!IsPostBack) + if (IsPostBack == false) { - if (cms.businesslogic.web.Access.IsProtectedByMembershipRole(int.Parse(helper.Request("nodeid")), role)) + if (Access.IsProtectedByMembershipRole(int.Parse(helper.Request("nodeid")), role)) selectedGroups += role + ","; } _memberGroups.Items.Add(li); @@ -147,26 +158,14 @@ namespace umbraco.presentation.umbraco.dialogs // Put user code to initialize the page here } - #region Web Form Designer generated code - override protected void OnInit(EventArgs e) + protected void ChangeOnClick(object sender, EventArgs e) { - // - // CODEGEN: This call is required by the ASP.NET Web Form Designer. - // - InitializeComponent(); - base.OnInit(e); + SimpleLoginNameValidator.IsValid = true; + SimpleLoginLabel.Visible = false; + simpleLogin.Visible = true; + pp_pass.Visible = true; } - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - - } - #endregion - protected void protect_Click(object sender, CommandEventArgs e) { if (string.IsNullOrEmpty(errorPagePicker.Value)) @@ -175,55 +174,52 @@ namespace umbraco.presentation.umbraco.dialogs if (string.IsNullOrEmpty(loginPagePicker.Value)) cv_loginPage.IsValid = false; + //reset + SimpleLoginNameValidator.IsValid = true; if (Page.IsValid) { int pageId = int.Parse(helper.Request("nodeId")); - p_buttons.Visible = false; - pane_advanced.Visible = false; - pane_simple.Visible = false; - + if (e.CommandName == "simple") { var member = Membership.GetUser(simpleLogin.Text); if (member == null) { + var tempEmail = "u" + Guid.NewGuid().ToString("N") + "@example.com"; + // this needs to work differently depending on umbraco members or external membership provider if (Membership.Provider.IsUmbracoMembershipProvider() == false) { - member = Membership.CreateUser(simpleLogin.Text, simplePassword.Text); + member = Membership.CreateUser(simpleLogin.Text, simplePassword.Text, tempEmail); } else { - try + //if it's the umbraco membership provider, then we need to tell it what member type to create it with + if (MemberType.GetByAlias(Constants.Conventions.MemberTypes.SystemDefaultProtectType) == null) { - if (cms.businesslogic.member.MemberType.GetByAlias(Constants.Conventions.MemberTypes.SystemDefaultProtectType) == null) - { - cms.businesslogic.member.MemberType.MakeNew(BusinessLogic.User.GetUser(0), Constants.Conventions.MemberTypes.SystemDefaultProtectType); - } + MemberType.MakeNew(BusinessLogic.User.GetUser(0), Constants.Conventions.MemberTypes.SystemDefaultProtectType); } - catch + var provider = Membership.Provider.AsUmbracoMembershipProvider(); + MembershipCreateStatus status; + member = provider.CreateUser(Constants.Conventions.MemberTypes.SystemDefaultProtectType, + simpleLogin.Text, simplePassword.Text, tempEmail, null, null, true, null, out status); + if (status != MembershipCreateStatus.Success) { - cms.businesslogic.member.MemberType.MakeNew(BusinessLogic.User.GetUser(0), Constants.Conventions.MemberTypes.SystemDefaultProtectType); + SimpleLoginNameValidator.IsValid = false; + SimpleLoginNameValidator.ErrorMessage = "Could not create user: " + status; + return; } - - // create member - Member mem = cms.businesslogic.member.Member.MakeNew(simpleLogin.Text, "", cms.businesslogic.member.MemberType.GetByAlias(Constants.Conventions.MemberTypes.SystemDefaultProtectType), UmbracoUser); - // working around empty password restriction for Umbraco Member Mode - mem.Password = simplePassword.Text; - member = Membership.GetUser(simpleLogin.Text); } } - else + else if (pp_pass.Visible) { - //Membership.Provider.ChangePassword(member.UserName, ) - - // change password if it's not empty - if (string.IsNullOrWhiteSpace(simplePassword.Text) == false) - { - var mem = Member.GetMemberFromLoginName(simpleLogin.Text); - mem.Password = simplePassword.Text; - } + SimpleLoginNameValidator.IsValid = false; + SimpleLoginLabel.Visible = true; + SimpleLoginLabel.Text = simpleLogin.Text; + simpleLogin.Visible = false; + pp_pass.Visible = false; + return; } // Create or find a memberGroup @@ -246,7 +242,7 @@ namespace umbraco.presentation.umbraco.dialogs Access.ProtectPage(false, pageId, int.Parse(loginPagePicker.Value), int.Parse(errorPagePicker.Value)); foreach (ListItem li in _memberGroups.Items) - if (("," + _memberGroups.Value + ",").IndexOf("," + li.Value + ",") > -1) + if (("," + _memberGroups.Value + ",").IndexOf("," + li.Value + ",", StringComparison.Ordinal) > -1) Access.AddMembershipRoleToDocument(pageId, li.Value); else Access.RemoveMembershipRoleFromDocument(pageId, li.Value); @@ -254,6 +250,10 @@ namespace umbraco.presentation.umbraco.dialogs feedback.Text = ui.Text("publicAccess", "paIsProtected", new cms.businesslogic.CMSNode(pageId).Text, null) + "

" + ui.Text("closeThisWindow") + ""; + p_buttons.Visible = false; + pane_advanced.Visible = false; + pane_simple.Visible = false; + ClientTools.ReloadActionNode(true, false); feedback.type = global::umbraco.uicontrols.Feedback.feedbacktype.success; @@ -276,5 +276,289 @@ namespace umbraco.presentation.umbraco.dialogs feedback.type = global::umbraco.uicontrols.Feedback.feedbacktype.success; } + + protected CustomValidator SimpleLoginNameValidator; + protected Label SimpleLoginLabel; + + ///

+ /// tempFile control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlInputHidden tempFile; + + /// + /// feedback control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::umbraco.uicontrols.Feedback feedback; + + /// + /// p_mode control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel p_mode; + + /// + /// pane_chooseMode control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::umbraco.uicontrols.Pane pane_chooseMode; + + /// + /// rb_simple control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.RadioButton rb_simple; + + /// + /// rb_advanced control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.RadioButton rb_advanced; + + /// + /// p_noGroupsFound control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel p_noGroupsFound; + + /// + /// bt_selectMode control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button bt_selectMode; + + /// + /// pane_simple control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::umbraco.uicontrols.Pane pane_simple; + + /// + /// PropertyPanel1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::umbraco.uicontrols.PropertyPanel PropertyPanel1; + + /// + /// pp_login control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::umbraco.uicontrols.PropertyPanel pp_login; + + /// + /// simpleLogin control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox simpleLogin; + + /// + /// pp_pass control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::umbraco.uicontrols.PropertyPanel pp_pass; + + /// + /// simplePassword control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox simplePassword; + + /// + /// pane_advanced control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::umbraco.uicontrols.Pane pane_advanced; + + /// + /// PropertyPanel3 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::umbraco.uicontrols.PropertyPanel PropertyPanel3; + + /// + /// PropertyPanel2 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::umbraco.uicontrols.PropertyPanel PropertyPanel2; + + /// + /// groupsSelector control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.PlaceHolder groupsSelector; + + /// + /// p_buttons control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel p_buttons; + + /// + /// pane_pages control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::umbraco.uicontrols.Pane pane_pages; + + /// + /// pp_loginPage control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::umbraco.uicontrols.PropertyPanel pp_loginPage; + + /// + /// ph_loginpage control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.PlaceHolder ph_loginpage; + + /// + /// cv_loginPage control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CustomValidator cv_loginPage; + + /// + /// pp_errorPage control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::umbraco.uicontrols.PropertyPanel pp_errorPage; + + /// + /// ph_errorpage control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.PlaceHolder ph_errorpage; + + /// + /// cv_errorPage control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CustomValidator cv_errorPage; + + /// + /// bt_protect control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button bt_protect; + + /// + /// bt_buttonRemoveProtection control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button bt_buttonRemoveProtection; + + /// + /// errorId control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlInputHidden errorId; + + /// + /// loginId control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlInputHidden loginId; + + /// + /// js control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.PlaceHolder js; + + } } diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/protectPage.aspx.designer.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/protectPage.aspx.designer.cs deleted file mode 100644 index 6ed66eea24..0000000000 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/protectPage.aspx.designer.cs +++ /dev/null @@ -1,295 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4200 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace umbraco.presentation.umbraco.dialogs { - - - public partial class protectPage { - - /// - /// tempFile control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.HtmlControls.HtmlInputHidden tempFile; - - /// - /// feedback control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.Feedback feedback; - - /// - /// p_mode control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Panel p_mode; - - /// - /// pane_chooseMode control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.Pane pane_chooseMode; - - /// - /// rb_simple control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.RadioButton rb_simple; - - /// - /// rb_advanced control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.RadioButton rb_advanced; - - /// - /// p_noGroupsFound control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Panel p_noGroupsFound; - - /// - /// bt_selectMode control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Button bt_selectMode; - - /// - /// pane_simple control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.Pane pane_simple; - - /// - /// PropertyPanel1 control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.PropertyPanel PropertyPanel1; - - /// - /// pp_login control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.PropertyPanel pp_login; - - /// - /// simpleLogin control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.TextBox simpleLogin; - - /// - /// pp_pass control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.PropertyPanel pp_pass; - - /// - /// simplePassword control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.TextBox simplePassword; - - /// - /// pane_advanced control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.Pane pane_advanced; - - /// - /// PropertyPanel3 control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.PropertyPanel PropertyPanel3; - - /// - /// PropertyPanel2 control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.PropertyPanel PropertyPanel2; - - /// - /// groupsSelector control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.PlaceHolder groupsSelector; - - /// - /// p_buttons control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Panel p_buttons; - - /// - /// pane_pages control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.Pane pane_pages; - - /// - /// pp_loginPage control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.PropertyPanel pp_loginPage; - - /// - /// ph_loginpage control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.PlaceHolder ph_loginpage; - - /// - /// cv_loginPage control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.CustomValidator cv_loginPage; - - /// - /// pp_errorPage control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.PropertyPanel pp_errorPage; - - /// - /// ph_errorpage control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.PlaceHolder ph_errorpage; - - /// - /// cv_errorPage control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.CustomValidator cv_errorPage; - - /// - /// bt_protect control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Button bt_protect; - - /// - /// bt_buttonRemoveProtection control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Button bt_buttonRemoveProtection; - - /// - /// errorId control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.HtmlControls.HtmlInputHidden errorId; - - /// - /// loginId control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.HtmlControls.HtmlInputHidden loginId; - - /// - /// js control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.PlaceHolder js; - } -} diff --git a/src/umbraco.cms/businesslogic/ContentType.cs b/src/umbraco.cms/businesslogic/ContentType.cs index 71d676f54d..1f14459c40 100644 --- a/src/umbraco.cms/businesslogic/ContentType.cs +++ b/src/umbraco.cms/businesslogic/ContentType.cs @@ -199,10 +199,17 @@ namespace umbraco.cms.businesslogic /// The Alias of the ContentType /// The Iconurl of Contents of this ContentType protected static void Create(int NodeId, string Alias, string IconUrl) + { + Create(NodeId, Alias, IconUrl, true); + } + + internal static void Create(int nodeId, string alias, string iconUrl, bool formatAlias) { SqlHelper.ExecuteNonQuery( - "Insert into cmsContentType (nodeId,alias,icon) values (" + NodeId + ",'" + helpers.Casing.SafeAliasWithForcingCheck(Alias) + - "','" + IconUrl + "')"); + "Insert into cmsContentType (nodeId,alias,icon) values (" + + nodeId + ",'" + + (formatAlias ? helpers.Casing.SafeAliasWithForcingCheck(alias) : alias) + + "','" + iconUrl + "')"); } /// diff --git a/src/umbraco.cms/businesslogic/member/MemberType.cs b/src/umbraco.cms/businesslogic/member/MemberType.cs index 0a0612dc83..449531315c 100644 --- a/src/umbraco.cms/businesslogic/member/MemberType.cs +++ b/src/umbraco.cms/businesslogic/member/MemberType.cs @@ -245,7 +245,10 @@ namespace umbraco.cms.businesslogic.member Guid uniqueId = Guid.NewGuid(); CMSNode n = CMSNode.MakeNew(ParentId, _objectType, u.Id, level, Text, uniqueId); - ContentType.Create(n.Id, Text, ""); + ContentType.Create(n.Id, Text, "", + //don't format the alias if it equals this. See: http://issues.umbraco.org/issue/U4-3968 + Text != "_umbracoSystemDefaultProtectType"); + MemberType mt = new MemberType(n.Id); mt.IconUrl = "member.gif"; NewEventArgs e = new NewEventArgs();