public object GetHtml(TemplateMetadataDebug request) { var feature = HostContext.GetPlugin <TemplatePagesFeature>(); if (!HostContext.DebugMode) { RequiredRoleAttribute.AssertRequiredRoles(Request, feature.MetadataDebugAdminRole); } if (request.Template != null) { return(Any(request)); } var defaultTemplate = feature.DebugDefaultTemplate ?? DefaultTemplate; var html = HtmlTemplates.GetMetadataDebugTemplate(); html = html.Replace("{0}", defaultTemplate); var authsecret = Request.GetParam(Keywords.AuthSecret); if (HostContext.Config.AdminAuthSecret != null && HostContext.Config.AdminAuthSecret == authsecret) { html = html.Replace("{ template: template }", "{ template: template, authsecret:" + feature.DefaultFilters.jsQuotedString(authsecret).ToRawString() + " }"); } return(html); }
public object Any(TemplateMetadataDebug request) { if (string.IsNullOrEmpty(request.Template)) return null; var feature = HostContext.GetPlugin<TemplatePagesFeature>(); if (!HostContext.DebugMode) { if (HostContext.Config.AdminAuthSecret == null || HostContext.Config.AdminAuthSecret != request.AuthSecret) { RequiredRoleAttribute.AssertRequiredRoles(Request, feature.MetadataDebugAdminRole); } } var context = new TemplateContext { TemplateFilters = { new TemplateInfoFilters() }, Args = { {TemplateConstants.Request, base.Request}, {"request", base.Request}, {"appHost", HostContext.AppHost}, {"appConfig", HostContext.Config}, {"appVirtualFilesPath", HostContext.VirtualFiles.RootDirectory.RealPath}, {"appVirtualFileSourcesPath", HostContext.VirtualFileSources.RootDirectory.RealPath}, {"meta", HostContext.Metadata}, } }.Init(); feature.Args.Each(x => context.Args[x.Key] = x.Value); var result = context.EvaluateTemplate(request.Template); return new HttpResult(result) { ContentType = MimeTypes.PlainText }; }