From 851fc12fd3c21f2b57ffea8d2b825c5f757c41c2 Mon Sep 17 00:00:00 2001 From: Qingxiao Ren Date: Mon, 9 Jan 2023 16:02:34 +0800 Subject: [PATCH 1/2] using AuthService instead of OAuthService --- .../app-nolayers/angular/src/app/home/home.component.ts | 5 ++--- templates/app/angular/src/app/home/home.component.ts | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/templates/app-nolayers/angular/src/app/home/home.component.ts b/templates/app-nolayers/angular/src/app/home/home.component.ts index 5e19367b34..a721a23984 100644 --- a/templates/app-nolayers/angular/src/app/home/home.component.ts +++ b/templates/app-nolayers/angular/src/app/home/home.component.ts @@ -1,6 +1,5 @@ import { AuthService } from '@abp/ng.core'; import { Component } from '@angular/core'; -import { OAuthService } from 'angular-oauth2-oidc'; @Component({ selector: 'app-home', @@ -9,10 +8,10 @@ import { OAuthService } from 'angular-oauth2-oidc'; }) export class HomeComponent { get hasLoggedIn(): boolean { - return this.oAuthService.hasValidAccessToken(); + return this.authService.isAuthenticated; } - constructor(private oAuthService: OAuthService, private authService: AuthService) {} + constructor(private authService: AuthService) {} login() { this.authService.navigateToLogin(); diff --git a/templates/app/angular/src/app/home/home.component.ts b/templates/app/angular/src/app/home/home.component.ts index 5e19367b34..a721a23984 100644 --- a/templates/app/angular/src/app/home/home.component.ts +++ b/templates/app/angular/src/app/home/home.component.ts @@ -1,6 +1,5 @@ import { AuthService } from '@abp/ng.core'; import { Component } from '@angular/core'; -import { OAuthService } from 'angular-oauth2-oidc'; @Component({ selector: 'app-home', @@ -9,10 +8,10 @@ import { OAuthService } from 'angular-oauth2-oidc'; }) export class HomeComponent { get hasLoggedIn(): boolean { - return this.oAuthService.hasValidAccessToken(); + return this.authService.isAuthenticated; } - constructor(private oAuthService: OAuthService, private authService: AuthService) {} + constructor(private authService: AuthService) {} login() { this.authService.navigateToLogin(); From ea53529eaacb0a2918a1cd4b3bc6ebb4044eb3f2 Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Mon, 23 Jan 2023 13:42:56 +0300 Subject: [PATCH 2/2] cms-kit: Invalidate default home page cache when it's changed --- .../CmsKit/Admin/Pages/PageAdminAppService.cs | 25 +++++++++++++++++-- .../Volo/CmsKit/Pages/PageConsts.cs | 2 ++ .../Volo/CmsKit/Pages/PageCacheItem.cs | 18 +++++++++++++ .../Public/Pages/PagePublicAppService.cs | 15 ++++++----- .../PublicApplicationAutoMapperProfile.cs | 4 +++ 5 files changed, 54 insertions(+), 10 deletions(-) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageCacheItem.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs index 7c3f3fd71e..16c39dd859 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Volo.Abp.Application.Dtos; +using Volo.Abp.Caching; using Volo.Abp.Data; using Volo.Abp.Features; using Volo.Abp.GlobalFeatures; @@ -21,13 +22,17 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi protected IPageRepository PageRepository { get; } protected PageManager PageManager { get; } + + protected IDistributedCache PageCache { get; } public PageAdminAppService( IPageRepository pageRepository, - PageManager pageManager) + PageManager pageManager, + IDistributedCache pageCache) { PageRepository = pageRepository; PageManager = pageManager; + PageCache = pageCache; } public virtual async Task GetAsync(Guid id) @@ -67,6 +72,10 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi public virtual async Task UpdateAsync(Guid id, UpdatePageInputDto input) { var page = await PageRepository.GetAsync(id); + if (page.IsHomePage) + { + await InvalidateDefaultHomePageCacheAsync(considerUow: true); + } await PageManager.SetSlugAsync(page, input.Slug); @@ -84,7 +93,13 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi [Authorize(CmsKitAdminPermissions.Pages.Delete)] public virtual async Task DeleteAsync(Guid id) { - await PageRepository.DeleteAsync(id); + var page = await PageRepository.GetAsync(id); + if (page.IsHomePage) + { + await InvalidateDefaultHomePageCacheAsync(considerUow: true); + } + + await PageRepository.DeleteAsync(page); } [Authorize(CmsKitAdminPermissions.Pages.SetAsHomePage)] @@ -93,5 +108,11 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi var page = await PageRepository.GetAsync(id); await PageManager.SetHomePageAsync(page); + await InvalidateDefaultHomePageCacheAsync(); + } + + protected virtual async Task InvalidateDefaultHomePageCacheAsync(bool considerUow = false) + { + await PageCache.RemoveAsync(PageConsts.DefaultHomePageCacheKey, considerUow: considerUow); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Pages/PageConsts.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Pages/PageConsts.cs index ff07df87a1..69788463e2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Pages/PageConsts.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Pages/PageConsts.cs @@ -15,6 +15,8 @@ public static class PageConsts public static int MaxScriptLength { get; set; } = int.MaxValue; public static int MaxStyleLength { get; set; } = int.MaxValue; + + public static string DefaultHomePageCacheKey { get; set; } = "DefaultHomePage"; private static string _urlPrefix = "/"; public static string UrlPrefix { diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageCacheItem.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageCacheItem.cs new file mode 100644 index 0000000000..77b98c5b24 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageCacheItem.cs @@ -0,0 +1,18 @@ +using System; + +namespace Volo.CmsKit.Pages; + +public class PageCacheItem +{ + public Guid Id { get; set; } + + public string Title { get; set; } + + public string Slug { get; set; } + + public string Content { get; set; } + + public string Script { get; set; } + + public string Style { get; set; } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PagePublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PagePublicAppService.cs index b151775d8a..9940dceab1 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PagePublicAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PagePublicAppService.cs @@ -18,9 +18,9 @@ public class PagePublicAppService : CmsKitPublicAppServiceBase, IPagePublicAppSe protected IPageRepository PageRepository { get; } protected PageManager PageManager { get; } - protected IDistributedCache PageCache { get; } + protected IDistributedCache PageCache { get; } - public PagePublicAppService(IPageRepository pageRepository, PageManager pageManager, IDistributedCache pageCache) + public PagePublicAppService(IPageRepository pageRepository, PageManager pageManager, IDistributedCache pageCache) { PageRepository = pageRepository; PageManager = pageManager; @@ -30,7 +30,6 @@ public class PagePublicAppService : CmsKitPublicAppServiceBase, IPagePublicAppSe public virtual async Task FindBySlugAsync(string slug) { var page = await PageRepository.FindBySlugAsync(slug); - if (page == null) { return null; @@ -41,8 +40,8 @@ public class PagePublicAppService : CmsKitPublicAppServiceBase, IPagePublicAppSe public virtual async Task FindDefaultHomePageAsync() { - var pageDto = await PageCache.GetAsync("DefaultHomePage"); - if (pageDto is null) + var pageCacheItem = await PageCache.GetAsync(PageConsts.DefaultHomePageCacheKey); + if (pageCacheItem is null) { var page = await PageManager.GetHomePageAsync(); if (page is null) @@ -50,12 +49,12 @@ public class PagePublicAppService : CmsKitPublicAppServiceBase, IPagePublicAppSe return null; } - pageDto = ObjectMapper.Map(page); + pageCacheItem = ObjectMapper.Map(page); - await PageCache.SetAsync("DefaultHomePage", pageDto, + await PageCache.SetAsync(PageConsts.DefaultHomePageCacheKey, pageCacheItem, new DistributedCacheEntryOptions { AbsoluteExpiration = DateTimeOffset.Now.AddHours(1) }); } - return pageDto; + return ObjectMapper.Map(pageCacheItem); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs index 92620743ff..a2ee45266b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs @@ -30,6 +30,10 @@ public class PublicApplicationAutoMapperProfile : Profile CreateMap(); + CreateMap(); + + CreateMap(); + CreateMap(); CreateMap();