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);
        }
Ejemplo n.º 2
0
    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");
    }
Ejemplo n.º 3
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        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;
            }
        }
Ejemplo n.º 6
0
        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;
            }
        }
Ejemplo n.º 7
0
        /// <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);
        }