public virtual ActionResult AddWidget(long pageId, long widgetId) { var widgetService = ServiceLocator.Current.GetInstance <IWidgetService>(); Page currentPage = pageService.Find(pageId); if (currentPage != null) { var curWidget = widgetService.Find(widgetId); if (curWidget != null && widgetService.IsWidgetEnable(curWidget) && permissionService.IsAllowed((Int32)PageOperations.Update, this.CorePrincipal(), typeof(Page), pageId, IsPageOwner(currentPage), PermissionOperationLevel.Object)) { ICoreWidget coreWidget = MvcApplication.Widgets.FirstOrDefault(wd => wd.Identifier == curWidget.Identifier); if (coreWidget != null && coreWidget is BaseWidget && permissionService.IsAllowed(((BaseWidget)coreWidget).AddToPageOperationCode, this.CorePrincipal(), coreWidget.GetType(), null)) { var widget = PageHelper.AddWidgetToPage(pageId, widgetId, this.CorePrincipal(), null); if (widget != null) { permissionService.SetupDefaultRolePermissions( ResourcePermissionsHelper.GetResourceOperations(coreWidget.GetType()), coreWidget.GetType(), widget.Id); if (currentPage.IsTemplate && widget.Widget.IsPlaceHolder) { IEnumerable <Page> pagesFromTemplate = pageService.GetPagesFromTemplate(currentPage); foreach (var pageFromTemplate in pagesFromTemplate) { var widgetFromTemplate = PageHelper.AddWidgetToPage(pageFromTemplate.Id, widgetId, this.CorePrincipal(), widget.Id); if (widgetFromTemplate != null) { permissionService.SetupDefaultRolePermissions( ResourcePermissionsHelper.GetResourceOperations(coreWidget.GetType()), coreWidget.GetType(), widgetFromTemplate.Id); } } } return(PartialView(MVC.Shared.Views.Widgets.WidgetContentHolder, WidgetHelper.GetWidgetViewModel(widget))); } } return(null); } } return(null); }
public virtual ActionResult Create(PageTemplateViewModel model) { if (ModelState.IsValid) { var pageTemplate = new Page { IsTemplate = true }; pageTemplate.PageLayout = new PageLayout { LayoutTemplate = LayoutHelper.DefaultLayoutTemplate, Page = pageTemplate }; if (this.CorePrincipal() != null) { pageTemplate.User = new User { Id = this.CorePrincipal().PrincipalId }; } pageTemplate = model.MapTo(pageTemplate); if (pageService.Save(pageTemplate)) { permissionService.SetupDefaultRolePermissions( ResourcePermissionsHelper.GetResourceOperations(typeof(PageTemplate)), typeof(PageTemplate), pageTemplate.Id); Success(Translate("Messages.PageTemplateCreated")); return(RedirectToAction(MVC.Admin.PageTemplate.Index())); } } Error(Translate("Messages.ValidationError")); return(View("New", model)); }
public virtual ActionResult SavePageCommonSettings(PageViewModel model) { if (ModelState.IsValid) { var page = new Page(); if (!permissionService.IsAllowed((Int32)PageOperations.AddNewPages, this.CorePrincipal(), typeof(Page), null)) { throw new HttpException((int)HttpStatusCode.NotFound, Translate("Messages.NotFound")); } page.OrderNumber = pageService.GetLastOrderNumber(model.ParentPageId == 0 ? null : model.ParentPageId); if (this.CorePrincipal() != null) { page.User = new User { Id = this.CorePrincipal().PrincipalId } } ; page = model.MapTo(page); if (!model.TemplateId.HasValue) { page.PageLayout = new PageLayout { LayoutTemplate = LayoutHelper.DefaultLayoutTemplate, Page = page }; } if (pageService.Save(page)) { permissionService.SetupDefaultRolePermissions( ResourcePermissionsHelper.GetResourceOperations(typeof(Page)), typeof(Page), page.Id); if (model.ClonedPageId != null) { var sourcePage = pageService.Find((long)model.ClonedPageId); if (permissionService.IsAllowed((Int32)PageOperations.View, this.CorePrincipal(), typeof(Page), sourcePage.Id, IsPageOwner(sourcePage), PermissionOperationLevel.Object)) { PageHelper.ClonePageSettings(sourcePage, page); } } else if (model.TemplateId.HasValue) { var sourceTemplate = pageService.Find((long)model.TemplateId); if (permissionService.IsAllowed((Int32)PageOperations.View, this.CorePrincipal(), typeof(Page), sourceTemplate.Id, IsPageOwner(sourceTemplate), PermissionOperationLevel.Object)) { PageHelper.ClonePageSettingsFromTemplate(sourceTemplate, page, model.WidgetId); } } TempData["Success"] = true; } model = model.MapFrom(page); } else { Error(Translate("Messages.ValidationError")); } return(PartialView(MVC.Pages.Views.PageCreateForm, model)); }