Exemplo n.º 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);
                }
            }
        }
Exemplo n.º 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);
                }
            }
        }
Exemplo n.º 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);
                }
            }
        }
Exemplo n.º 4
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);
                }
            }
        }
Exemplo n.º 5
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);
                }
            }
        }
Exemplo n.º 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;
            }
        }
Exemplo n.º 7
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);
                }
            }
        }
Exemplo n.º 8
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 );
            }
        }
Exemplo n.º 9
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 );
            }
        }
Exemplo n.º 10
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;
            }
        }
Exemplo n.º 11
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 );
            }
        }
Exemplo n.º 12
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 );
            }
        }
Exemplo n.º 13
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 );
            }
        }
Exemplo n.º 14
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 );
            }
        }