Esempio n. 1
0
        public override void Inject(Kooboo.Web.Mvc.Menu.MenuItem menu, System.Web.Mvc.ControllerContext controllerContext)
        {
            // 只有在未选中某个实例时才显示全局菜单
            if (CommerceInstance.Current != null)
            {
                return;
            }

            menu.Items.Add(new CommerceMenuItem
            {
                Name = "Instances",
                Text = "Instances",
                Controller = "Instance",
                Action = "Index",
                Initializer = new GlobalMenuItemInitializer()
            });

            menu.Items.Add(new CommerceMenuItem
            {
                Name = "Add-ins",
                Text = "Add-ins",
                Controller = "AddInManagement",
                Action = "Index",
                Initializer = new GlobalMenuItemInitializer()
            });
        }
Esempio n. 2
0
        protected override string RenderInput(Kooboo.CMS.Form.IColumn column)
        {
            var sb = new StringBuilder();
            var input = string.Format("<input id=\"{0}\" name=\"{0}\" readonly=\"readonly\" type=\"{1}\" value=\"@(Model.{0} ==null ? \"\" : Model.{0}.ToLocalTime().ToString())\" {2}/>", column.Name, this.Type, ValidationExtensions.GetUnobtrusiveValidationAttributeString(column));

            sb.Append(@"@if ((bool?)ViewContext.Controller.ViewData[""WebResourceUrl.Rendered""] != true)
            {
                ViewContext.Controller.ViewData[""WebResourceUrl.Rendered""] = true;");
            const string script = @"
                <script src=""@Kooboo.CMS.Toolkit.Controls.ControlsScript.GetWebResourceUrl()"" type=""text/javascript"" ></script>";
            const string css = @"
                <link href=""@Kooboo.CMS.Toolkit.Controls.ControlsScript.GetDatetimeResourceUrl()"" type=""text/css"" rel=""stylesheet"" />";
            sb.Append(css);
            sb.Append(script);
            sb.Append("\t\t\t}");
            var func = String.Format(@"
                <script type='text/javascript'>
                    $(function() {{
                        $('input[name=""{0}""]').datetimepicker({{
                            showSecond: true,
                            timeFormat: 'HH:mm:ss'
                        }});
                    }});
                </script>", column.Name);
            sb.Append(func);
            sb.Append(input);
            return sb.ToString();
        }
 protected override bool GetIsVisible(Kooboo.Web.Mvc.Menu.MenuItem menuItem, System.Web.Mvc.ControllerContext controllerContext)
 {
     if (string.IsNullOrEmpty(controllerContext.RequestContext.GetRequestValue("siteName")))
     {
         return false;
     }
     return base.GetIsVisible(menuItem, controllerContext);
 }
Esempio n. 4
0
 protected override bool GetIsVisible(Kooboo.Web.Mvc.Menu.MenuItem menuItem, System.Web.Mvc.ControllerContext controllerContext)
 {
     if (Site.Current != null)
     {
         return Site.Current.ShowSitemap.HasValue ? Site.Current.ShowSitemap.Value : true;
     }
     return false;
 }
Esempio n. 5
0
        //#region .ctor
        //TextFolderManager _textFolderManager;
        //public NavigationService(TextFolderManager textFolderManager)
        //{
        //    _textFolderManager = textFolderManager;
        //}
        //#endregion

        #region GetChildren

        private static cmisObjectInFolderType ToPathedCmisObject(Kooboo.CMS.Content.Models.TextFolder textFolder)
        {
            cmisObjectInFolderType pathedCmisObject = new cmisObjectInFolderType();
            pathedCmisObject.pathSegment = textFolder.FullName;

            var cmisObject = ToCmisObject(textFolder);
            pathedCmisObject.@object = cmisObject;
            return pathedCmisObject;
        }
Esempio n. 6
0
        public static void RequestAuthentication(Kooboo.CMS.Membership.Models.Membership membership, string connectName, HttpContextBase httpContext, string returnUrl)
        {

            var client = GetAuthClient(membership, connectName);

            OpenAuthSecurityManager manager = new OpenAuthSecurityManager(httpContext, client.GetOpenAuthClient(), new MembershipOpenAuthDataProvider());
            manager.RequestAuthentication(returnUrl);
            //client.RequestAuthentication(httpContext, new Uri(returnUrl));
        }
        public override Kooboo.Web.Mvc.Menu.MenuItem Initialize(Kooboo.Web.Mvc.Menu.MenuItem menuItem, System.Web.Mvc.ControllerContext controllerContext)
        {
            var site = Site.Current;
            if (site != null)
            {
                menuItem.RouteValues["repositoryName"] = site.AsActual().Repository;
            }

            return base.Initialize(menuItem, controllerContext);
        }
Esempio n. 8
0
 void IMenuInjection.Inject(Kooboo.Web.Mvc.Menu.Menu menu, System.Web.Mvc.ControllerContext controllerContext)
 {
     if (menu.Name == "AreasMenu" || menu.Name == "Sites")
     {
         var commerce = menu.Items.FirstOrDefault(it => it.Name == "Commerce");
         if (commerce != null)
         {
             Inject(commerce, controllerContext);
             PrepareItems(commerce.Items, new CommerceMenuItemInitializer());
         }
     }
 }
 public void Inject(Kooboo.Web.Mvc.Menu.Menu menu, System.Web.Mvc.ControllerContext controllerContext)
 {
     if (menu.Name == "AreasMenu" || menu.Name == "Sites")
     {
         menu.Items.Add(new MenuItem
         {
             Name = "Commerce",
             Text = "Commerce",
             Initializer = new AuthorizeMenuItemInitializer(),
             RouteValues = new System.Web.Routing.RouteValueDictionary()
         });
     }
 }
Esempio n. 10
0
        public static NameValueCollection ApplySubmissionSettings(SubmissionSetting submissionSetting, NameValueCollection defaultValues, Kooboo.CMS.Common.Formula.IValueProvider valueProvider)
        {
            IFormulaParser formulaParser = Kooboo.CMS.Common.Runtime.EngineContext.Current.Resolve<IFormulaParser>();

            if (submissionSetting.Settings != null)
            {
                foreach (var item in submissionSetting.Settings)
                {
                    defaultValues[item.Key] = formulaParser.Populate(item.Value, valueProvider);
                }
            }
            return defaultValues;
        }
Esempio n. 11
0
 public LocalPriceAPI(
     Kooboo.Commerce.Orders.Services.IOrderService orderService,
     Kooboo.Commerce.ShoppingCarts.Services.IShoppingCartService cartService,
     Kooboo.Commerce.Payments.Services.IPaymentMethodService paymentMethodService,
     Kooboo.Commerce.Customers.Services.ICustomerService customerService,
     Kooboo.Commerce.Products.Services.IProductService productService)
 {
     _orderService = orderService;
     _cartService = cartService;
     _paymentMethodService = paymentMethodService;
     _customerService = customerService;
     _productService = productService;
 }
Esempio n. 12
0
        public ActionResult Create(Kooboo.CMS.Membership.Models.Membership membership, string @return)
        {
            JsonResultData data = new JsonResultData(ModelState);
            if (ModelState.IsValid)
            {
                data.RunWithTry((resultData) =>
                {
                    _manager.Add(membership);
                    resultData.RedirectUrl = @return;
                });
            }

            return Json(data);
        }
Esempio n. 13
0
        private static IAuthClient GetAuthClient(Kooboo.CMS.Membership.Models.Membership membership, string connectName)
        {
            var membershipConnect = new MembershipConnect() { Membership = membership, Name = connectName }.AsActual();

            if (membershipConnect == null)
            {
                throw new ArgumentException("Invalid membership connect.");
            }

            var authClient = Kooboo.CMS.Common.Runtime.EngineContext.Current.Resolve<IAuthClient>(membershipConnect.Name.ToLower());
            authClient.MembershipConnect = membershipConnect;

            return authClient;
        }
Esempio n. 14
0
        public string Generate(Kooboo.CMS.Content.Models.Repository repository, Models.DataRuleSetting dataRule, bool inlineEdit)
        {
            if (dataRule.DataRule is DataRuleBase)
            {
                var dataRuleBase = (DataRuleBase)dataRule.DataRule;
                var schema = (dataRuleBase.GetSchema(repository)).AsActual();

                string html = @"
            #foreach($item in $ViewBag.{0})
            #each
            <li{2}>{1}</li>
            #before

            #after

            #between

            #odd

            #even

            #nodata

            #beforeall
            <ul class=""list"">
            #afterall
            </ul>
            #end";
                var titleField = schema.GetSummarizeColumn();
                var editItem = "";
                var linkHtml = string.Format("<a class='title' href='$Url.FrontUrl().PageUrl(\"{1}/detail\",\"%{{UserKey = $item.UserKey}}\")'>$item.{0}</a>", titleField.Name, schema.Name);
                if (inlineEdit)
                {
                    editItem = "  $ViewHelper.Edit($item)";
                    linkHtml = string.Format("<a class='title' href='$Url.FrontUrl().PageUrl(\"{1}/detail\",\"%{{UserKey = $item.UserKey}}\")' $ViewHelper.Edit($item,\"{0}\")>$item.{0}</a>", titleField.Name, schema.Name);
                }

                var snippet = string.Format(html, dataRule.DataName, linkHtml, editItem);
                if (dataRule.DataRule.EnablePaging.Value)
                {
                    snippet += Environment.NewLine + string.Format(@"
            <div class=""pager"">
            $Html.FrontHtml().Pager($ViewBag.{0})
            </div>", dataRule.DataName);
                }
                return snippet;
            }
            return string.Empty;
        }
Esempio n. 15
0
        public MembershipAuthentication(Site site, Kooboo.CMS.Membership.Models.Membership membership, HttpContextBase httpContextBase)
        {
            if (site == null)
            {
                throw new ArgumentNullException("site");
            }
            if (httpContextBase == null)
            {
                throw new ArgumentNullException("httpContextBase");
            }
            this._site = site;
            this._membership = membership;

            this._httpContext = httpContextBase;
        }
Esempio n. 16
0
        public override void Inject(Kooboo.Web.Mvc.Menu.MenuItem menu, System.Web.Mvc.ControllerContext controllerContext)
        {
            if (CommerceInstance.Current == null)
            {
                return;
            }

            menu.Items.Add(Start());
            menu.Items.Add(Catalog());
            menu.Items.Add(Orders());
            menu.Items.Add(BusinessRules());
            menu.Items.Add(Shop());
            menu.Items.Add(Customers());
            menu.Items.Add(System());
        }
Esempio n. 17
0
 public virtual string EncodePassword(Kooboo.CMS.Membership.Models.Membership membership, string pass, string salt)
 {
     HashAlgorithm hashAlgorithm = this.GetHashAlgorithm(membership.HashAlgorithmType);
     if (hashAlgorithm == null)
     {
         return pass;
     }
     else
     {
         byte[] bytes = Encoding.Unicode.GetBytes(pass);
         byte[] src = Convert.FromBase64String(salt);
         byte[] inArray = null;
         if (hashAlgorithm is KeyedHashAlgorithm)
         {
             KeyedHashAlgorithm algorithm2 = (KeyedHashAlgorithm)hashAlgorithm;
             if (algorithm2.Key.Length == src.Length)
             {
                 algorithm2.Key = src;
             }
             else if (algorithm2.Key.Length < src.Length)
             {
                 byte[] dst = new byte[algorithm2.Key.Length];
                 Buffer.BlockCopy(src, 0, dst, 0, dst.Length);
                 algorithm2.Key = dst;
             }
             else
             {
                 int num2;
                 byte[] buffer5 = new byte[algorithm2.Key.Length];
                 for (int i = 0; i < buffer5.Length; i += num2)
                 {
                     num2 = Math.Min(src.Length, buffer5.Length - i);
                     Buffer.BlockCopy(src, 0, buffer5, i, num2);
                 }
                 algorithm2.Key = buffer5;
             }
             inArray = algorithm2.ComputeHash(bytes);
         }
         else
         {
             byte[] buffer6 = new byte[src.Length + bytes.Length];
             Buffer.BlockCopy(src, 0, buffer6, 0, src.Length);
             Buffer.BlockCopy(bytes, 0, buffer6, src.Length, bytes.Length);
             inArray = hashAlgorithm.ComputeHash(buffer6);
         }
         return Convert.ToBase64String(inArray);
     }
 }
Esempio n. 18
0
        protected override string RenderInput(Kooboo.CMS.Form.IColumn column)
        {
            string input = base.RenderInput(column);

            string foldername = "slike";
            column.CustomSettings.TryGetValue("folderName", out foldername);
            string SingleChoice =  "false";
            column.CustomSettings.TryGetValue("SingleChoice", out SingleChoice);

            // <%:Url.Action("Selection", "MediaContent", ViewContext.RequestContext.AllRouteValues())%>
            /*string mediaLibraryUrl = @"<%:Url.Action(""Selection"", ""MediaContent"", new {
                        repositoryName = Kooboo.CMS.Sites.Models.Site.Current.Repository,
                        siteName = Kooboo.CMS.Sites.Models.Site.Current.Name
                    })%>";*/
            string mediaLibraryUrl = @"@Url.Action(""SelectCategories"", ""TextContent"", new {
                        repositoryName = Kooboo.CMS.Sites.Models.Site.Current.Repository,
                        siteName = Kooboo.CMS.Sites.Models.Site.Current.FullName,
                        folderName = ""#folderName#"",
                        SingleChoice = ""#singlechoice#"",
                        TextContentMode = ""true""
                    })";
            mediaLibraryUrl = mediaLibraryUrl.Replace("#folderName#", foldername);
            mediaLibraryUrl = mediaLibraryUrl.Replace("#singlechoice#", SingleChoice);

            input = String.Format(@"
                <div id='textcontentpicker_{0}' class='textcontentpicker category-list clearfix' data-folderName='{2}'>
                    <ul data-bind='sortable: data'>
                        <li class='category-item-data'>
                            <!-- ko if: thumb -->
                            <img data-bind='attr:{{src: thumb}}' />
                            <!-- /ko -->
                            <span class='text left' data-bind='{{text:Text}}'></span>
                            <a class='remove right' data-bind='{{click: $parent.removeItem}}'>@Html.IconImage(""minus small"")</a>
                        </li>
                    </ul>
                    <input type='hidden' id='{0}' name='{0}' data-bind='{{value:postValue}}' value='@(Model.{0} ?? """")'/>
                    <a columnName='{0}' id=""textcontentpicker_btn_{0}""
                        href='{1}' class='action textcontentpickerButton'>@Html.IconImage(""plus small"")</a>
                </div>
                <script>
                $(function(){{
                    textcontentpicker('#textcontentpicker_{0}')
                }})
                </script>
            ", column.Name, mediaLibraryUrl, foldername, column.DefaultValue);
            return input;
        }
Esempio n. 19
0
 public virtual ActionResult Delete(Kooboo.CMS.Membership.Models.Membership[] model, string @return)
 {
     ModelState.Clear();
     var data = new JsonResultData(ModelState);
     data.RunWithTry((resultData) =>
     {
         if (model != null)
         {
             foreach (var item in model)
             {
                 _manager.Delete(item);
             }
             resultData.RedirectUrl = @return;
         }
     });
     return Json(data);
 }
Esempio n. 20
0
 internal static AuthResult VerifyAuthenticationCore(Kooboo.CMS.Membership.Models.Membership membership, HttpContextBase context, string returnUrl)
 {
     IAuthClient client;
     string providerName = OpenAuthSecurityManager.GetProviderName(context);
     if (string.IsNullOrEmpty(providerName))
     {
         return AuthResult.Failed;
     }
     client = GetAuthClient(membership, providerName);
     if (client == null)
     {
         throw new InvalidOperationException("Invalid membership connect.");
     }
     OpenAuthSecurityManager manager = new OpenAuthSecurityManager(context, client.GetOpenAuthClient(), new MembershipOpenAuthDataProvider());
     var result = manager.VerifyAuthentication(returnUrl);
     return new AuthResult(result);
 }
        protected override bool GetIsActive(Kooboo.Web.Mvc.Menu.MenuItem menuItem, System.Web.Mvc.ControllerContext controllerContext)
        {
            var controller = controllerContext.RouteData.Values["controller"] as string;
            var action = controllerContext.RouteData.Values["action"] as string;

            if (!controller.Equals("Rule", StringComparison.OrdinalIgnoreCase))
            {
                return false;
            }

            if (action.Equals("List", StringComparison.OrdinalIgnoreCase))
            {
                var eventName = controllerContext.RequestContext.GetRequestValue("eventName");
                return !String.IsNullOrEmpty(eventName) && eventName.Equals(menuItem.RouteValues["eventName"].ToString(), StringComparison.OrdinalIgnoreCase);
            }

            return false;
        }
Esempio n. 22
0
        protected override string RenderInput(Kooboo.CMS.Form.IColumn column)
        {
            var sb = new StringBuilder();
            sb.AppendFormat("<div id='{0}_Container' class='mediafile'>", column.Name);
            var input = @"<input id=""{0}"" name=""{0}"" type=""{1}"" value=""@(Model.{0} ?? """")"" data-bind=""value: fieldValue""/>";
            const string script = "<script src=\"@Kooboo.CMS.Toolkit.Controls.ControlsScript.GetWebResourceUrl()\" type=\"text/javascript\" ></script>";
            string options = @"{
                allowMultipleFiles: " + AllowMultipleFiles.ToString().ToLower() + @",
                validation: " + Validation + @",
                validationErrorMessage: '" + ValidationErrorMessage + @"',
                value: '@(Model." + column.Name + @")'
                }";
            var ul = @"
            <ul class=""clearfix"" data-bind=""foreach: data"">
                <!-- ko if: isImage -->
                <li class=""img"">
                    <span class=""preview""></span>
                    <a class=""action"" data-bind=""click: $parent.removeItem"">@Html.IconImage(""minus small"")</a>
                    <img data-bind=""attr:{src:Url}"" height=""100"" width=""100"">
                </li>
                <!-- /ko -->
                <!-- ko ifnot: isImage -->
                <li>
                    <span class=""left"" data-bind=""{text:FileName}""></span>
                    <a class=""action right"" data-bind=""click: $parent.removeItem"">@Html.IconImage(""minus small"")</a>
                </li>
                <!-- /ko -->
            </ul>";

            var mediaLibraryUrl = String.Format(@"@Url.Action(""Selection"", ViewContext.RequestContext.AllRouteValues().Merge(""Controller"", ""MediaContent"").Merge(""FolderName"", null){0})""", AllowMultipleFiles ? "" : @".Merge(""SingleChoice"", ""true"")");

            var func = String.Format(@"
                {0}
                <a id='addMedia_{1}' columnName='{1}' href='{2}' class='action add'>@Html.IconImage(""plus small"")</a>
                <script type='text/javascript'>
                    $('#{1}_Container').mediaControl({3});
                </script>
            ", script, column.Name, mediaLibraryUrl, options);
            sb.AppendFormat(input, column.Name, Type, ValidationExtensions.GetUnobtrusiveValidationAttributeString(column));
            sb.Append(ul);
            sb.Append(func);
            sb.Append("</div>");
            return sb.ToString();
        }
Esempio n. 23
0
        public override void Inject(Kooboo.Web.Mvc.Menu.MenuItem menu, System.Web.Mvc.ControllerContext controllerContext)
        {
            if (CommerceInstance.Current == null)
            {
                return;
            }

            var root = new MenuItem
            {
                Text = "Search"
            };

            menu.Items.Add(root);

            root.Items.Add(new SearchMenuItem
            {
                Text = "Indexes",
                Controller = "Indexes"
            });
        }
        public override void Inject(Kooboo.Web.Mvc.Menu.MenuItem menu, System.Web.Mvc.ControllerContext controllerContext)
        {
            if (CommerceInstance.Current == null)
            {
                return;
            }

            var recommendations = new RecommendationMenuItem
            {
                Text = "Recommendations"
            };

            menu.Items.Add(recommendations);

            recommendations.Items.Add(new RecommendationMenuItem
            {
                Text = "Settings",
                Controller = "Config",
                Action = "Behaviors"
            });
        }
Esempio n. 25
0
 private cmisRepositoryInfoType ToRepositoryInfo(Kooboo.CMS.Sites.Models.Site site)
 {
     var repositoryInfo = new cmisRepositoryInfoType()
     {
         repositoryId = site.FullName,
         repositoryName = string.IsNullOrEmpty(site.DisplayName) ? site.Name : site.DisplayName,
         vendorName = "Kooboo",
         repositoryDescription = "",
         productName = "Kooboo CMS",
         productVersion = this.GetType().Assembly.GetName().Version.ToString(),
         rootFolderId = "/",
         latestChangeLogToken = "",
         capabilities = GetRepositoryCapabilities(site),
         aclCapability = null, //todo: Not very clear for acl now.
         cmisVersionSupported = "1.1",
         thinClientURI = null,
         changesIncomplete = false,
         changesOnType = new[] { enumBaseObjectTypeIds.cmisdocument },
         principalAnonymous = null,
         principalAnyone = null
     };
     return repositoryInfo;
 }
Esempio n. 26
0
 public static FolderType IdentifyFolderType(Kooboo.CMS.Content.Models.Repository repository, string folderId)
 {
     if (string.Compare(folderId, RootFolderName, true) == 0)
     {
         return FolderType.Root;
     }
     if (string.Compare(folderId, Content_Folder_Root, true) == 0)
     {
         return FolderType.Content_Folder_Root;
     }
     if (string.Compare(folderId, Media_Folder_Root, true) == 0)
     {
         return FolderType.Media_Folder_Root;
     }
     var folder = Parse(repository, folderId);
     if (folder is TextFolder)
     {
         return FolderType.Content_Folder;
     }
     else
     {
         return FolderType.Media_Folder;
     }
 }
Esempio n. 27
0
 public override bool CanExecute(Kooboo.Commerce.Products.Product product, CommerceInstance instance)
 {
     return product.IsPublished;
 }
Esempio n. 28
0
        public virtual ActionResult RevertTo(string folderName, string schemaName, string uuid, Kooboo.CMS.Content.Versioning.VersionInfo[] model, string @return)
        {
            var data = new JsonResultData(ModelState);
            data.RunWithTry((resultData) =>
            {
                if (model.Length == 1)
                {
                    TextContentManager.RevertTo(Repository, folderName, schemaName, uuid, model[0].Version, User.Identity.Name);
                    resultData.RedirectUrl = @return;
                }

            });
            return Json(data);
        }
Esempio n. 29
0
        public virtual ActionResult Export(Kooboo.CMS.Membership.Models.Membership[] model)
        {
            if (model != null || model.Length > 1)
            {
                string fileName = model.First().Name + ".zip";
                Response.AttachmentHeader(fileName);
                var membership = model.First().AsActual();
                if (membership != null)
                {
                    _provider.Export(membership, Response.OutputStream);
                }

            }
            return null;
        }
Esempio n. 30
0
 public virtual ActionResult Edit(Kooboo.CMS.Membership.Models.Membership model, string @return)
 {
     JsonResultData data = new JsonResultData(ModelState);
     if (ModelState.IsValid)
     {
         data.RunWithTry((resultData) =>
         {
             _manager.Update(model, model);
             resultData.RedirectUrl = @return;
         });
     }
     return Json(data);
 }