Esempio n. 1
0
        public void GetSingleData(RenderInfo info, OpenContentSettings settings)
        {
            info.ResetData();

            IDataSource ds        = DataSourceManager.GetDataSource(Settings.Manifest.DataSource);
            var         dsContext = OpenContentUtils.CreateDataContext(_module, -1, true);

            var dsItem = ds.Get(dsContext, null);

            if (dsItem != null)
            {
                info.SetData(dsItem, dsItem.Data, settings.Data);
            }
        }
Esempio n. 2
0
        public void GetSingleData(RenderInfo info, OpenContentSettings settings)
        {
            info.ResetData();
            var ds        = DataSourceManager.GetDataSource(settings.Manifest.DataSource);
            var dsContext = new DataSourceContext()
            {
                ModuleId       = info.ModuleId,
                ActiveModuleId = _module.ModuleID,
                TemplateFolder = settings.TemplateDir.FolderPath,
                Config         = settings.Manifest.DataSourceConfig,
                Single         = true
            };
            var dsItem = ds.Get(dsContext, null);

            if (dsItem != null)
            {
                info.SetData(dsItem, dsItem.Data, settings.Data);
            }
        }
Esempio n. 3
0
        public bool GetDemoData(RenderInfo info, OpenContentSettings settings)
        {
            info.ResetData();
            //bool settingsNeeded = false;
            FileUri dataFilename = null;

            if (info.Template != null)
            {
                dataFilename = new FileUri(info.Template.ManifestFolderUri.UrlFolder, "data.json");;
            }
            if (dataFilename != null && dataFilename.FileExists)
            {
                string fileContent    = File.ReadAllText(dataFilename.PhysicalFilePath);
                string settingContent = "";
                if (!string.IsNullOrWhiteSpace(fileContent))
                {
                    if (settings.Template != null && info.Template.MainTemplateUri().FilePath == settings.Template.MainTemplateUri().FilePath)
                    {
                        settingContent = settings.Data;
                    }
                    if (string.IsNullOrEmpty(settingContent))
                    {
                        var settingsFilename = info.Template.MainTemplateUri().PhysicalFullDirectory + "\\" + info.Template.Key.ShortKey + "-data.json";
                        if (File.Exists(settingsFilename))
                        {
                            settingContent = File.ReadAllText(settingsFilename);
                        }
                        else
                        {
                            //string schemaFilename = info.Template.Uri().PhysicalFullDirectory + "\\" + info.Template.Key.ShortKey + "-schema.json";
                            //settingsNeeded = File.Exists(schemaFilename);
                        }
                    }
                }
                if (!string.IsNullOrWhiteSpace(fileContent))
                {
                    info.SetData(null, fileContent, settingContent);
                }
            }
            return(!info.ShowInitControl); //!string.IsNullOrWhiteSpace(info.DataJson) && (!string.IsNullOrWhiteSpace(info.SettingsJson) || !settingsNeeded);
        }
Esempio n. 4
0
        public void GetDetailData(RenderInfo info, OpenContentModuleInfo module)
        {
            info.ResetData();
            var ds        = DataSourceManager.GetDataSource(module.Settings.Manifest.DataSource);
            var dsContext = OpenContentUtils.CreateDataContext(module);

            var dsItem = ds.Get(dsContext, info.DetailItemId);

            //if (LogContext.IsLogActive)
            //{
            //    var logKey = "Get detail data";
            //    LogContext.Log(_module.ModuleID, logKey, "debuginfo", dsItems.DebugInfo);
            //}

            if (dsItem != null)
            {
                //check permissions
                var  portalSettings = PortalSettings.Current;
                bool isEditable     = _module.ViewModule.CheckIfEditable(portalSettings);
                if (!isEditable)
                {
                    var    indexConfig = OpenContentUtils.GetIndexConfig(info.Template);
                    string raison;
                    if (!OpenContentUtils.HaveViewPermissions(dsItem, portalSettings.UserInfo, indexConfig, out raison))
                    {
                        if (module.ViewModule.HasEditRightsOnModule())
                        {
                            Exceptions.ProcessHttpException(new NotAuthorizedException(404, $"No detail view permissions for id={info.DetailItemId}  (due to {raison}) \nGo into Edit Mode to view/change the item"));
                        }
                        else
                        {
                            Exceptions.ProcessHttpException(new NotAuthorizedException(404, "Access denied. You might want to contact your administrator for more information."));
                        }
                    }
                }
                info.SetData(dsItem, dsItem.Data, module.Settings.Data);
            }
        }
Esempio n. 5
0
        private void GetDetailData(RenderInfo info, OpenContentModuleConfig module)
        {
            info.ResetData();
            var ds        = DataSourceManager.GetDataSource(module.Settings.Manifest.DataSource);
            var dsContext = OpenContentUtils.CreateDataContext(module);

            var dsItem = ds.Get(dsContext, info.DetailItemId);

            //if (LogContext.IsLogActive)
            //{
            //    var logKey = "Get detail data";
            //    LogContext.Log(_module.ModuleID, logKey, "debuginfo", dsItems.DebugInfo);
            //}

            if (dsItem != null)
            {
                //check permissions
                bool isEditable = _module.ViewModule.CheckIfEditable(module);
                if (!isEditable)
                {
                    var    indexConfig = OpenContentUtils.GetIndexConfig(info.Template);
                    string raison;
                    if (!OpenContentUtils.HaveViewPermissions(dsItem, module.UserRoles.FromDnnRoles(), indexConfig, out raison))
                    {
                        App.Services.Logger.Error($"Error accessing {HttpContext.Current?.Request?.Url?.AbsoluteUri}. Referrer {HttpContext.Current?.Request?.UrlReferrer?.AbsoluteUri}");
                        if (module.ViewModule.HasEditRightsOnModule())
                        {
                            throw new NotAuthorizedException(404, $"No detail view permissions for id={info.DetailItemId}  (due to {raison}) \nGo into Edit Mode to view/change the item.");
                        }
                        else
                        {
                            throw new NotAuthorizedException(404, $"Access denied. You might want to contact your administrator for more information. (due to {raison})");
                        }
                    }
                }
                info.SetData(dsItem, dsItem.Data, module.Settings.Data);
            }
        }
Esempio n. 6
0
        public void GetDetailData(RenderInfo info, OpenContentSettings settings)
        {
            info.ResetData();
            var ds        = DataSourceManager.GetDataSource(settings.Manifest.DataSource);
            var dsContext = new DataSourceContext()
            {
                ModuleId       = info.ModuleId,
                ActiveModuleId = _module.ModuleID,
                TemplateFolder = settings.TemplateDir.FolderPath,
                Config         = settings.Manifest.DataSourceConfig
            };
            var dsItem = ds.Get(dsContext, info.DetailItemId);

            if (LogContext.IsLogActive)
            {
                var logKey = "Get detail data";
                LogContext.Log(_module.ModuleID, logKey, "result", dsItem);
            }

            if (dsItem != null)
            {
                info.SetData(dsItem, dsItem.Data, settings.Data);
            }
        }
Esempio n. 7
0
 public void Render(Page page)
 {
     //start rendering
     if (Settings.Template != null)
     {
         if (!Settings.Template.DataNeeded())
         {
             // template without schema & options
             // render the template with no data
             _renderinfo.SetData(null, new JObject(), Settings.Data);
             _renderinfo.OutputString = GenerateOutputSingle(page, _renderinfo.Template.MainTemplateUri(), _renderinfo.DataJson, _renderinfo.SettingsJson, _renderinfo.Template.Main);
         }
         else if (_renderinfo.Template.IsListTemplate)
         {
             // Multi items template
             if (string.IsNullOrEmpty(ItemId))
             {
                 // List template
                 if (_renderinfo.Template.Main != null)
                 {
                     // for list templates a main template need to be defined
                     _renderinfo.Files = _renderinfo.Template.Main;
                     string templateKey = GetDataList(_renderinfo, Settings, _renderinfo.Template.ClientSideData);
                     if (!string.IsNullOrEmpty(templateKey) && _renderinfo.Template.Views != null && _renderinfo.Template.Views.ContainsKey(templateKey))
                     {
                         _renderinfo.Files = _renderinfo.Template.Views[templateKey];
                     }
                     if (!_renderinfo.ShowInitControl)
                     {
                         _renderinfo.OutputString = GenerateListOutput(page, Settings.Template, _renderinfo.Files, _renderinfo.DataList, _renderinfo.SettingsJson);
                     }
                 }
             }
             else
             {
                 LogContext.Log(_module.ViewModule.ModuleID, "RequestContext", "QueryParam Id", ItemId);
                 // detail template
                 if (_renderinfo.Template.Detail != null)
                 {
                     GetDetailData(_renderinfo, _module);
                 }
                 if (_renderinfo.Template.Detail != null && !_renderinfo.ShowInitControl)
                 {
                     _renderinfo.Files        = _renderinfo.Template.Detail;
                     _renderinfo.OutputString = GenerateOutputDetail(page, Settings.Template, _renderinfo.Template.Detail, _renderinfo.DataJson, _renderinfo.SettingsJson);
                 }
                 else // if itemid not corresponding to this module or no DetailTemplate present, show list template
                 {
                     // List template
                     if (_renderinfo.Template.Main != null)
                     {
                         // for list templates a main template need to be defined
                         _renderinfo.Files = _renderinfo.Template.Main;
                         string templateKey = GetDataList(_renderinfo, Settings, _renderinfo.Template.ClientSideData);
                         if (!string.IsNullOrEmpty(templateKey) && _renderinfo.Template.Views != null && _renderinfo.Template.Views.ContainsKey(templateKey))
                         {
                             _renderinfo.Files = _renderinfo.Template.Views[templateKey];
                         }
                         if (!_renderinfo.ShowInitControl)
                         {
                             _renderinfo.OutputString = GenerateListOutput(page, Settings.Template, _renderinfo.Files, _renderinfo.DataList, _renderinfo.SettingsJson);
                         }
                     }
                 }
             }
         }
         else
         {
             // single item template
             GetSingleData(_renderinfo, Settings);
             if (!_renderinfo.ShowInitControl)
             {
                 _renderinfo.OutputString = GenerateOutputSingle(page, _renderinfo.Template.MainTemplateUri(), _renderinfo.DataJson, _renderinfo.SettingsJson, _renderinfo.Template.Main);
             }
         }
     }
 }
Esempio n. 8
0
        public string GetDataList(RenderInfo info, OpenContentSettings settings, bool clientSide)
        {
            string templateKey = "";

            info.ResetData();

            IDataSource ds        = DataSourceManager.GetDataSource(Settings.Manifest.DataSource);
            var         dsContext = OpenContentUtils.CreateDataContext(_module);

            IEnumerable <IDataItem> resultList = new List <IDataItem>();

            if (clientSide || !info.Files.DataInTemplate)
            {
                if (ds.Any(dsContext))
                {
                    info.SetData(resultList, settings.Data);
                    info.DataExist = true;
                }

                if (info.Template.Views != null)
                {
                    var indexConfig = OpenContentUtils.GetIndexConfig(info.Template);
                    templateKey = GetTemplateKey(indexConfig);
                }
            }
            else
            {
                //server side
                bool useLucene = info.Template.Manifest.Index;
                if (useLucene)
                {
                    PortalSettings portalSettings = PortalSettings.Current;
                    var            indexConfig    = OpenContentUtils.GetIndexConfig(info.Template);
                    if (info.Template.Views != null)
                    {
                        templateKey = GetTemplateKey(indexConfig);
                    }
                    bool         isEditable   = _module.ViewModule.CheckIfEditable(portalSettings);//portalSettings.UserMode != PortalSettings.Mode.Edit;
                    QueryBuilder queryBuilder = new QueryBuilder(indexConfig);
                    queryBuilder.Build(settings.Query, !isEditable, portalSettings.UserId, DnnLanguageUtils.GetCurrentCultureCode(), portalSettings.UserInfo.Social.Roles, QueryString);

                    resultList = ds.GetAll(dsContext, queryBuilder.Select).Items;
                    if (LogContext.IsLogActive)
                    {
                        //LogContext.Log(_module.ModuleID, "RequestContext", "EditMode", !addWorkFlow);
                        LogContext.Log(_module.ViewModule.ModuleID, "RequestContext", "IsEditable", isEditable);
                        LogContext.Log(_module.ViewModule.ModuleID, "RequestContext", "UserRoles", portalSettings.UserInfo.Social.Roles.Select(r => r.RoleName));
                        LogContext.Log(_module.ViewModule.ModuleID, "RequestContext", "CurrentUserId", portalSettings.UserId);
                        var logKey = "Query";
                        LogContext.Log(_module.ViewModule.ModuleID, logKey, "select", queryBuilder.Select);
                        //LogContext.Log(_module.ModuleID, logKey, "result", resultList);
                    }
                    //Log.Logger.DebugFormat("Query returned [{0}] results.", total);
                    if (!resultList.Any())
                    {
                        /*
                         * if (ds.Any(dsContext) && settings.Query.IsEmpty())
                         * {
                         *   //there seems to be data in de database, but we did not find it in Lucene, so probably the data isn't indexed anymore/yet
                         *   //Components.Lucene.LuceneController.Instance.ReIndexModuleData(_module.ViewModule.ModuleID, settings);
                         * }
                         */
                        //Log.Logger.DebugFormat("Query did not return any results. API request: [{0}], Lucene Filter: [{1}], Lucene Query:[{2}]", settings.Query, queryDef.Filter == null ? "" : queryDef.Filter.ToString(), queryDef.Query == null ? "" : queryDef.Query.ToString());
                        if (ds.Any(dsContext))
                        {
                            info.SetData(resultList, settings.Data);
                            info.DataExist = true;
                        }
                    }
                }
                else
                {
                    resultList = ds.GetAll(dsContext, null).Items;
                    //if (LogContext.IsLogActive)
                    //{
                    //    var logKey = "Get all data of module";
                    //    LogContext.Log(_module.ModuleID, logKey, "result", resultList);
                    //}
                }
                if (resultList.Any())
                {
                    info.SetData(resultList, settings.Data);
                }
            }
            return(templateKey);
        }
Esempio n. 9
0
 }                                             // Only for Dnn Razor helpers
 public void Render(Page page)
 {
     _renderinfo.Template = _settings.Template;
     if (_settings.TabId > 0 && _settings.ModuleId > 0) // other module
     {
         ModuleController mc = new ModuleController();
         _renderinfo.SetDataSourceModule(_settings.TabId, _settings.ModuleId, mc.GetModule(_renderinfo.ModuleId, _renderinfo.TabId, false), null, "");
     }
     else // this module
     {
         _renderinfo.SetDataSourceModule(_settings.TabId, _module.ModuleID, _module, null, "");
     }
     //start rendering
     if (_settings.Template != null)
     {
         if (!_settings.Template.DataNeeded())
         {
             _renderinfo.SetData(null, new JObject(), _settings.Data);
             _renderinfo.OutputString = GenerateOutput(page, _renderinfo.Template.MainTemplateUri(), _renderinfo.DataJson, _renderinfo.SettingsJson, _renderinfo.Template.Main);
         }
         else if (_renderinfo.Template.IsListTemplate)
         {
             LogContext.Log(_module.ModuleID, "RequestContext", "QueryParam Id", ItemId);
             // Multi items template
             if (string.IsNullOrEmpty(ItemId))
             {
                 // List template
                 if (_renderinfo.Template.Main != null)
                 {
                     // for list templates a main template need to be defined
                     _renderinfo.Files = _renderinfo.Template.Main;
                     string templateKey = GetDataList(_renderinfo, _settings, _renderinfo.Template.ClientSideData);
                     if (!string.IsNullOrEmpty(templateKey) && _renderinfo.Template.Views != null && _renderinfo.Template.Views.ContainsKey(templateKey))
                     {
                         _renderinfo.Files = _renderinfo.Template.Views[templateKey];
                     }
                     if (!_renderinfo.SettingsMissing)
                     {
                         _renderinfo.OutputString = GenerateListOutput(page, _settings.Template, _renderinfo.Files, _renderinfo.DataList, _renderinfo.SettingsJson);
                     }
                 }
             }
             else
             {
                 // detail template
                 if (_renderinfo.Template.Detail != null)
                 {
                     GetDetailData(_renderinfo, _settings);
                 }
                 if (_renderinfo.Template.Detail != null && !_renderinfo.ShowInitControl)
                 {
                     _renderinfo.Files        = _renderinfo.Template.Detail;
                     _renderinfo.OutputString = GenerateOutput(page, _settings.Template, _renderinfo.Template.Detail, _renderinfo.DataJson, _renderinfo.SettingsJson);
                 }
                 else // if itemid not corresponding to this module, show list template
                 {
                     // List template
                     if (_renderinfo.Template.Main != null)
                     {
                         // for list templates a main template need to be defined
                         _renderinfo.Files = _renderinfo.Template.Main;
                         string templateKey = GetDataList(_renderinfo, _settings, _renderinfo.Template.ClientSideData);
                         if (!string.IsNullOrEmpty(templateKey) && _renderinfo.Template.Views != null && _renderinfo.Template.Views.ContainsKey(templateKey))
                         {
                             _renderinfo.Files = _renderinfo.Template.Views[templateKey];
                         }
                         if (!_renderinfo.ShowInitControl)
                         {
                             _renderinfo.OutputString = GenerateListOutput(page, _settings.Template, _renderinfo.Files, _renderinfo.DataList, _renderinfo.SettingsJson);
                         }
                     }
                 }
             }
         }
         else
         {
             // single item template
             GetSingleData(_renderinfo, _settings);
             bool settingsNeeded = _renderinfo.Template.SettingsNeeded();
             if (!_renderinfo.ShowInitControl && (!settingsNeeded || !string.IsNullOrEmpty(_renderinfo.SettingsJson)))
             {
                 _renderinfo.OutputString = GenerateOutput(page, _renderinfo.Template.MainTemplateUri(), _renderinfo.DataJson, _renderinfo.SettingsJson, _renderinfo.Template.Main);
             }
         }
     }
 }
Esempio n. 10
0
        private string GetDataList(RenderInfo info, OpenContentModuleConfig ocModuleConfig)
        {
            var    clientSide  = info.Template.ClientSideData;
            string templateKey = "";

            info.ResetData();

            IDataSource ds        = DataSourceManager.GetDataSource(_settings.Manifest.DataSource);
            var         dsContext = OpenContentUtils.CreateDataContext(ocModuleConfig);

            IEnumerable <IDataItem> resultList = new List <IDataItem>();

            if (clientSide || !info.Files.DataInTemplate)
            {
                if (ds.Any(dsContext))
                {
                    info.SetData(resultList, ocModuleConfig.Settings.Data);
                    info.DataExist = true;
                }

                if (info.Template.Views != null)
                {
                    var indexConfig = OpenContentUtils.GetIndexConfig(info.Template);
                    templateKey = GetTemplateKey(indexConfig);
                }
            }
            else
            {
                //server side
                bool useLucene = info.Template.Manifest.Index;
                if (useLucene)
                {
                    var indexConfig = OpenContentUtils.GetIndexConfig(info.Template);
                    if (info.Template.Views != null)
                    {
                        templateKey = GetTemplateKey(indexConfig);
                    }
                    bool         isEditable   = _module.ViewModule.CheckIfEditable(ocModuleConfig);
                    QueryBuilder queryBuilder = new QueryBuilder(indexConfig);
                    queryBuilder.Build(ocModuleConfig.Settings.Query, !isEditable, ocModuleConfig.UserId, DnnLanguageUtils.GetCurrentCultureCode(), ocModuleConfig.UserRoles.FromDnnRoles(), QueryString);

                    resultList = ds.GetAll(dsContext, queryBuilder.Select).Items;
                    if (LogContext.IsLogActive)
                    {
                        //LogContext.Log(_module.ModuleID, "RequestContext", "EditMode", !addWorkFlow);
                        LogContext.Log(_module.ViewModule.ModuleId, "RequestContext", "IsEditable", isEditable);
                        LogContext.Log(_module.ViewModule.ModuleId, "RequestContext", "UserRoles", ocModuleConfig.UserRoles.Select(r => r.RoleName));
                        LogContext.Log(_module.ViewModule.ModuleId, "RequestContext", "CurrentUserId", ocModuleConfig.UserId);
                        var logKey = "Query";
                        LogContext.Log(_module.ViewModule.ModuleId, logKey, "select", queryBuilder.Select);
                        //LogContext.Log(_module.ModuleID, logKey, "result", resultList);
                    }
                    //App.Services.Logger.Debug($"Query returned [{0}] results.", total);
                    if (!resultList.Any())
                    {
                        //App.Services.Logger.Debug($"Query did not return any results. API request: [{0}], Lucene Filter: [{1}], Lucene Query:[{2}]", settings.Query, queryDef.Filter == null ? "" : queryDef.Filter.ToString(), queryDef.Query == null ? "" : queryDef.Query.ToString());
                        if (ds.Any(dsContext))
                        {
                            info.SetData(resultList, ocModuleConfig.Settings.Data);
                            info.DataExist = true;
                        }
                    }
                }
                else
                {
                    resultList = ds.GetAll(dsContext, null).Items;
                    //if (LogContext.IsLogActive)
                    //{
                    //    var logKey = "Get all data of module";
                    //    LogContext.Log(_module.ModuleID, logKey, "result", resultList);
                    //}
                }
                if (resultList.Any())
                {
                    info.SetData(resultList, ocModuleConfig.Settings.Data);
                }
            }
            return(templateKey);
        }