public static MembershipUser GetAccessingMembershipUser(int documentId) { var content = ApplicationContext.Current.Services.ContentService.GetById(documentId); if (content == null) { return(null); } var entry = ApplicationContext.Current.Services.PublicAccessService.GetEntryForContent(content); if (entry == null) { return(null); } //legacy would throw an exception here if it was not 'simple' and simple means based on a username if (entry.Rules.All(x => x.RuleType != Constants.Conventions.PublicAccess.MemberUsernameRuleType)) { throw new Exception("Document isn't protected using Simple mechanism. Use GetAccessingMemberGroups instead"); } var provider = MembershipProviderExtensions.GetMembersMembershipProvider(); var usernameRule = entry.Rules.First(x => x.RuleType == Constants.Conventions.PublicAccess.MemberUsernameRuleType); return(provider.GetUser(usernameRule.RuleValue, false)); }
private void BindRp() { var provider = MembershipProviderExtensions.GetMembersMembershipProvider(); string letter = Request.QueryString["letter"]; if (string.IsNullOrEmpty(letter) == false) { if (provider.IsUmbracoMembershipProvider()) { if (letter == "#") { rp_members.DataSource = cms.businesslogic.member.Member.getAllOtherMembers(); } else { rp_members.DataSource = cms.businesslogic.member.Member.getMemberFromFirstLetter(letter.ToCharArray()[0]); } } else { rp_members.DataSource = provider.FindUsersByName(letter + "%"); } rp_members.DataBind(); } }
protected void Page_Load(object sender, EventArgs e) { var provider = MembershipProviderExtensions.GetMembersMembershipProvider(); if (provider.IsUmbracoMembershipProvider()) { ButtonSearch.Text = ui.Text("search"); } }
public static bool HasAccess(int documentId, object memberId) { return(ApplicationContext.Current.Services.PublicAccessService.HasAccess( documentId, memberId, ApplicationContext.Current.Services.ContentService, MembershipProviderExtensions.GetMembersMembershipProvider(), //TODO: This should really be targeting a specific provider by name!! Roles.Provider)); }
public override bool PerformDelete() { var provider = MembershipProviderExtensions.GetMembersMembershipProvider(); var u = provider.GetUser(Alias, false); if (u == null) { return(false); } provider.DeleteUser(u.UserName, true); return(true); }
/// <summary> /// Validation to Check if Member with email Exists /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void EmailExistsCheck(object sender, ServerValidateEventArgs e) { var provider = MembershipProviderExtensions.GetMembersMembershipProvider(); if (Email.Text != "" && Member.GetMemberFromEmail(Email.Text.ToLower()) != null && provider.RequiresUniqueEmail) { e.IsValid = false; } else { e.IsValid = true; } }
public override bool PerformSave() { var nameAndMail = Alias.Split("|".ToCharArray()); var name = nameAndMail[0]; var email = nameAndMail.Length > 0 ? nameAndMail[1] : ""; var password = nameAndMail.Length > 1 ? nameAndMail[2] : ""; var loginName = nameAndMail.Length > 2 ? nameAndMail[3] : ""; var provider = MembershipProviderExtensions.GetMembersMembershipProvider(); if (provider.IsUmbracoMembershipProvider() && TypeID != -1) { var dt = new MemberType(TypeID); var castedProvider = (UmbracoMembershipProviderBase)provider; MembershipCreateStatus status; //First create with the membership provider //TODO: We are not supporting q/a - passing in empty here var created = castedProvider.CreateUser(dt.Alias, loginName.Replace(" ", "").ToLower(), //dunno why we're doing this but that's how it has been so i'll leave it i guess password, email, "", "", true, Guid.NewGuid(), out status); if (status != MembershipCreateStatus.Success) { throw new Exception("Error creating Member: " + status); } //update the name var member = Member.GetMemberFromLoginName(created.UserName); member.Text = name; member.Save(); var e = new NewMemberUIEventArgs(); this.OnNewMember(e, password, member); _returnUrl = "members/editMember.aspx?id=" + member.Id.ToString(CultureInfo.InvariantCulture); } else { MembershipCreateStatus mc; provider.CreateUser(name, password, email, "empty", "empty", true, null, out mc); if (mc != MembershipCreateStatus.Success) { throw new Exception("Error creating Member: " + mc); } _returnUrl = "members/editMember.aspx?id=" + HttpUtility.UrlEncode(name); } return(true); }
protected override void CreateRootNode(ref XmlTreeNode rootNode) { var provider = MembershipProviderExtensions.GetMembersMembershipProvider(); // only show member types if we're using umbraco members on the website if (provider.IsUmbracoMembershipProvider()) { rootNode.NodeType = "init" + TreeAlias; rootNode.NodeID = "init"; } else { rootNode = null; } }
/// <summary> /// Returns the currently configured membership scenario for members in umbraco /// </summary> /// <value></value> internal static MembershipScenario GetMembershipScenario(this IMemberService memberService) { if (_scenario.HasValue == false) { var provider = MembershipProviderExtensions.GetMembersMembershipProvider(); if (provider.IsUmbracoMembershipProvider()) { return(MembershipScenario.NativeUmbraco); } var memberType = Current.Services.MemberTypeService.Get(Constants.Conventions.MemberTypes.DefaultAlias); return(memberType != null ? MembershipScenario.CustomProviderWithUmbracoLink : MembershipScenario.StandaloneCustomProvider); } return(_scenario.Value); }
protected void Page_Load(object sender, System.EventArgs e) { var provider = MembershipProviderExtensions.GetMembersMembershipProvider(); sbmt.Text = ui.Text("create"); if (provider.IsUmbracoMembershipProvider()) { nameLiteral.Text = ui.Text("name"); memberChooser.Attributes.Add("style", "padding-top: 10px"); foreach (var dt in MemberType.GetAll) { ListItem li = new ListItem(); li.Text = dt.Text; li.Value = dt.Id.ToString(); nodeType.Items.Add(li); } } else { nameLiteral.Text = ui.Text("login"); memberChooser.Visible = false; } string[] pwRules = { provider.MinRequiredPasswordLength.ToString(CultureInfo.InvariantCulture), provider.MinRequiredNonAlphanumericCharacters.ToString(CultureInfo.InvariantCulture) }; PasswordRules.Text = PasswordRules.Text = ui.Text( "errorHandling", "", pwRules, UmbracoEnsuredPage.CurrentUser); if (!IsPostBack) { passwordRequired.ErrorMessage = ui.Text("errorHandling", "errorMandatoryWithoutTab", ui.Text("password"), BasePages.UmbracoEnsuredPage.CurrentUser); nameRequired.ErrorMessage = ui.Text("errorHandling", "errorMandatoryWithoutTab", nameLiteral.Text, BasePages.UmbracoEnsuredPage.CurrentUser); emailRequired.ErrorMessage = ui.Text("errorHandling", "errorMandatoryWithoutTab", "E-mail", BasePages.UmbracoEnsuredPage.CurrentUser); loginRequired.ErrorMessage = ui.Text("errorHandling", "errorMandatoryWithoutTab", "Login Name", BasePages.UmbracoEnsuredPage.CurrentUser); loginExistsCheck.ErrorMessage = ui.Text("errorHandling", "errorExistsWithoutTab", "Login Name", BasePages.UmbracoEnsuredPage.CurrentUser); emailExistsCheck.ErrorMessage = ui.Text("errorHandling", "errorExistsWithoutTab", "E-mail", BasePages.UmbracoEnsuredPage.CurrentUser); memberTypeRequired.ErrorMessage = ui.Text("errorHandling", "errorMandatoryWithoutTab", "Member Type", BasePages.UmbracoEnsuredPage.CurrentUser); Password.Text = Membership.GeneratePassword(provider.MinRequiredPasswordLength, provider.MinRequiredNonAlphanumericCharacters); } }
void Member_New(Member sender, NewEventArgs e) { //This is a bit of a hack to ensure that the member is approved when created since many people will be using // this old api to create members on the front-end and they need to be approved - which is based on whether or not // the Umbraco membership provider is configured. var provider = MembershipProviderExtensions.GetMembersMembershipProvider() as UmbracoMembershipProvider; if (provider != null) { var approvedField = provider.ApprovedPropertyTypeAlias; var property = sender.getProperty(approvedField); if (property != null) { property.Value = 1; sender.Save(); } } }
public void UnlockByKey(Guid key) { var membershipProvider = MembershipProviderExtensions.GetMembersMembershipProvider(); var member = membershipProvider.GetUser(key, false); // if they were locked but now they are trying to be unlocked if (member != null && member.IsLockedOut) { try { var result = membershipProvider.UnlockUser(member.UserName); if (result == false) { // it wasn't successful - but it won't really tell us why. ModelState.AddModelError("", "Could not unlock the user"); } } catch (Exception ex) { ModelState.AddModelError("", ex); } } }
public void bindMember(object sender, RepeaterItemEventArgs e) { var provider = MembershipProviderExtensions.GetMembersMembershipProvider(); if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { if (provider.IsUmbracoMembershipProvider()) { 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 { var mem = (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; } } }
protected void protect_Click(object sender, CommandEventArgs e) { if (string.IsNullOrEmpty(errorPagePicker.Value) || errorPagePicker.Value == "-1") { cv_errorPage.IsValid = false; } if (string.IsNullOrEmpty(loginPagePicker.Value) || loginPagePicker.Value == "-1") { cv_loginPage.IsValid = false; } //reset SimpleLoginNameValidator.IsValid = true; var provider = MembershipProviderExtensions.GetMembersMembershipProvider(); if (Page.IsValid) { int pageId = int.Parse(helper.Request("nodeId")); if (e.CommandName == "simple") { var memberLogin = simpleLogin.Visible ? simpleLogin.Text : SimpleLoginLabel.Text; var member = provider.GetUser(memberLogin, false); 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 (provider.IsUmbracoMembershipProvider() == false) { member = provider.CreateUser(memberLogin, simplePassword.Text, tempEmail); } else { //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) { MemberType.MakeNew(BusinessLogic.User.GetUser(0), Constants.Conventions.MemberTypes.SystemDefaultProtectType); } var castedProvider = provider.AsUmbracoMembershipProvider(); MembershipCreateStatus status; member = castedProvider.CreateUser(Constants.Conventions.MemberTypes.SystemDefaultProtectType, memberLogin, simplePassword.Text, tempEmail, null, null, true, null, out status); if (status != MembershipCreateStatus.Success) { SimpleLoginNameValidator.IsValid = false; SimpleLoginNameValidator.ErrorMessage = "Could not create user: "******"Could not create user: "******"__umbracoRole_" + member.UserName; if (Roles.RoleExists(simpleRoleName) == false) { Roles.CreateRole(simpleRoleName); } if (Roles.IsUserInRole(member.UserName, simpleRoleName) == false) { Roles.AddUserToRole(member.UserName, simpleRoleName); } Access.ProtectPage(true, pageId, int.Parse(loginPagePicker.Value), int.Parse(errorPagePicker.Value)); Access.AddMembershipRoleToDocument(pageId, simpleRoleName); Access.AddMembershipUserToDocument(pageId, member.UserName); } else if (e.CommandName == "advanced") { Access.ProtectPage(false, pageId, int.Parse(loginPagePicker.Value), int.Parse(errorPagePicker.Value)); foreach (ListItem li in _memberGroups.Items) { if (("," + _memberGroups.Value + ",").IndexOf("," + li.Value + ",", StringComparison.Ordinal) > -1) { Access.AddMembershipRoleToDocument(pageId, li.Value); } else { Access.RemoveMembershipRoleFromDocument(pageId, li.Value); } } } feedback.Text = ui.Text("publicAccess", "paIsProtected", new cms.businesslogic.CMSNode(pageId).Text) + "</p><p><a href='#' onclick='" + ClientTools.Scripts.CloseModalWindow() + "'>" + ui.Text("closeThisWindow") + "</a>"; p_buttons.Visible = false; pane_advanced.Visible = false; pane_simple.Visible = false; var content = ApplicationContext.Current.Services.ContentService.GetById(pageId); //reloads the current node in the tree ClientTools.SyncTree(content.Path, true); //reloads the current node's children in the tree ClientTools.ReloadActionNode(false, true); feedback.type = global::umbraco.uicontrols.Feedback.feedbacktype.success; } }
/// <summary> /// Renders the specified tree item. /// </summary> /// <param name="Tree">The tree.</param> public override void Render(ref XmlDocument Tree) { var provider = MembershipProviderExtensions.GetMembersMembershipProvider(); string letter = ""; string ContentItemParent = ""; if (HttpContext.Current.Request.QueryString.ToString().IndexOf("letter") >= 0) { letter = HttpContext.Current.Request.QueryString.Get("letter"); } if (HttpContext.Current.Request.QueryString.ToString().IndexOf("ContentItemParent") >= 0) { ContentItemParent = HttpContext.Current.Request.QueryString.Get("ContentItemParent"); } // letter = ; XmlNode root = Tree.DocumentElement; if (letter != "") { if (ContentItemParent != "") // show contentitems owned by the specific member! { CMSNode c = new CMSNode(int.Parse(ContentItemParent)); var childs = c.ChildrenOfAllObjectTypes; foreach (CMSNode cn in childs) { XmlElement treeElement = Tree.CreateElement("tree"); treeElement.SetAttribute("menu", "D,L"); treeElement.SetAttribute("nodeID", cn.Id.ToString()); treeElement.SetAttribute("text", cn.Text); // treeElement.SetAttribute("action", "javascript:openMember(" + m.Id.ToString() + ");"); treeElement.SetAttribute("action", "javascript:openContentItem(" + cn.Id + ");"); if (!cn.HasChildren) { treeElement.SetAttribute("src", ""); } else { treeElement.SetAttribute("src", "tree.aspx?letter=" + letter + "&app=" + m_app + "&treeType=" + HttpContext.Current.Request.QueryString["treeType"] + "&ContentItemParent=" + cn.Id + "&rnd=" + Guid.NewGuid()); } treeElement.SetAttribute("icon", "doc.gif"); treeElement.SetAttribute("openIcon", "doc.gif"); treeElement.SetAttribute("nodeType", "contentItem"); treeElement.SetAttribute("hasChildren", "true"); root.AppendChild(treeElement); } } else // list all members with selected first character. { //if letters equals Others show members that not starts with a through z if (letter.Equals("Others")) { foreach (Member m in Member.getAllOtherMembers()) { XmlElement treeElement = Tree.CreateElement("tree"); treeElement.SetAttribute("nodeID", m.LoginName); treeElement.SetAttribute("text", m.Text); treeElement.SetAttribute("action", "javascript:openMember('" + m.Id + "');"); treeElement.SetAttribute("menu", "D"); treeElement.SetAttribute("icon", string.IsNullOrEmpty(m.ContentType.IconUrl) ? "member.gif" : m.ContentType.IconUrl); treeElement.SetAttribute("openIcon", string.IsNullOrEmpty(m.ContentType.IconUrl) ? "member.gif" : m.ContentType.IconUrl); treeElement.SetAttribute("nodeType", "member"); treeElement.SetAttribute("hasChildren", "true"); root.AppendChild(treeElement); } } else { if (provider.IsUmbracoMembershipProvider()) { foreach (Member m in Member.getMemberFromFirstLetter(letter.ToCharArray()[0])) { XmlElement treeElement = Tree.CreateElement("tree"); treeElement.SetAttribute("nodeID", m.LoginName); treeElement.SetAttribute("text", m.Text); treeElement.SetAttribute("action", "javascript:openMember('" + m.Id + "');"); treeElement.SetAttribute("menu", "D"); treeElement.SetAttribute("icon", string.IsNullOrEmpty(m.ContentType.IconUrl) ? "member.gif" : m.ContentType.IconUrl); treeElement.SetAttribute("openIcon", string.IsNullOrEmpty(m.ContentType.IconUrl) ? "member.gif" : m.ContentType.IconUrl); treeElement.SetAttribute("nodeType", "member"); treeElement.SetAttribute("hasChildren", "true"); root.AppendChild(treeElement); } } else { int total; foreach (MembershipUser u in provider.FindUsersByName(letter + "%", 0, 9999, out total)) { XmlElement treeElement = Tree.CreateElement("tree"); treeElement.SetAttribute("nodeID", u.UserName); treeElement.SetAttribute("text", u.UserName); treeElement.SetAttribute("action", "javascript:openMember('" + HttpContext.Current.Server.UrlEncode(u.UserName) + "');"); treeElement.SetAttribute("menu", "D"); treeElement.SetAttribute("icon", "member.gif"); treeElement.SetAttribute("openIcon", "member.gif"); treeElement.SetAttribute("nodeType", "member"); treeElement.SetAttribute("hasChildren", "true"); root.AppendChild(treeElement); } } } } } else { for (int i = 97; i < 123; i++) { XmlElement treeElement = Tree.CreateElement("tree"); treeElement.SetAttribute("menu", ""); treeElement.SetAttribute("nodeID", i.ToString()); treeElement.SetAttribute("text", ((char)i).ToString()); treeElement.SetAttribute("action", "javascript:viewMembers('" + ((char)i).ToString() + "');"); treeElement.SetAttribute("src", ""); treeElement.SetAttribute("icon", FolderIcon); treeElement.SetAttribute("openIcon", FolderIcon); treeElement.SetAttribute("nodeType", "member"); treeElement.SetAttribute("hasChildren", "true"); treeElement.SetAttribute("src", "tree.aspx?letter=" + ((char)i) + "&app=" + m_app + "&treeType=" + HttpContext.Current.Request.QueryString["treeType"] + "&rnd=" + Guid.NewGuid()); root.AppendChild(treeElement); } //Add folder named "Others", only supported by umbraco if (provider.IsUmbracoMembershipProvider()) { XmlElement treeElementOther = Tree.CreateElement("tree"); treeElementOther.SetAttribute("menu", ""); treeElementOther.SetAttribute("nodeID", "Others"); treeElementOther.SetAttribute("text", "Others"); treeElementOther.SetAttribute("action", "javascript:viewMembers('#');"); treeElementOther.SetAttribute("src", ""); treeElementOther.SetAttribute("icon", FolderIcon); treeElementOther.SetAttribute("openIcon", FolderIcon); treeElementOther.SetAttribute("nodeType", "member"); treeElementOther.SetAttribute("hasChildren", "true"); treeElementOther.SetAttribute("src", "tree.aspx?letter=Others&app=" + m_app + "&treeType=" + HttpContext.Current.Request.QueryString["treeType"] + "&rnd=" + Guid.NewGuid()); root.AppendChild(treeElementOther); } // Search XmlElement treeElementSearch = Tree.CreateElement("tree"); treeElementSearch.SetAttribute("menu", ""); treeElementSearch.SetAttribute("nodeID", "Search"); treeElementSearch.SetAttribute("text", ui.Text("search")); treeElementSearch.SetAttribute("action", "javascript:searchMembers();"); treeElementSearch.SetAttribute("src", ""); treeElementSearch.SetAttribute("icon", FolderIcon); treeElementSearch.SetAttribute("openIcon", FolderIcon); treeElementSearch.SetAttribute("nodeType", "member"); root.AppendChild(treeElementSearch); } }
protected void ButtonSearch_Click(object sender, EventArgs e) { resultsPane.Visible = true; var provider = MembershipProviderExtensions.GetMembersMembershipProvider(); if (provider.IsUmbracoMembershipProvider()) { var query = searchQuery.Text.ToLower(); var internalSearcher = UmbracoContext.Current.InternalMemberSearchProvider; if (String.IsNullOrEmpty(query) == false) { var criteria = internalSearcher.CreateSearchCriteria("member", BooleanOperation.Or); var fields = new[] { "id", "__nodeName", "email" }; var term = new[] { query.ToLower().Escape() }; var operation = criteria.GroupedOr(fields, term).Compile(); var results = internalSearcher.Search(operation) .Select(x => new MemberSearchResult { Id = x["id"], Name = x["nodeName"], Email = x["email"], LoginName = x["loginName"] }); rp_members.DataSource = results; rp_members.DataBind(); } else { resultsPane.Visible = false; } } else { IEnumerable <MemberSearchResult> results; if (searchQuery.Text.Contains("@")) { results = from MembershipUser x in provider.FindUsersByEmail(searchQuery.Text) select new MemberSearchResult() { Id = x.UserName, Email = x.Email, LoginName = x.UserName, Name = x.UserName }; } else { results = from MembershipUser x in provider.FindUsersByName(searchQuery.Text + "%") select new MemberSearchResult() { Id = x.UserName, Email = x.Email, LoginName = x.UserName, Name = x.UserName }; } rp_members.DataSource = results; rp_members.DataBind(); } }