Exemplo n.º 1
0
        public void UpdatePage(string id, Rock.CMS.DTO.Page Page)
        {
            var currentUser = Rock.CMS.UserService.GetCurrentUser();

            if (currentUser == null)
            {
                throw new WebFaultException <string>("Must be logged in", System.Net.HttpStatusCode.Forbidden);
            }

            using (Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope())
            {
                uow.objectContext.Configuration.ProxyCreationEnabled = false;
                Rock.CMS.PageService PageService  = new Rock.CMS.PageService();
                Rock.CMS.Page        existingPage = PageService.Get(int.Parse(id));
                if (existingPage.Authorized("Edit", currentUser))
                {
                    uow.objectContext.Entry(existingPage).CurrentValues.SetValues(Page);

                    if (existingPage.IsValid)
                    {
                        PageService.Save(existingPage, currentUser.PersonId);
                    }
                    else
                    {
                        throw new WebFaultException <string>(existingPage.ValidationResults.AsDelimited(", "), System.Net.HttpStatusCode.BadRequest);
                    }
                }
                else
                {
                    throw new WebFaultException <string>("Not Authorized to Edit this Page", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
Exemplo n.º 2
0
        public void DeletePage(string id)
        {
            var currentUser = Rock.CMS.UserService.GetCurrentUser();

            if (currentUser == null)
            {
                throw new WebFaultException <string>("Must be logged in", System.Net.HttpStatusCode.Forbidden);
            }

            using (Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope())
            {
                uow.objectContext.Configuration.ProxyCreationEnabled = false;
                Rock.CMS.PageService PageService = new Rock.CMS.PageService();
                Rock.CMS.Page        Page        = PageService.Get(int.Parse(id));
                if (Page.Authorized("Edit", currentUser))
                {
                    PageService.Delete(Page, currentUser.PersonId);
                    PageService.Save(Page, currentUser.PersonId);
                }
                else
                {
                    throw new WebFaultException <string>("Not Authorized to Edit this Page", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
Exemplo n.º 3
0
        public Rock.CMS.DTO.Page ApiGet(string id, string apiKey)
        {
            using (Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope())
            {
                Rock.CMS.UserService userService = new Rock.CMS.UserService();
                Rock.CMS.User        user        = userService.Queryable().Where(u => u.ApiKey == apiKey).FirstOrDefault();

                if (user != null)
                {
                    uow.objectContext.Configuration.ProxyCreationEnabled = false;
                    Rock.CMS.PageService PageService = new Rock.CMS.PageService();
                    Rock.CMS.Page        Page        = PageService.Get(int.Parse(id));
                    if (Page.Authorized("View", user))
                    {
                        return(Page.DataTransferObject);
                    }
                    else
                    {
                        throw new WebFaultException <string>("Not Authorized to View this Page", System.Net.HttpStatusCode.Forbidden);
                    }
                }
                else
                {
                    throw new WebFaultException <string>("Invalid API Key", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
Exemplo n.º 4
0
        public void ApiDeletePage(string id, string apiKey)
        {
            using (Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope())
            {
                Rock.CMS.UserService userService = new Rock.CMS.UserService();
                Rock.CMS.User        user        = userService.Queryable().Where(u => u.ApiKey == apiKey).FirstOrDefault();

                if (user != null)
                {
                    uow.objectContext.Configuration.ProxyCreationEnabled = false;
                    Rock.CMS.PageService PageService = new Rock.CMS.PageService();
                    Rock.CMS.Page        Page        = PageService.Get(int.Parse(id));
                    if (Page.Authorized("Edit", user))
                    {
                        PageService.Delete(Page, user.PersonId);
                        PageService.Save(Page, user.PersonId);
                    }
                    else
                    {
                        throw new WebFaultException <string>("Not Authorized to Edit this Page", System.Net.HttpStatusCode.Forbidden);
                    }
                }
                else
                {
                    throw new WebFaultException <string>("Invalid API Key", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
Exemplo n.º 5
0
        public void ApiCreatePage(string apiKey, Rock.CMS.DTO.Page Page)
        {
            using (Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope())
            {
                Rock.CMS.UserService userService = new Rock.CMS.UserService();
                Rock.CMS.User        user        = userService.Queryable().Where(u => u.ApiKey == apiKey).FirstOrDefault();

                if (user != null)
                {
                    uow.objectContext.Configuration.ProxyCreationEnabled = false;
                    Rock.CMS.PageService PageService  = new Rock.CMS.PageService();
                    Rock.CMS.Page        existingPage = new Rock.CMS.Page();
                    PageService.Add(existingPage, user.PersonId);
                    uow.objectContext.Entry(existingPage).CurrentValues.SetValues(Page);

                    if (existingPage.IsValid)
                    {
                        PageService.Save(existingPage, user.PersonId);
                    }
                    else
                    {
                        throw new WebFaultException <string>(existingPage.ValidationResults.AsDelimited(", "), System.Net.HttpStatusCode.BadRequest);
                    }
                }
                else
                {
                    throw new WebFaultException <string>("Invalid API Key", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
Exemplo n.º 6
0
        protected void btnSave_Click( object sender, EventArgs e )
        {
            Rock.CMS.Page page;

            int pageId = 0;
            if ( !Int32.TryParse( hfPageId.Value, out pageId ) )
                pageId = 0;

            if ( pageId == 0 )
            {
                page = new Rock.CMS.Page();

                if ( _page != null )
                {
                    page.ParentPageId = _page.Id;
                    page.SiteId = _page.Site.Id;
                }
                else
                {
                    page.ParentPageId = null;
                    page.SiteId = PageInstance.Site.Id;
                }

                page.Title = tbPageName.Text;
                page.EnableViewState = true;
                page.IncludeAdminFooter = true;

                Rock.CMS.Page lastPage =
                    pageService.GetByParentPageId( _page.Id ).
                        OrderByDescending( b => b.Order ).FirstOrDefault();

                if ( lastPage != null )
                    page.Order = lastPage.Order + 1;
                else
                    page.Order = 0;

                pageService.Add( page, CurrentPersonId );

            }
            else
                page = pageService.Get( pageId );

            page.Layout = ddlLayout.Text;
            page.Name = tbPageName.Text;

            pageService.Save( page, CurrentPersonId );

            if ( _page != null )
            {
                Rock.Security.Authorization.CopyAuthorization( _page, page, CurrentPersonId );
                _page.FlushChildPages();
            }

            BindGrid();

            rGrid.Visible = true;
            pnlDetails.Visible = false;
        }
Exemplo n.º 7
0
        private void AddPage(Rock.CMS.Page page, int level)
        {
            string pageName = new string( '-', level ) + page.Name;

            ddlDefaultPage.Items.Add(new ListItem(pageName, page.Id.ToString()));
            foreach (var childPage in page.Pages)
            {
                AddPage(childPage, level + 1);
            }
        }
Exemplo n.º 8
0
        protected void rGrid_Delete(object sender, RowEventArgs e)
        {
            Rock.CMS.Page page = pageService.Get(( int )rGrid.DataKeys[e.RowIndex]["id"]);
            if (page != null)
            {
                Rock.Web.Cache.Page.Flush(page.Id);

                pageService.Delete(page, CurrentPersonId);
                pageService.Save(page, CurrentPersonId);

                if (_page != null)
                {
                    _page.FlushChildPages();
                }
            }

            BindGrid();
        }
Exemplo n.º 9
0
        void rGrid_GridAdd( object sender, EventArgs e )
        {
            Rock.CMS.Page page = new Rock.CMS.Page();
            page.Name = "New Page";

            Rock.CMS.Page lastPage = pageService.Queryable().
                Where( p => !p.ParentPageId.HasValue).
                OrderByDescending( b => b.Order ).FirstOrDefault();

            if ( lastPage != null )
                page.Order = lastPage.Order + 1;
            else
                page.Order = 0;

            pageService.Add( page, CurrentPersonId );
            pageService.Save( page, CurrentPersonId );

            BindGrid();
        }
Exemplo n.º 10
0
        protected void ShowEdit(int pageId)
        {
            Rock.CMS.Page page = pageService.Get(pageId);
            if (page != null)
            {
                hfPageId.Value = page.Id.ToString();
                try { ddlLayout.Text = page.Layout; }
                catch { }
                tbPageName.Text = page.Name;

                lEditAction.Text = "Edit";
                btnSave.Text     = "Save";
            }
            else
            {
                hfPageId.Value = "0";

                try
                {
                    if (_page != null)
                    {
                        ddlLayout.Text = _page.Layout;
                    }
                    else
                    {
                        ddlLayout.Text = PageInstance.Layout;
                    }
                }
                catch { }

                tbPageName.Text = string.Empty;

                lEditAction.Text = "Add";
                btnSave.Text     = "Add";
            }

            rGrid.Visible      = false;
            pnlDetails.Visible = true;
        }
Exemplo n.º 11
0
        public void ApiCreatePage( string apiKey, Rock.CMS.DTO.Page Page )
        {
            using ( Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope() )
            {
                Rock.CMS.UserService userService = new Rock.CMS.UserService();
                Rock.CMS.User user = userService.Queryable().Where( u => u.ApiKey == apiKey ).FirstOrDefault();

                if (user != null)
                {
                    uow.objectContext.Configuration.ProxyCreationEnabled = false;
                    Rock.CMS.PageService PageService = new Rock.CMS.PageService();
                    Rock.CMS.Page existingPage = new Rock.CMS.Page();
                    PageService.Add( existingPage, user.PersonId );
                    uow.objectContext.Entry(existingPage).CurrentValues.SetValues(Page);

                    if (existingPage.IsValid)
                        PageService.Save( existingPage, user.PersonId );
                    else
                        throw new WebFaultException<string>( existingPage.ValidationResults.AsDelimited(", "), System.Net.HttpStatusCode.BadRequest );
                }
                else
                    throw new WebFaultException<string>( "Invalid API Key", System.Net.HttpStatusCode.Forbidden );
            }
        }
Exemplo n.º 12
0
        protected override void OnLoad(EventArgs e)
        {
            if (!Page.IsPostBack && _page.Authorized("Configure", CurrentUser))
            {
                Rock.CMS.PageService pageService = new Rock.CMS.PageService();
                Rock.CMS.Page        page        = pageService.Get(_page.Id);

                rptProperties.DataSource = tabs;
                rptProperties.DataBind();

                LoadDropdowns();

                tbPageName.Text             = _page.Name;
                tbPageTitle.Text            = _page.Title;
                ddlParentPage.SelectedValue = _page.ParentPage != null?_page.ParentPage.Id.ToString() : "0";

                ddlLayout.Text               = _page.Layout;
                ddlMenuWhen.SelectedValue    = (( Int32 )_page.DisplayInNavWhen).ToString();
                cbMenuDescription.Checked    = _page.MenuDisplayDescription;
                cbMenuIcon.Checked           = _page.MenuDisplayIcon;
                cbMenuChildPages.Checked     = _page.MenuDisplayChildPages;
                cbRequiresEncryption.Checked = _page.RequiresEncryption;
                cbEnableViewState.Checked    = _page.EnableViewstate;
                cbIncludeAdminFooter.Checked = _page.IncludeAdminFooter;
                tbCacheDuration.Text         = _page.OutputCacheDuration.ToString();
                tbDescription.Text           = _page.Description;
                tbPageRoute.Text             = string.Join(",", page.PageRoutes.Select(route => route.Route).ToArray());
            }

            base.OnLoad(e);

            if (Page.IsPostBack)
            {
                Rock.Attribute.Helper.SetErrorIndicators(phAttributes, _page);
            }
        }
Exemplo n.º 13
0
        public Rock.CMS.DTO.Page Get(string id)
        {
            var currentUser = Rock.CMS.UserService.GetCurrentUser();

            if (currentUser == null)
            {
                throw new WebFaultException <string>("Must be logged in", System.Net.HttpStatusCode.Forbidden);
            }

            using (Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope())
            {
                uow.objectContext.Configuration.ProxyCreationEnabled = false;
                Rock.CMS.PageService PageService = new Rock.CMS.PageService();
                Rock.CMS.Page        Page        = PageService.Get(int.Parse(id));
                if (Page.Authorized("View", currentUser))
                {
                    return(Page.DataTransferObject);
                }
                else
                {
                    throw new WebFaultException <string>("Not Authorized to View this Page", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
Exemplo n.º 14
0
        public void CreatePage( Rock.CMS.DTO.Page Page )
        {
            var currentUser = Rock.CMS.UserService.GetCurrentUser();
            if ( currentUser == null )
                throw new WebFaultException<string>("Must be logged in", System.Net.HttpStatusCode.Forbidden );

            using ( Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope() )
            {
                uow.objectContext.Configuration.ProxyCreationEnabled = false;
                Rock.CMS.PageService PageService = new Rock.CMS.PageService();
                Rock.CMS.Page existingPage = new Rock.CMS.Page();
                PageService.Add( existingPage, currentUser.PersonId );
                uow.objectContext.Entry(existingPage).CurrentValues.SetValues(Page);

                if (existingPage.IsValid)
                    PageService.Save( existingPage, currentUser.PersonId );
                else
                    throw new WebFaultException<string>( existingPage.ValidationResults.AsDelimited(", "), System.Net.HttpStatusCode.BadRequest );
            }
        }
Exemplo n.º 15
0
        void masterPage_OnSave(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                using (new Rock.Data.UnitOfWorkScope())
                {
                    Rock.CMS.PageService      pageService  = new Rock.CMS.PageService();
                    Rock.CMS.Page             page         = pageService.Get(_page.Id);
                    Rock.CMS.PageRouteService routeService = new Rock.CMS.PageRouteService();
                    Rock.CMS.PageRoute        pr;

                    int parentPage = Int32.Parse(ddlParentPage.SelectedValue);
                    if (page.ParentPageId != parentPage)
                    {
                        if (page.ParentPageId.HasValue)
                        {
                            Rock.Web.Cache.Page.Flush(page.ParentPageId.Value);
                        }

                        if (parentPage != 0)
                        {
                            Rock.Web.Cache.Page.Flush(parentPage);
                        }

                        foreach (var route in page.PageRoutes)
                        {
                            routeService.Delete(route, CurrentPersonId);
                        }
                        page.PageRoutes.Clear();
                    }

                    page.Name  = tbPageName.Text;
                    page.Title = tbPageTitle.Text;
                    if (parentPage != 0)
                    {
                        page.ParentPageId = parentPage;
                    }
                    else
                    {
                        page.ParentPageId = null;
                    }
                    page.Layout                 = ddlLayout.Text;
                    page.DisplayInNavWhen       = (Rock.CMS.DisplayInNavWhen)Enum.Parse(typeof(Rock.CMS.DisplayInNavWhen), ddlMenuWhen.SelectedValue);
                    page.MenuDisplayDescription = cbMenuDescription.Checked;
                    page.MenuDisplayIcon        = cbMenuIcon.Checked;
                    page.MenuDisplayChildPages  = cbMenuChildPages.Checked;
                    page.RequiresEncryption     = cbRequiresEncryption.Checked;
                    page.EnableViewState        = cbEnableViewState.Checked;
                    page.IncludeAdminFooter     = cbIncludeAdminFooter.Checked;
                    page.OutputCacheDuration    = Int32.Parse(tbCacheDuration.Text);
                    page.Description            = tbDescription.Text;

                    foreach (string route in tbPageRoute.Text.SplitDelimitedValues())
                    {
                        pr       = new Rock.CMS.PageRoute();
                        pr.Route = route;
                        pr.Guid  = Guid.NewGuid();
                        page.PageRoutes.Add(pr);
                    }

                    pageService.Save(page, CurrentPersonId);

                    Rock.Attribute.Helper.GetEditValues(phAttributes, _page);
                    _page.SaveAttributeValues(CurrentPersonId);

                    Rock.Web.Cache.Page.Flush(_page.Id);
                }

                string script = "window.parent.closeModal()";
                ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "close-modal", script, true);
            }
        }
Exemplo n.º 16
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            Rock.CMS.Page page;

            int pageId = 0;

            if (!Int32.TryParse(hfPageId.Value, out pageId))
            {
                pageId = 0;
            }

            if (pageId == 0)
            {
                page = new Rock.CMS.Page();

                if (_page != null)
                {
                    page.ParentPageId = _page.Id;
                    page.SiteId       = _page.Site.Id;
                }
                else
                {
                    page.ParentPageId = null;
                    page.SiteId       = PageInstance.Site.Id;
                }

                page.Title              = tbPageName.Text;
                page.EnableViewState    = true;
                page.IncludeAdminFooter = true;

                Rock.CMS.Page lastPage =
                    pageService.GetByParentPageId(_page.Id).
                    OrderByDescending(b => b.Order).FirstOrDefault();

                if (lastPage != null)
                {
                    page.Order = lastPage.Order + 1;
                }
                else
                {
                    page.Order = 0;
                }

                pageService.Add(page, CurrentPersonId);
            }
            else
            {
                page = pageService.Get(pageId);
            }

            page.Layout = ddlLayout.Text;
            page.Name   = tbPageName.Text;

            pageService.Save(page, CurrentPersonId);

            if (_page != null)
            {
                Rock.Security.Authorization.CopyAuthorization(_page, page, CurrentPersonId);
                _page.FlushChildPages();
            }

            BindGrid();

            rGrid.Visible      = true;
            pnlDetails.Visible = false;
        }