public void bindMember(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { if (cms.businesslogic.member.Member.InUmbracoMemberMode()) { cms.businesslogic.member.Member mem = (cms.businesslogic.member.Member)e.Item.DataItem; Literal _name = (Literal)e.Item.FindControl("lt_name"); Literal _email = (Literal)e.Item.FindControl("lt_email"); Literal _login = (Literal)e.Item.FindControl("lt_login"); Button _button = (Button)e.Item.FindControl("bt_delete"); _name.Text = "<a href='editMember.aspx?id=" + mem.Id.ToString() + "'>" + mem.Text + "</a>"; _login.Text = mem.LoginName; _email.Text = mem.Email; _button.CommandArgument = mem.Id.ToString(); _button.OnClientClick = "return confirm(\"" + ui.Text("confirmdelete") + "'" + mem.Text + "' ?\")"; _button.Text = ui.Text("delete"); } else { System.Web.Security.MembershipUser mem = (System.Web.Security.MembershipUser)e.Item.DataItem; Literal _name = (Literal)e.Item.FindControl("lt_name"); Literal _email = (Literal)e.Item.FindControl("lt_email"); Literal _login = (Literal)e.Item.FindControl("lt_login"); Button _button = (Button)e.Item.FindControl("bt_delete"); _name.Text = "<a href='editMember.aspx?id=" + mem.UserName + "'>" + mem.UserName + "</a>"; _login.Text = mem.UserName; _email.Text = mem.Email; _button.Visible = false; } } }
private static bool HasAccess(int DocumentId, string Path, cms.businesslogic.member.Member Member) { bool hasAccess = false; if (!IsProtected(DocumentId, Path)) { hasAccess = true; } else { XmlNode currentNode = getPage(getProtectedPage(Path)); if (Member != null) { IDictionaryEnumerator ide = Member.Groups.GetEnumerator(); while (ide.MoveNext()) { cms.businesslogic.member.MemberGroup mg = (cms.businesslogic.member.MemberGroup)ide.Value; if (currentNode.SelectSingleNode("./group [@id=" + mg.Id.ToString() + "]") != null) { hasAccess = true; break; } } } } return(hasAccess); }
public bool Save() { string[] nameAndMail = Alias.Split("|".ToCharArray()); string name = nameAndMail[0]; string email = nameAndMail.Length > 0 ? nameAndMail[1] : ""; string password = nameAndMail.Length > 1 ? nameAndMail[2] : ""; string loginName = nameAndMail.Length > 2 ? nameAndMail[3] : ""; if (cms.businesslogic.member.Member.InUmbracoMemberMode() && TypeID != -1) { cms.businesslogic.member.MemberType dt = new cms.businesslogic.member.MemberType(TypeID); cms.businesslogic.member.Member m = cms.businesslogic.member.Member.MakeNew(name, loginName, email, dt, BusinessLogic.User.GetUser(_userID)); m.Password = password; m.LoginName = loginName.Replace(" ", "").ToLower(); NewMemberUIEventArgs e = new NewMemberUIEventArgs(); this.OnNewMember(e, password, m); _returnUrl = "members/editMember.aspx?id=" + m.Id.ToString(); } else { MembershipCreateStatus mc = new MembershipCreateStatus(); Membership.CreateUser(name, password, email, "empty", "empty", true, out mc); if (mc != MembershipCreateStatus.Success) { throw new Exception("Error creating Member: " + mc.ToString()); } _returnUrl = "members/editMember.aspx?id=" + System.Web.HttpContext.Current.Server.UrlEncode(name); } return(true); }
protected void Page_Load(object sender, System.EventArgs e) { // Add password changer MemberPasswordTxt.Controls.Add(new UserControl().LoadControl(SystemDirectories.Umbraco + "/controls/passwordChanger.ascx")); if (Member.InUmbracoMemberMode()) { _document = new cms.businesslogic.member.Member(int.Parse(Request.QueryString["id"])); m_Member = Membership.GetUser(_document.Id); tmp = new controls.ContentControl(_document, controls.ContentControl.publishModes.NoPublish, "TabView1"); tmp.Width = Unit.Pixel(666); tmp.Height = Unit.Pixel(666); plc.Controls.Add(tmp); if (!IsPostBack) { MemberLoginNameTxt.Text = _document.LoginName; MemberEmail.Text = _document.Email; } PlaceHolder ph = new PlaceHolder(); MemberLoginNameTxt.ID = "loginname"; ph.Controls.Add(MemberLoginNameTxt); ph.Controls.Add(MemberLoginNameVal); MemberLoginNameVal.ControlToValidate = MemberLoginNameTxt.ID; string[] errorVars = { ui.Text("login") }; MemberLoginNameVal.ErrorMessage = " " + ui.Text("errorHandling", "errorMandatoryWithoutTab", errorVars, null); MemberLoginNameVal.EnableClientScript = false; MemberLoginNameVal.Display = ValidatorDisplay.Dynamic; tmp.PropertiesPane.addProperty(ui.Text("login"), ph); tmp.PropertiesPane.addProperty(ui.Text("password"), MemberPasswordTxt); tmp.PropertiesPane.addProperty("Email", MemberEmail); } else { m_Member = Membership.GetUser(Request.QueryString["id"]); MemberLoginNameTxt.Text = m_Member.UserName; if (!IsPostBack) { MemberEmail.Text = m_Member.Email; } m_MemberShipPanel.Width = 300; m_MemberShipPanel.Text = ui.Text("edit") + " " + m_Member.UserName; umbraco.uicontrols.Pane props = new umbraco.uicontrols.Pane(); MemberLoginNameTxt.Enabled = false; // check for pw support if (!Membership.Provider.EnablePasswordRetrieval) { MemberPasswordTxt.Controls.Clear(); MemberPasswordTxt.Controls.Add( new LiteralControl("<em>" + ui.Text("errorHandling", "errorChangingProviderPassword") + "</em>")); } props.Controls.Add(AddProperty(ui.Text("login"), MemberLoginNameTxt)); props.Controls.Add(AddProperty(ui.Text("password"), MemberPasswordTxt)); props.Controls.Add(AddProperty("Email", MemberEmail)); m_MemberShipPanel.Controls.Add(props); plc.Controls.Add(m_MemberShipPanel); } // Groups umbraco.uicontrols.Pane p = new umbraco.uicontrols.Pane(); _memberGroups.ID = "Membergroups"; _memberGroups.Width = 175; string selectedMembers = ""; foreach (string role in Roles.GetAllRoles()) { // if a role starts with __umbracoRole we won't show it as it's an internal role used for public access if (!role.StartsWith("__umbracoRole")) { ListItem li = new ListItem(role); if (!IsPostBack) { if (Roles.IsUserInRole(m_Member.UserName, role)) { selectedMembers += role + ","; } } _memberGroups.Items.Add(li); } } _memberGroups.Value = selectedMembers; p.addProperty(ui.Text("membergroup"), _memberGroups); if (Member.InUmbracoMemberMode()) { tmp.tpProp.Controls.Add(p); tmp.Save += new System.EventHandler(tmp_save); } else { m_MemberShipPanel.Controls.Add(p); } }
protected void protect_Click(object sender, CommandEventArgs e) { if (string.IsNullOrEmpty(errorPagePicker.Text)) { cv_errorPage.IsValid = false; } if (string.IsNullOrEmpty(loginPagePicker.Text)) { cv_loginPage.IsValid = false; } 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") { MembershipUser member = Membership.GetUser(simpleLogin.Text); if (member == null) { // this needs to work differently depending on umbraco members or external membership provider if (!cms.businesslogic.member.Member.InUmbracoMemberMode()) { member = Membership.CreateUser(simpleLogin.Text, simplePassword.Text); } else { try { if (cms.businesslogic.member.MemberType.GetByAlias("_umbracoSystemDefaultProtectType") == null) { cms.businesslogic.member.MemberType.MakeNew(BusinessLogic.User.GetUser(0), "_umbracoSystemDefaultProtectType"); } } catch { cms.businesslogic.member.MemberType.MakeNew(BusinessLogic.User.GetUser(0), "_umbracoSystemDefaultProtectType"); } // create member cms.businesslogic.member.Member mem = cms.businesslogic.member.Member.MakeNew(simpleLogin.Text, "", cms.businesslogic.member.MemberType.GetByAlias("_umbracoSystemDefaultProtectType"), base.getUser()); // working around empty password restriction for Umbraco Member Mode mem.Password = simplePassword.Text; member = Membership.GetUser(simpleLogin.Text); } } // Create or find a memberGroup string simpleRoleName = "__umbracoRole_" + simpleLogin.Text; if (!Roles.RoleExists(simpleRoleName)) { Roles.CreateRole(simpleRoleName); } if (!Roles.IsUserInRole(member.UserName, simpleRoleName)) { Roles.AddUserToRole(member.UserName, simpleRoleName); } Access.ProtectPage(true, pageId, int.Parse(loginPagePicker.Text), int.Parse(errorPagePicker.Text)); Access.AddMembershipRoleToDocument(pageId, simpleRoleName); Access.AddMembershipUserToDocument(pageId, member.UserName); } else if (e.CommandName == "advanced") { cms.businesslogic.web.Access.ProtectPage(false, pageId, int.Parse(loginPagePicker.Text), int.Parse(errorPagePicker.Text)); foreach (ListItem li in _memberGroups.Items) { if (("," + _memberGroups.Value + ",").IndexOf("," + li.Value + ",") > -1) { cms.businesslogic.web.Access.AddMembershipRoleToDocument(pageId, li.Value); } else { cms.businesslogic.web.Access.RemoveMembershipRoleFromDocument(pageId, li.Value); } } } feedback.Text = ui.Text("publicAccess", "paIsProtected", new cms.businesslogic.CMSNode(pageId).Text, null) + "</p><p><a href='#' onclick='" + ClientTools.Scripts.CloseModalWindow() + "'>" + ui.Text("closeThisWindow") + "</a>"; ClientTools.ReloadActionNode(true, false); feedback.type = global::umbraco.uicontrols.Feedback.feedbacktype.success; } }
protected void Page_Load(object sender, System.EventArgs e) { // Add password changer MemberPasswordTxt.Controls.Add(new UserControl().LoadControl(SystemDirectories.Umbraco + "/controls/passwordChanger.ascx")); if (Member.InUmbracoMemberMode()) { _document = new cms.businesslogic.member.Member(int.Parse(Request.QueryString["id"])); m_Member = Membership.GetUser(_document.Id); tmp = new controls.ContentControl(_document, controls.ContentControl.publishModes.NoPublish, "TabView1"); tmp.Width = Unit.Pixel(666); tmp.Height = Unit.Pixel(666); plc.Controls.Add(tmp); if (!IsPostBack) { MemberLoginNameTxt.Text = _document.LoginName; MemberEmail.Text = _document.Email; } PlaceHolder ph = new PlaceHolder(); MemberLoginNameTxt.ID = "loginname"; ph.Controls.Add(MemberLoginNameTxt); ph.Controls.Add(MemberLoginNameVal); MemberLoginNameVal.ControlToValidate = MemberLoginNameTxt.ID; string[] errorVars = { ui.Text("login") }; MemberLoginNameVal.ErrorMessage = " " + ui.Text("errorHandling", "errorMandatoryWithoutTab", errorVars, null); MemberLoginNameVal.EnableClientScript = false; MemberLoginNameVal.Display = ValidatorDisplay.Dynamic; tmp.PropertiesPane.addProperty(ui.Text("login"), ph); tmp.PropertiesPane.addProperty(ui.Text("password"), MemberPasswordTxt); tmp.PropertiesPane.addProperty("Email", MemberEmail); } else { m_Member = Membership.GetUser(Request.QueryString["id"]); MemberLoginNameTxt.Text = m_Member.UserName; if (!IsPostBack) { MemberEmail.Text = m_Member.Email; } m_MemberShipPanel.Width = 300; m_MemberShipPanel.Text = ui.Text("edit") + " " + m_Member.UserName; umbraco.uicontrols.Pane props = new umbraco.uicontrols.Pane(); MemberLoginNameTxt.Enabled = false; // check for pw support if (!Membership.Provider.EnablePasswordRetrieval) { MemberPasswordTxt.Controls.Clear(); MemberPasswordTxt.Controls.Add( new LiteralControl("<em>" + ui.Text("errorHandling", "errorChangingProviderPassword") + "</em>")); } props.Controls.Add(AddProperty(ui.Text("login"), MemberLoginNameTxt)); props.Controls.Add(AddProperty(ui.Text("password"), MemberPasswordTxt)); props.Controls.Add(AddProperty("Email", MemberEmail)); m_MemberShipPanel.Controls.Add(props); plc.Controls.Add(m_MemberShipPanel); } // Groups umbraco.uicontrols.Pane p = new umbraco.uicontrols.Pane(); _memberGroups.ID = "Membergroups"; _memberGroups.Width = 175; string selectedMembers = ""; foreach(string role in Roles.GetAllRoles()) { // if a role starts with __umbracoRole we won't show it as it's an internal role used for public access if (!role.StartsWith("__umbracoRole")) { ListItem li = new ListItem(role); if (!IsPostBack) { if (Roles.IsUserInRole(m_Member.UserName, role)) selectedMembers += role + ","; } _memberGroups.Items.Add(li); } } _memberGroups.Value = selectedMembers; p.addProperty(ui.Text("membergroup"), _memberGroups); if (Member.InUmbracoMemberMode()) { tmp.tpProp.Controls.Add(p); tmp.Save += new System.EventHandler(tmp_save); } else m_MemberShipPanel.Controls.Add(p); }