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); } } }
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); } } }
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); } } }
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); } } }
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); } } }
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; } }
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(); }
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; }
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); } } }
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 ); } }
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; } }
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 ); } }