internal static object ToJsonModel(Site site, string path) { var section = GetRequestFilteringSection(site, path); RequestFilteringId reqId = new RequestFilteringId(site?.Id, path, section.IsLocallyStored); var verbs = section.Verbs.Select(v => new { name = v.Verb, allowed = v.Allowed }); var obj = new { id = reqId.Uuid, scope = site == null ? string.Empty : site.Name + path, metadata = ConfigurationUtility.MetadataToJson(section.IsLocallyStored, section.IsLocked, section.OverrideMode, section.OverrideModeEffective), allow_unlisted_file_extensions = section.FileExtensions.AllowUnlisted, allow_unlisted_verbs = section.Verbs.AllowUnlisted, allow_high_bit_characters = section.AllowHighBitCharacters, allow_double_escaping = section.AllowDoubleEscaping, max_content_length = section.RequestLimits.MaxAllowedContentLength, max_url_length = section.RequestLimits.MaxUrl, max_query_string_length = section.RequestLimits.MaxQueryString, verbs = verbs, website = SiteHelper.ToJsonModelRef(site) }; return(Core.Environment.Hal.Apply(Defines.Resource.Guid, obj)); }
public static object ToJsonModelRef(Site site, string path) { var section = GetRequestFilteringSection(site, path); RequestFilteringId reqId = new RequestFilteringId(site?.Id, path, section.IsLocallyStored); var obj = new { id = reqId.Uuid, scope = site == null ? string.Empty : site.Name + path }; return(Core.Environment.Hal.Apply(Defines.Resource.Guid, obj, false)); }
public object Get(string id) { RequestFilteringId reqId = new RequestFilteringId(id); Site site = reqId.SiteId == null ? null : SiteHelper.GetSite(reqId.SiteId.Value); if (reqId.SiteId != null && site == null) { Context.Response.StatusCode = (int)HttpStatusCode.NotFound; return(null); } return(RequestFilteringHelper.ToJsonModel(site, reqId.Path)); }
public object Post([FromBody] dynamic model) { Rule rule = null; Site site = null; RequestFilteringId reqId = null; if (model == null) { throw new ApiArgumentException("model"); } // Rule must be created for a specific request filtering section if (model.request_filtering == null) { throw new ApiArgumentException("request_filtering"); } if (!(model.request_filtering is JObject)) { throw new ApiArgumentException(String.Empty, "request_filtering"); } string reqUuid = DynamicHelper.Value(model.request_filtering.id); if (reqUuid == null) { throw new ApiArgumentException("request_filtering.id"); } // Get the feature id reqId = new RequestFilteringId(reqUuid); // Get site the rule is for if applicable site = reqId.SiteId == null ? null : SiteHelper.GetSite(reqId.SiteId.Value); string configPath = ManagementUnit.ResolveConfigScope(model); RequestFilteringSection section = RequestFilteringHelper.GetRequestFilteringSection(site, reqId.Path, configPath); // Create filtering rule rule = RulesHelper.CreateRule(model, section); // Add it RulesHelper.AddRule(rule, section); // Save ManagementUnit.Current.Commit(); // // Create response dynamic r = RulesHelper.ToJsonModel(rule, site, reqId.Path, null, true); return(Created(RulesHelper.GetLocation(r.id), r)); }
public object Post([FromBody] dynamic model) { Extension extension = null; Site site = null; RequestFilteringId reqId = null; if (model == null) { throw new ApiArgumentException("model"); } if (model.request_filtering == null) { throw new ApiArgumentException("request_filtering"); } if (!(model.request_filtering is JObject)) { throw new ApiArgumentException(String.Empty, "request_filtering"); } string reqUuid = DynamicHelper.Value(model.request_filtering.id); if (reqUuid == null) { throw new ApiArgumentException("request_filtering.id"); } // Get the feature id reqId = new RequestFilteringId(reqUuid); site = reqId.SiteId == null ? null : SiteHelper.GetSite(reqId.SiteId.Value); string configPath = ManagementUnit.ResolveConfigScope(model); RequestFilteringSection section = RequestFilteringHelper.GetRequestFilteringSection(site, reqId.Path, configPath); extension = ExtensionsHelper.CreateExtension(model, section); ExtensionsHelper.AddExtension(extension, section); ManagementUnit.Current.Commit(); // // Create response dynamic ext = ExtensionsHelper.ToJsonModel(extension, site, reqId.Path); return(Created(ExtensionsHelper.GetLocation(ext.id), ext)); }
public object Get() { string requestFilteringUuid = Context.Request.Query[Defines.IDENTIFIER]; if (string.IsNullOrEmpty(requestFilteringUuid)) { return(NotFound()); } RequestFilteringId reqId = new RequestFilteringId(requestFilteringUuid); Site site = reqId.SiteId == null ? null : SiteHelper.GetSite(reqId.SiteId.Value); return(new { query_strings = QueryStringsHelper.GetQueryStrings(site, reqId.Path).Select(s => QueryStringsHelper.ToJsonModelRef(s, site, reqId.Path)) }); }
public object Post([FromBody] dynamic model) { QueryStringRule queryString = null; Site site = null; RequestFilteringId reqId = null; if (model == null) { throw new ApiArgumentException("model"); } if (model.request_filtering == null) { throw new ApiArgumentException("request_filtering"); } if (!(model.request_filtering is JObject)) { throw new ApiArgumentException("request_filtering"); } string reqUuid = DynamicHelper.Value(model.request_filtering.id); if (reqUuid == null) { throw new ApiArgumentException("request_filtering.id"); } reqId = new RequestFilteringId(reqUuid); site = reqId.SiteId == null ? null : SiteHelper.GetSite(reqId.SiteId.Value); string configPath = ManagementUnit.ResolveConfigScope(model); RequestFilteringSection section = RequestFilteringHelper.GetRequestFilteringSection(site, reqId.Path, configPath); queryString = QueryStringsHelper.CreateQueryString(model); QueryStringsHelper.AddQueryString(queryString, section); ManagementUnit.Current.Commit(); // // Create response dynamic qs = QueryStringsHelper.ToJsonModel(queryString, site, reqId.Path); return(Created(QueryStringsHelper.GetLocation(qs.id), qs)); }
public object Get() { string requestFilteringUuid = Context.Request.Query[Defines.IDENTIFIER]; if (string.IsNullOrEmpty(requestFilteringUuid)) { return(NotFound()); } RequestFilteringId reqId = new RequestFilteringId(requestFilteringUuid); Site site = reqId.SiteId == null ? null : SiteHelper.GetSite(reqId.SiteId.Value); List <Extension> extensions = ExtensionsHelper.GetExtensions(site, reqId.Path); return(new { file_extensions = extensions.Select(e => ExtensionsHelper.ToJsonModelRef(e, site, reqId.Path)) }); }
public void Delete(string id) { RequestFilteringId reqId = new RequestFilteringId(id); Context.Response.StatusCode = (int)HttpStatusCode.NoContent; Site site = (reqId.SiteId != null) ? SiteHelper.GetSite(reqId.SiteId.Value) : null; if (site == null) { return; } var section = RequestFilteringHelper.GetRequestFilteringSection(site, reqId.Path, ManagementUnit.ResolveConfigScope()); section.RevertToParent(); ManagementUnit.Current.Commit(); }
public object Get() { string requestFilteringUuid = Context.Request.Query[Defines.IDENTIFIER]; if (string.IsNullOrEmpty(requestFilteringUuid)) { return(new StatusCodeResult((int)HttpStatusCode.NotFound)); } RequestFilteringId reqId = new RequestFilteringId(requestFilteringUuid); Site site = reqId.SiteId == null ? null : SiteHelper.GetSite(reqId.SiteId.Value); List <UrlRule> urls = UrlsHelper.GetUrls(site, reqId.Path); return(new { urls = urls.Select(s => UrlsHelper.ToJsonModelRef(s, site, reqId.Path)) }); }
public object Get() { string requestFilteringUuid = Context.Request.Query[Defines.IDENTIFIER]; if (string.IsNullOrEmpty(requestFilteringUuid)) { return(NotFound()); } RequestFilteringId reqId = new RequestFilteringId(requestFilteringUuid); Site site = reqId.SiteId == null ? null : SiteHelper.GetSite(reqId.SiteId.Value); List <HeaderLimit> headers = HeaderLimitsHelper.GetHeaderLimits(site, reqId.Path); return(new { header_limits = headers.Select(h => HeaderLimitsHelper.ToJsonModelRef(h, site, reqId.Path)) }); }
public object Post([FromBody] dynamic model) { HiddenSegment segment = null; Site site = null; RequestFilteringId reqId = null; if (model == null) { throw new ApiArgumentException("model"); } if (model.request_filtering == null) { throw new ApiArgumentException("request_filtering"); } if (!(model.request_filtering is JObject)) { throw new ApiArgumentException("request_filtering"); } string reqUuid = DynamicHelper.Value(model.request_filtering.id); if (reqUuid == null) { throw new ApiArgumentException("request_filtering.id"); } // Get the feature id reqId = new RequestFilteringId(reqUuid); site = reqId.SiteId == null ? null : SiteHelper.GetSite(reqId.SiteId.Value); string configPath = ManagementUnit.ResolveConfigScope(model); RequestFilteringSection section = RequestFilteringHelper.GetRequestFilteringSection(site, reqId.Path, configPath); segment = HiddenSegmentsHelper.CreateSegment(model, section); HiddenSegmentsHelper.AddSegment(segment, section); ManagementUnit.Current.Commit(); dynamic hidden_segment = HiddenSegmentsHelper.ToJsonModel(segment, site, reqId.Path); return(Created(HiddenSegmentsHelper.GetLocation(hidden_segment.id), hidden_segment)); }
public object Get() { string requestFilteringUuid = Context.Request.Query[Defines.IDENTIFIER]; if (string.IsNullOrEmpty(requestFilteringUuid)) { return(NotFound()); } RequestFilteringId reqId = new RequestFilteringId(requestFilteringUuid); Site site = reqId.SiteId == null ? null : SiteHelper.GetSite(reqId.SiteId.Value); List <HiddenSegment> segments = HiddenSegmentsHelper.getSegments(site, reqId.Path); return(new { hidden_segments = segments.Select(s => HiddenSegmentsHelper.ToJsonModelRef(s, site, reqId.Path)) }); }
public object Post([FromBody] dynamic model) { HeaderLimit headerLimit = null; Site site = null; RequestFilteringId reqId = null; if (model == null) { throw new ApiArgumentException("model"); } if (model.request_filtering == null) { throw new ApiArgumentException("request_filtering"); } if (!(model.request_filtering is JObject)) { throw new ApiArgumentException(String.Empty, "request_filtering"); } string reqUuid = DynamicHelper.Value(model.request_filtering.id); if (reqUuid == null) { throw new ApiArgumentException("request_filtering.id"); } reqId = new RequestFilteringId(reqUuid); site = reqId.SiteId == null ? null : SiteHelper.GetSite(reqId.SiteId.Value); string configPath = ManagementUnit.ResolveConfigScope(model); RequestFilteringSection section = RequestFilteringHelper.GetRequestFilteringSection(site, reqId.Path, configPath); headerLimit = HeaderLimitsHelper.CreateHeaderLimit(model, section); HeaderLimitsHelper.AddHeaderLimit(headerLimit, section); ManagementUnit.Current.Commit(); dynamic header_limit = HeaderLimitsHelper.ToJsonModel(headerLimit, site, reqId.Path); return(Created(HeaderLimitsHelper.GetLocation(header_limit.id), header_limit)); }
public async Task Delete(string id) { RequestFilteringId reqId = new RequestFilteringId(id); Context.Response.StatusCode = (int)HttpStatusCode.NoContent; Site site = (reqId.SiteId != null) ? SiteHelper.GetSite(reqId.SiteId.Value) : null; if (site != null) { var section = RequestFilteringHelper.GetRequestFilteringSection(site, reqId.Path, ManagementUnit.ResolveConfigScope()); section.RevertToParent(); ManagementUnit.Current.Commit(); } if (reqId.SiteId == null && RequestFilteringHelper.IsFeatureEnabled()) { await RequestFilteringHelper.SetFeatureEnabled(false); } }
public object Get() { string requestFilteringUuid = Context.Request.Query[Defines.IDENTIFIER]; if (string.IsNullOrEmpty(requestFilteringUuid)) { return(new StatusCodeResult((int)HttpStatusCode.NotFound)); } RequestFilteringId reqId = new RequestFilteringId(requestFilteringUuid); // Get site and application rule is for if applicable Site site = reqId.SiteId == null ? null : SiteHelper.GetSite(reqId.SiteId.Value); List <Rule> rules = RulesHelper.GetRules(site, reqId.Path); Fields fields = Context.Request.GetFields(); return(new { rules = rules.Select(r => RulesHelper.ToJsonModelRef(r, site, reqId.Path, fields)) }); }
public object Patch(string id, [FromBody] dynamic model) { RequestFilteringId reqId = new RequestFilteringId(id); Site site = reqId.SiteId == null ? null : SiteHelper.GetSite(reqId.SiteId.Value); if (reqId.SiteId != null && site == null) { Context.Response.StatusCode = (int)HttpStatusCode.NotFound; return(null); } // Check for config_scope string configPath = model == null ? null : ManagementUnit.ResolveConfigScope(model); RequestFilteringSection section = RequestFilteringHelper.GetRequestFilteringSection(site, reqId.Path, configPath); RequestFilteringHelper.UpdateFeatureSettings(model, section); ManagementUnit.Current.Commit(); return(RequestFilteringHelper.ToJsonModel(site, reqId.Path)); }