Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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 }; 
        }