예제 #1
0
 public PageItem(PagesBrowseModule module, PageDefinition page, ModuleDefinition pageSettings)
 {
     Module         = module;
     PageEditModule = pageSettings;
     ObjectSupport.CopyData(page, this);
     Anonymous      = page.IsAuthorized_View_Anonymous();
     Users          = page.IsAuthorized_View_AnyUser();
     Editors        = page.IsAuthorized_View_Editor();
     Administrators = page.IsAuthorized_View_Administrator();
 }
예제 #2
0
 private bool ValidForNewsSiteMap(PageDefinition page)
 {
     if (!string.IsNullOrWhiteSpace(page.RedirectToPageUrl)) // no redirected pages
     {
         return(false);
     }
     if (!page.IsAuthorized_View_Anonymous()) // only pages that can be accessed by anonymous users
     {
         return(false);
     }
     return(true);
 }
예제 #3
0
 private bool ValidForSiteMap(PageDefinition page)
 {
     if (!string.IsNullOrWhiteSpace(page.RedirectToPageUrl)) // no redirected pages
     {
         return(false);
     }
     if (!page.IsAuthorized_View_Anonymous()) // only pages that can be accessed by anonymous users
     {
         return(false);
     }
     if (page.SiteMapPriority == PageDefinition.SiteMapPriorityEnum.Excluded) // excluded from site map
     {
         return(false);
     }
     return(true);
 }
예제 #4
0
 public bool WantPage(PageDefinition page)
 {
     if (!page.WantSearch)
     {
         Logging.AddLog("No search keywords wanted for page {0}", page.Url);
         return(false);
     }
     if (!string.IsNullOrWhiteSpace(page.RedirectToPageUrl))   // only search pages that aren't redirected
     {
         Logging.AddLog("No search keywords for page {0} as it is redirected", page.Url);
         return(false);
     }
     if (!page.IsAuthorized_View_Anonymous() && !page.IsAuthorized_View_AnyUser())
     {
         Logging.AddLog("No search keywords for page {0} - neither Anonymous nor User role has access to the page", page.Url);
         return(false);
     }
     return(true);
 }
예제 #5
0
 private void AddPage(List <PageBarInfo.PanelEntry> list, PageDefinition pageDef, bool popup)
 {
     if (pageDef != null && pageDef.IsAuthorized_View())
     {
         // If a page is authorized for anonymous but not users, we suppress it if we're Editor, Admin, Superuser, etc. to avoid cases where we
         // have 2 of the same pages, one for anonymous users, the other for logged on users.
         if (Manager.HaveUser && pageDef.IsAuthorized_View_Anonymous() && !pageDef.IsAuthorized_View_AnyUser())
         {
             return;
         }
         list.Add(new PageBarInfo.PanelEntry {
             Url      = pageDef.EvaluatedCanonicalUrl,
             Caption  = pageDef.Title,
             ToolTip  = pageDef.Description,
             ImageUrl = GetImage(pageDef),
             Popup    = popup
         });
     }
 }
예제 #6
0
 private async Task SearchPageAsync(SearchWords searchWords, PageDefinition page)
 {
     if (!searchWords.WantPage(page))
     {
         return;
     }
     if (await searchWords.SetUrlAsync(page.Url, page.PageSecurity, page.Title, page.Description, page.Created, page.Updated, page.IsAuthorized_View_Anonymous(), page.IsAuthorized_View_AnyUser()))
     {
         searchWords.AddKeywords(page.Keywords);
         foreach (var m in page.ModuleDefinitions)
         {
             Guid             modGuid = m.ModuleGuid;
             ModuleDefinition mod     = null;
             try {
                 mod = await ModuleDefinition.LoadAsync(m.ModuleGuid);
             } catch (Exception ex) {
                 Logging.AddErrorLog("An error occurred retrieving module {0} in page {1}", m.ModuleGuid, page.Url, ex);
             }
             if (mod != null)
             {
                 SearchModule(searchWords, mod);
             }
         }
         await searchWords.SaveAsync();
     }
 }
예제 #7
0
        // ISEARCHDYNAMICURLS
        // ISEARCHDYNAMICURLS
        // ISEARCHDYNAMICURLS

        public async Task KeywordsForDynamicUrlsAsync(ISearchWords searchWords)
        {
            using (this) {
                BlogConfigData config = await BlogConfigDataProvider.GetConfigAsync();

                List <DataProviderFilterInfo> filters = DataProviderFilterInfo.Join(null, new DataProviderFilterInfo {
                    Field = nameof(BlogEntry.Published), Operator = "==", Value = true
                });
                DataProviderGetRecords <BlogEntry> entries = await GetItemsAsync(0, 0, null, filters);

                foreach (BlogEntry entry in entries.Data)
                {
                    string url = await BlogConfigData.GetEntryCanonicalNameAsync(entry.Identity);

                    PageDefinition page = await PageDefinition.LoadFromUrlAsync(url);

                    if (page == null)
                    {
                        return;               // there is no such root page
                    }
                    if (!searchWords.WantPage(page))
                    {
                        return;
                    }

                    if (await searchWords.SetUrlAsync(url, page.PageSecurity, entry.Title, entry.DisplayableSummaryText, entry.DateCreated, entry.DateUpdated, page.IsAuthorized_View_Anonymous(), page.IsAuthorized_View_AnyUser()))
                    {
                        searchWords.AddObjectContents(entry);
                        using (BlogCommentDataProvider commentDP = new BlogCommentDataProvider(entry.Identity)) {
                            DataProviderGetRecords <BlogComment> comments = await commentDP.GetItemsAsync(0, 0, null, null);

                            foreach (BlogComment comment in comments.Data)
                            {
                                searchWords.AddObjectContents(comment);
                            }
                        }
                        await searchWords.SaveAsync();
                    }
                }
            }
        }