public bool Execute(string packageName, System.Xml.XmlNode xmlData) { var ret = true; try { var ms = ApplicationContext.Current.Services.MediaService; var attachmentsFolder = ms.CreateMedia("OrderItemAttachments", -1, "Folder"); ms.Save(attachmentsFolder); var mga = MemberGroup.MakeNew("Administrator", umbraco.BusinessLogic.User.GetUser(0)); var mgv = MemberGroup.MakeNew("Viewer", umbraco.BusinessLogic.User.GetUser(0)); MemberType.MakeNew(umbraco.BusinessLogic.User.GetUser(0), "Standard"); var cs = ApplicationContext.Current.Services.ContentService; var uh = new Umbraco.Web.UmbracoHelper(Umbraco.Web.UmbracoContext.Current); var rootContent = cs.GetByLevel(1).First(); cs.PublishWithChildren(rootContent); var loginPage = uh.TypedContentAtXPath("//ChalmersILLLoginPage").First(); Access.ProtectPage(false, rootContent.Id, loginPage.Id, loginPage.Id); Access.AddMembershipRoleToDocument(rootContent.Id, "Administrator"); Access.AddMembershipRoleToDocument(rootContent.Id, "Viewer"); umbraco.uQuery.SqlHelper.ExecuteNonQuery( string.Format("INSERT INTO umbracoRelationType ([dual], parentObjectType, childObjectType, name, alias) VALUES ({0}, '{1}', '{2}', '{3}', '{4}')", 1, "39EB0F98-B348-42A1-8662-E7EB18487560", "C66BA18E-EAF3-4CFF-8A22-41B16D66A972", "Member Locked", "memberLocked")); } catch (Exception e) { LogHelper.Error <ChillinInitialConfiguration>("Error in ChillinInitialConfiguration.Execute: ", e); ret = false; } return(ret); }
private void SetupClientArea(int clientAreaId, int loginPageId, int errorPageId) { // Create Type MemberType newType = MemberType.MakeNew(getUser(), "Client"); newType.Save(); // Create Groups MemberGroup newGroup1 = MemberGroup.MakeNew("Client", getUser()); MemberGroup newGroup2 = MemberGroup.MakeNew("Client1", getUser()); MemberGroup newGroup3 = MemberGroup.MakeNew("Client2", getUser()); newGroup1.Save(); newGroup3.Save(); newGroup3.Save(); // Create Members CreateMember("client1.user1", new string[] { "Client", "Client1" }); CreateMember("client1.user2", new string[] { "Client", "Client1" }); CreateMember("client2.user1", new string[] { "Client", "Client2" }); MemberGroup clientGroup = MemberGroup.GetByName("Client"); MemberGroup client1Group = MemberGroup.GetByName("Client1"); MemberGroup client2Group = MemberGroup.GetByName("Client2"); Node clientArea = new Node(Convert.ToInt32(clientAreaId)); Access.ProtectPage(false, clientArea.Id, Convert.ToInt32(loginPageId), Convert.ToInt32(errorPageId)); foreach (Node childNode in clientArea.Children) { Access.ProtectPage(false, childNode.Id, Convert.ToInt32(loginPageId), Convert.ToInt32(errorPageId)); } Access.AddMembershipRoleToDocument(clientArea.Id, "Client"); Access.AddMembershipRoleToDocument(clientArea.Children[0].Id, "Client1"); Access.AddMembershipRoleToDocument(clientArea.Children[1].Id, "Client2"); }
public void GenerateConfigFile() { var accessXmlFile = HttpContext.Current.Server.MapPath("~/App_Data/umbracoAccess.config"); if (System.IO.File.Exists(accessXmlFile)) { // Clear the old access.config. System.IO.File.Delete(HttpContext.Current.Server.MapPath("~/App_Data/access.config")); var protectedPages = XDocument.Load(accessXmlFile).XPathSelectElements("/access/page"); foreach (var protectedPage in protectedPages) { try { var page = GetPageByUrl(protectedPage.Attribute("path").Value); var loginPage = GetPageByUrl(protectedPage.Attribute("loginPath").Value); var errorPage = GetPageByUrl(protectedPage.Attribute("errorPath").Value); var groups = protectedPage.Attribute("groups").Value.Split(';'); Access.ProtectPage(false, page.Id, loginPage.Id, errorPage.Id); foreach (var group in groups) { Access.AddMembershipRoleToDocument(page.Id, group); } } catch (Exception ex) { var message = string.Format("There was an error during access.config generation. Path: '{0}' LoginPath: '{1}' ErrorPath: '{2}'", protectedPage.Attribute("path").Value, protectedPage.Attribute("loginPath").Value, protectedPage.Attribute("errorPath").Value); logger.Error(message, ex); } } } }
/// <summary> /// The execute. /// </summary> /// <returns> /// The <see cref="IContent"/>. /// </returns> public IContent Execute() { this.AddMerchelloData(); LogHelper.Info <BazaarDataInstaller>("Adding Example Merchello Data"); LogHelper.Info <BazaarDataInstaller>("Installing store root node"); var root = _services.ContentService.CreateContent("Store", -1, "BazaarStore"); // Default theme root.SetValue("themePicker", "Sandstone-3"); root.SetValue("customerMemberType", "MerchelloCustomer"); root.SetValue("storeTitle", "Merchello Bazaar"); root.SetValue("tagLine", "Get Shopping"); root.SetValue("featuredProducts", _collections["featuredProducts"].ToString()); _services.ContentService.SaveAndPublishWithStatus(root); LogHelper.Info <BazaarDataInstaller>("Adding example category page"); var pg = _services.ContentService.CreateContent("Specialized Soap", root.Id, "BazaarProductCollection"); pg.SetValue("products", _collections["specializedSoap"].ToString()); _services.ContentService.SaveAndPublishWithStatus(pg); var gen = _services.ContentService.CreateContent("Generic", root.Id, "BazaarProductCollection"); gen.SetValue("products", _collections["generic"].ToString()); _services.ContentService.SaveAndPublishWithStatus(gen); LogHelper.Info <BazaarDataInstaller>("Adding example eCommerce workflow pages"); var basket = _services.ContentService.CreateContent("Basket", root.Id, "BazaarBasket"); _services.ContentService.SaveAndPublishWithStatus(basket); var checkout = _services.ContentService.CreateContent("Checkout", root.Id, "BazaarCheckout"); _services.ContentService.SaveAndPublishWithStatus(checkout); var checkoutConfirm = _services.ContentService.CreateContent("Confirm Sale", checkout.Id, "BazaarCheckoutConfirm"); _services.ContentService.SaveAndPublishWithStatus(checkoutConfirm); var receipt = _services.ContentService.CreateContent("Receipt", checkout.Id, "BazaarReceipt"); _services.ContentService.SaveAndPublishWithStatus(receipt); var registration = _services.ContentService.CreateContent("Registration / Login", root.Id, "BazaarRegistration"); _services.ContentService.SaveAndPublishWithStatus(registration); var account = _services.ContentService.CreateContent("Account", root.Id, "BazaarAccount"); _services.ContentService.SaveAndPublishWithStatus(account); var wishList = _services.ContentService.CreateContent("Wish List", account.Id, "BazaarWishList"); _services.ContentService.SaveAndPublishWithStatus(wishList); var purchaseHistory = _services.ContentService.CreateContent("Purchase History", account.Id, "BazaarAccountHistory"); _services.ContentService.SaveAndPublishWithStatus(purchaseHistory); // TODO look for a V6 method // This uses the old API Access.ProtectPage(false, account.Id, registration.Id, registration.Id); Access.AddMembershipRoleToDocument(account.Id, "MerchelloCustomers"); // TODO figure out why the index does not build on load ExamineManager.Instance.IndexProviderCollection["MerchelloProductIndexer"].RebuildIndex(); return(root); }
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; } }
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; } }
/// <summary> /// The execute. /// </summary> /// <returns> /// The <see cref="IContent"/>. /// </returns> public IContent Execute() { var product = this.AddMerchelloData(); LogHelper.Info <BazaarDataInstaller>("Adding Example Merchello Data"); LogHelper.Info <BazaarDataInstaller>("Installing store root node"); var root = _services.ContentService.CreateContent("Store", -1, "BazaarStore"); // Default theme root.SetValue("themePicker", "Flatly"); root.SetValue("customerMemberType", "MerchelloCustomer"); root.SetValue("storeTitle", "Merchello Bazaar"); root.SetValue("tagLine", "Get Shopping"); _services.ContentService.SaveAndPublishWithStatus(root); LogHelper.Info <BazaarDataInstaller>("Adding Example ProductGroup and Products"); var pg = _services.ContentService.CreateContent("Soap", root.Id, "BazaarProductGroup"); pg.SetValue("image", "{ 'focalPoint' : { 'left': 0.5, 'top': 0.5 }, 'src': '/media/1005/soapcategory.jpg', 'crops': [] }"); pg.SetValue("brief", "Avocado Moisturizing Bar is great for dry skin."); _services.ContentService.SaveAndPublishWithStatus(pg); var prod = _services.ContentService.CreateContent("Bar of Soap", pg.Id, "BazaarProduct"); prod.SetValue("merchelloProduct", product.Key.ToString()); prod.SetValue("description", "<p><span>Made with real avocados, this Avocado Moisturizing Bar is great for dry skin. Layers of color are achieved by using oxide colorants. Scented with Wasabi Fragrance Oil, this soap smells slightly spicy, making it a great choice for both men and women. To ensure this soap does not overheat, place in the freezer to keep cool and prevent gel phase.</span></p>"); prod.SetValue("brief", "Avocado Moisturizing Bar is great for dry skin."); prod.SetValue("image", "{ 'focalPoint': { 'left': 0.5, 'top': 0.5 }, 'src': '/media/1009/avocadobars.jpg', 'crops': [] }"); _services.ContentService.SaveAndPublishWithStatus(prod); LogHelper.Info <BazaarDataInstaller>("Adding example eCommerce workflow pages"); var basket = _services.ContentService.CreateContent("Basket", root.Id, "BazaarBasket"); _services.ContentService.SaveAndPublishWithStatus(basket); var checkout = _services.ContentService.CreateContent("Checkout", root.Id, "BazaarCheckout"); _services.ContentService.SaveAndPublishWithStatus(checkout); var checkoutConfirm = _services.ContentService.CreateContent("Confirm Sale", checkout.Id, "BazaarCheckoutConfirm"); _services.ContentService.SaveAndPublishWithStatus(checkoutConfirm); var receipt = _services.ContentService.CreateContent("Receipt", checkout.Id, "BazaarReceipt"); _services.ContentService.SaveAndPublishWithStatus(receipt); var registration = _services.ContentService.CreateContent("Registration / Login", root.Id, "BazaarRegistration"); _services.ContentService.SaveAndPublishWithStatus(registration); var account = _services.ContentService.CreateContent("Account", root.Id, "BazaarAccount"); _services.ContentService.SaveAndPublishWithStatus(account); var wishList = _services.ContentService.CreateContent("Wish List", account.Id, "BazaarWishList"); _services.ContentService.SaveAndPublishWithStatus(wishList); var purchaseHistory = _services.ContentService.CreateContent("Purchase History", account.Id, "BazaarAccountHistory"); _services.ContentService.SaveAndPublishWithStatus(purchaseHistory); // TODO look for a V6 method // This uses the old API Access.ProtectPage(false, account.Id, registration.Id, registration.Id); Access.AddMembershipRoleToDocument(account.Id, "MerchelloCustomers"); return(root); }