Example #1
0
        public Rock.CMS.DTO.Site 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.SiteService SiteService = new Rock.CMS.SiteService();
                    Rock.CMS.Site        Site        = SiteService.Get(int.Parse(id));
                    if (Site.Authorized("View", user))
                    {
                        return(Site.DataTransferObject);
                    }
                    else
                    {
                        throw new WebFaultException <string>("Not Authorized to View this Site", System.Net.HttpStatusCode.Forbidden);
                    }
                }
                else
                {
                    throw new WebFaultException <string>("Invalid API Key", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
Example #2
0
        public void UpdateSite(string id, Rock.CMS.DTO.Site Site)
        {
            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.SiteService SiteService  = new Rock.CMS.SiteService();
                Rock.CMS.Site        existingSite = SiteService.Get(int.Parse(id));
                if (existingSite.Authorized("Edit", currentUser))
                {
                    uow.objectContext.Entry(existingSite).CurrentValues.SetValues(Site);

                    if (existingSite.IsValid)
                    {
                        SiteService.Save(existingSite, currentUser.PersonId);
                    }
                    else
                    {
                        throw new WebFaultException <string>(existingSite.ValidationResults.AsDelimited(", "), System.Net.HttpStatusCode.BadRequest);
                    }
                }
                else
                {
                    throw new WebFaultException <string>("Not Authorized to Edit this Site", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
Example #3
0
        public void ApiDeleteSite(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.SiteService SiteService = new Rock.CMS.SiteService();
                    Rock.CMS.Site        Site        = SiteService.Get(int.Parse(id));
                    if (Site.Authorized("Edit", user))
                    {
                        SiteService.Delete(Site, user.PersonId);
                        SiteService.Save(Site, user.PersonId);
                    }
                    else
                    {
                        throw new WebFaultException <string>("Not Authorized to Edit this Site", System.Net.HttpStatusCode.Forbidden);
                    }
                }
                else
                {
                    throw new WebFaultException <string>("Invalid API Key", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
Example #4
0
        public void DeleteSite(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.SiteService SiteService = new Rock.CMS.SiteService();
                Rock.CMS.Site        Site        = SiteService.Get(int.Parse(id));
                if (Site.Authorized("Edit", currentUser))
                {
                    SiteService.Delete(Site, currentUser.PersonId);
                    SiteService.Save(Site, currentUser.PersonId);
                }
                else
                {
                    throw new WebFaultException <string>("Not Authorized to Edit this Site", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
Example #5
0
        public void ApiCreateSite(string apiKey, Rock.CMS.DTO.Site Site)
        {
            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.SiteService SiteService  = new Rock.CMS.SiteService();
                    Rock.CMS.Site        existingSite = new Rock.CMS.Site();
                    SiteService.Add(existingSite, user.PersonId);
                    uow.objectContext.Entry(existingSite).CurrentValues.SetValues(Site);

                    if (existingSite.IsValid)
                    {
                        SiteService.Save(existingSite, user.PersonId);
                    }
                    else
                    {
                        throw new WebFaultException <string>(existingSite.ValidationResults.AsDelimited(", "), System.Net.HttpStatusCode.BadRequest);
                    }
                }
                else
                {
                    throw new WebFaultException <string>("Invalid API Key", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
Example #6
0
        protected void btnSave_Click( object sender, EventArgs e )
        {
            Rock.CMS.Site site;
            Rock.CMS.SiteDomain sd;
            bool newSite = false;

            using ( new Rock.Data.UnitOfWorkScope() )
            {
                siteService = new Rock.CMS.SiteService();
                siteDomainService = new Rock.CMS.SiteDomainService();

                int siteId = 0;
                if ( !Int32.TryParse( hfSiteId.Value, out siteId ) )
                    siteId = 0;

                if ( siteId == 0 )
                {
                    newSite = true;
                    site = new Rock.CMS.Site();
                    siteService.Add( site, CurrentPersonId );
                }
                else
                {
                    site = siteService.Get( siteId );
                    foreach ( var domain in site.SiteDomains.ToList() )
                        siteDomainService.Delete( domain, CurrentPersonId );
                    site.SiteDomains.Clear();
                }

                site.Name = tbSiteName.Text;
                site.Description = tbDescription.Text;
                site.Theme = ddlTheme.Text;
                site.DefaultPageId = Convert.ToInt32( ddlDefaultPage.SelectedValue );

                foreach ( string domain in tbSiteDomains.Text.SplitDelimitedValues() )
                {
                    sd = new Rock.CMS.SiteDomain();
                    sd.Domain = domain;
                    sd.Guid = Guid.NewGuid();
                    site.SiteDomains.Add( sd );
                }

                site.FaviconUrl = tbFaviconUrl.Text;
                site.AppleTouchIconUrl = tbAppleTouchIconUrl.Text;
                site.FacebookAppId = tbFacebookAppId.Text;
                site.FacebookAppSecret = tbFacebookAppSecret.Text;

                siteService.Save( site, CurrentPersonId );

                if ( newSite )
                    Rock.Security.Authorization.CopyAuthorization( PageInstance.Site, site, CurrentPersonId );

                Rock.Web.Cache.Site.Flush( site.Id );

                BindGrid();

                pnlDetails.Visible = false;
                pnlList.Visible = true;
            }
        }
Example #7
0
        protected void gSites_Delete(object sender, RowEventArgs e)
        {
            Rock.CMS.Site site = siteService.Get(( int )gSites.DataKeys[e.RowIndex]["id"]);
            if (BlockInstance != null)
            {
                siteService.Delete(site, CurrentPersonId);
                siteService.Save(site, CurrentPersonId);

                Rock.Web.Cache.Site.Flush(site.Id);
            }

            BindGrid();
        }
Example #8
0
        protected void ShowEdit(int siteId)
        {
            Rock.CMS.Site site = siteService.Get(siteId);

            if (site != null)
            {
                lAction.Text   = "Edit";
                hfSiteId.Value = site.Id.ToString();

                tbSiteName.Text    = site.Name;
                tbDescription.Text = site.Description;
                ddlTheme.SetValue(site.Theme);
                ddlDefaultPage.SelectedValue = site.DefaultPage != null?site.DefaultPage.Id.ToString() : "0";

                tbSiteDomains.Text       = string.Join("\n", site.SiteDomains.Select(dom => dom.Domain).ToArray());
                tbFaviconUrl.Text        = site.FaviconUrl;
                tbAppleTouchIconUrl.Text = site.AppleTouchIconUrl;
                tbFacebookAppId.Text     = site.FacebookAppId;
                tbFacebookAppSecret.Text = site.FacebookAppSecret;
            }
            else
            {
                lAction.Text                 = "Add";
                tbSiteName.Text              = string.Empty;
                tbDescription.Text           = string.Empty;
                ddlDefaultPage.SelectedValue = "0";
                ddlTheme.Text                = PageInstance.Site.Theme;
                tbSiteDomains.Text           = string.Empty;
                tbFaviconUrl.Text            = string.Empty;
                tbAppleTouchIconUrl.Text     = string.Empty;
                tbFacebookAppId.Text         = string.Empty;
                tbFacebookAppSecret.Text     = string.Empty;
            }

            pnlList.Visible    = false;
            pnlDetails.Visible = true;
        }
Example #9
0
        public Rock.CMS.DTO.Site 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.SiteService SiteService = new Rock.CMS.SiteService();
                Rock.CMS.Site        Site        = SiteService.Get(int.Parse(id));
                if (Site.Authorized("View", currentUser))
                {
                    return(Site.DataTransferObject);
                }
                else
                {
                    throw new WebFaultException <string>("Not Authorized to View this Site", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
Example #10
0
        public void ApiCreateSite( string apiKey, Rock.CMS.DTO.Site Site )
        {
            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.SiteService SiteService = new Rock.CMS.SiteService();
                    Rock.CMS.Site existingSite = new Rock.CMS.Site();
                    SiteService.Add( existingSite, user.PersonId );
                    uow.objectContext.Entry(existingSite).CurrentValues.SetValues(Site);

                    if (existingSite.IsValid)
                        SiteService.Save( existingSite, user.PersonId );
                    else
                        throw new WebFaultException<string>( existingSite.ValidationResults.AsDelimited(", "), System.Net.HttpStatusCode.BadRequest );
                }
                else
                    throw new WebFaultException<string>( "Invalid API Key", System.Net.HttpStatusCode.Forbidden );
            }
        }
Example #11
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            Rock.CMS.Site       site;
            Rock.CMS.SiteDomain sd;
            bool newSite = false;

            using (new Rock.Data.UnitOfWorkScope())
            {
                siteService       = new Rock.CMS.SiteService();
                siteDomainService = new Rock.CMS.SiteDomainService();

                int siteId = 0;
                if (!Int32.TryParse(hfSiteId.Value, out siteId))
                {
                    siteId = 0;
                }

                if (siteId == 0)
                {
                    newSite = true;
                    site    = new Rock.CMS.Site();
                    siteService.Add(site, CurrentPersonId);
                }
                else
                {
                    site = siteService.Get(siteId);
                    foreach (var domain in site.SiteDomains.ToList())
                    {
                        siteDomainService.Delete(domain, CurrentPersonId);
                    }
                    site.SiteDomains.Clear();
                }

                site.Name          = tbSiteName.Text;
                site.Description   = tbDescription.Text;
                site.Theme         = ddlTheme.Text;
                site.DefaultPageId = Convert.ToInt32(ddlDefaultPage.SelectedValue);

                foreach (string domain in tbSiteDomains.Text.SplitDelimitedValues())
                {
                    sd        = new Rock.CMS.SiteDomain();
                    sd.Domain = domain;
                    sd.Guid   = Guid.NewGuid();
                    site.SiteDomains.Add(sd);
                }

                site.FaviconUrl        = tbFaviconUrl.Text;
                site.AppleTouchIconUrl = tbAppleTouchIconUrl.Text;
                site.FacebookAppId     = tbFacebookAppId.Text;
                site.FacebookAppSecret = tbFacebookAppSecret.Text;

                siteService.Save(site, CurrentPersonId);

                if (newSite)
                {
                    Rock.Security.Authorization.CopyAuthorization(PageInstance.Site, site, CurrentPersonId);
                }

                Rock.Web.Cache.Site.Flush(site.Id);

                BindGrid();

                pnlDetails.Visible = false;
                pnlList.Visible    = true;
            }
        }
Example #12
0
        public void CreateSite( Rock.CMS.DTO.Site Site )
        {
            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.SiteService SiteService = new Rock.CMS.SiteService();
                Rock.CMS.Site existingSite = new Rock.CMS.Site();
                SiteService.Add( existingSite, currentUser.PersonId );
                uow.objectContext.Entry(existingSite).CurrentValues.SetValues(Site);

                if (existingSite.IsValid)
                    SiteService.Save( existingSite, currentUser.PersonId );
                else
                    throw new WebFaultException<string>( existingSite.ValidationResults.AsDelimited(", "), System.Net.HttpStatusCode.BadRequest );
            }
        }