Browse Source
Merge pull request #8082 from abpframework/cms-kit/cmsuser-feature
CmsKit - Features refactorings & CmsUserFeature
pull/8104/head
İlkay İlknur
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with
100 additions and
47 deletions
-
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs
-
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/CmsUserFeature.cs
-
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/CommentsFeature.cs
-
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/ContentsFeature.cs
-
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/GlobalCmsKitFeatures.cs
-
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/MediaFeature.cs
-
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/PagesFeature.cs
-
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/RatingsFeature.cs
-
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/ReactionsFeature.cs
-
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/TagsFeature.cs
-
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Users/CmsUserSynchronizer.cs
-
modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs
-
modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Features/GlobalCmsKitFeatures_Tests.cs
|
|
|
@ -19,14 +19,6 @@ namespace Volo.CmsKit.Permissions |
|
|
|
contentGroup.AddChild(CmsKitAdminPermissions.Comments.Delete, L("Permission:Comments.Delete")); |
|
|
|
} |
|
|
|
|
|
|
|
if (GlobalFeatureManager.Instance.IsEnabled<ContentsFeature>()) |
|
|
|
{ |
|
|
|
var contentGroup = cmsGroup.AddPermission(CmsKitAdminPermissions.Contents.Default, L("Permission:Contents")); |
|
|
|
contentGroup.AddChild(CmsKitAdminPermissions.Contents.Create, L("Permission:Contents.Create")); |
|
|
|
contentGroup.AddChild(CmsKitAdminPermissions.Contents.Update, L("Permission:Contents.Update")); |
|
|
|
contentGroup.AddChild(CmsKitAdminPermissions.Contents.Delete, L("Permission:Contents.Delete")); |
|
|
|
} |
|
|
|
|
|
|
|
if (GlobalFeatureManager.Instance.IsEnabled<TagsFeature>()) |
|
|
|
{ |
|
|
|
var tagGroup = cmsGroup.AddPermission(CmsKitAdminPermissions.Tags.Default, L("Permission:TagManagement")); |
|
|
|
|
|
|
|
@ -0,0 +1,18 @@ |
|
|
|
using JetBrains.Annotations; |
|
|
|
using Volo.Abp.GlobalFeatures; |
|
|
|
|
|
|
|
namespace Volo.CmsKit.GlobalFeatures |
|
|
|
{ |
|
|
|
/// <summary>
|
|
|
|
/// All CmsKit Features are dependent this feature. Do not disable this manually.
|
|
|
|
/// </summary>
|
|
|
|
[GlobalFeatureName(Name)] |
|
|
|
public class CmsUserFeature : GlobalFeature |
|
|
|
{ |
|
|
|
public const string Name = "CmsKit.User"; |
|
|
|
|
|
|
|
internal CmsUserFeature([NotNull] GlobalModuleFeatures module) : base(module) |
|
|
|
{ |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -14,5 +14,16 @@ namespace Volo.CmsKit.GlobalFeatures |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public override void Enable() |
|
|
|
{ |
|
|
|
var userFeature = FeatureManager.Modules.CmsKit().User; |
|
|
|
if (!userFeature.IsEnabled) |
|
|
|
{ |
|
|
|
userFeature.Enable(); |
|
|
|
} |
|
|
|
|
|
|
|
base.Enable(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -1,17 +0,0 @@ |
|
|
|
using JetBrains.Annotations; |
|
|
|
using Volo.Abp.GlobalFeatures; |
|
|
|
|
|
|
|
namespace Volo.CmsKit.GlobalFeatures |
|
|
|
{ |
|
|
|
[GlobalFeatureName(Name)] |
|
|
|
public class ContentsFeature : GlobalFeature |
|
|
|
{ |
|
|
|
public const string Name = "CmsKit.Contents"; |
|
|
|
|
|
|
|
internal ContentsFeature( |
|
|
|
[NotNull] GlobalCmsKitFeatures cmsKit |
|
|
|
) : base(cmsKit) |
|
|
|
{ |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -17,10 +17,10 @@ namespace Volo.CmsKit.GlobalFeatures |
|
|
|
|
|
|
|
public TagsFeature Tags => GetFeature<TagsFeature>(); |
|
|
|
|
|
|
|
public ContentsFeature Contents => GetFeature<ContentsFeature>(); |
|
|
|
|
|
|
|
public PagesFeature Pages => GetFeature<PagesFeature>(); |
|
|
|
|
|
|
|
public CmsUserFeature User => GetFeature<CmsUserFeature>(); |
|
|
|
|
|
|
|
public GlobalCmsKitFeatures([NotNull] GlobalFeatureManager featureManager) |
|
|
|
: base(featureManager) |
|
|
|
{ |
|
|
|
@ -29,9 +29,9 @@ namespace Volo.CmsKit.GlobalFeatures |
|
|
|
AddFeature(new CommentsFeature(this)); |
|
|
|
AddFeature(new RatingsFeature(this)); |
|
|
|
AddFeature(new TagsFeature(this)); |
|
|
|
AddFeature(new ContentsFeature(this)); |
|
|
|
AddFeature(new PagesFeature(this)); |
|
|
|
AddFeature(new BlogsFeature(this)); |
|
|
|
AddFeature(new CmsUserFeature(this)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -14,5 +14,16 @@ namespace Volo.CmsKit.GlobalFeatures |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public override void Enable() |
|
|
|
{ |
|
|
|
var userFeature = FeatureManager.Modules.CmsKit().User; |
|
|
|
if (!userFeature.IsEnabled) |
|
|
|
{ |
|
|
|
userFeature.Enable(); |
|
|
|
} |
|
|
|
|
|
|
|
base.Enable(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -17,12 +17,12 @@ namespace Volo.CmsKit.GlobalFeatures |
|
|
|
|
|
|
|
public override void Enable() |
|
|
|
{ |
|
|
|
var contentsFeature = FeatureManager.Modules.CmsKit().Contents; |
|
|
|
if (!contentsFeature.IsEnabled) |
|
|
|
var userFeature = FeatureManager.Modules.CmsKit().User; |
|
|
|
if (!userFeature.IsEnabled) |
|
|
|
{ |
|
|
|
contentsFeature.Enable(); |
|
|
|
userFeature.Enable(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
base.Enable(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -12,7 +12,18 @@ namespace Volo.CmsKit.GlobalFeatures |
|
|
|
[NotNull] GlobalCmsKitFeatures cmsKit |
|
|
|
) : base(cmsKit) |
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public override void Enable() |
|
|
|
{ |
|
|
|
var userFeature = FeatureManager.Modules.CmsKit().User; |
|
|
|
if (!userFeature.IsEnabled) |
|
|
|
{ |
|
|
|
userFeature.Enable(); |
|
|
|
} |
|
|
|
|
|
|
|
base.Enable(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -13,5 +13,16 @@ namespace Volo.CmsKit.GlobalFeatures |
|
|
|
) : base(cmsKit) |
|
|
|
{ |
|
|
|
} |
|
|
|
|
|
|
|
public override void Enable() |
|
|
|
{ |
|
|
|
var userFeature = FeatureManager.Modules.CmsKit().User; |
|
|
|
if (!userFeature.IsEnabled) |
|
|
|
{ |
|
|
|
userFeature.Enable(); |
|
|
|
} |
|
|
|
|
|
|
|
base.Enable(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -13,5 +13,16 @@ namespace Volo.CmsKit.GlobalFeatures |
|
|
|
) : base(cmsKit) |
|
|
|
{ |
|
|
|
} |
|
|
|
|
|
|
|
public override void Enable() |
|
|
|
{ |
|
|
|
var userFeature = FeatureManager.Modules.CmsKit().User; |
|
|
|
if (!userFeature.IsEnabled) |
|
|
|
{ |
|
|
|
userFeature.Enable(); |
|
|
|
} |
|
|
|
|
|
|
|
base.Enable(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -1,8 +1,11 @@ |
|
|
|
using System.Threading.Tasks; |
|
|
|
using System.Linq; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Volo.Abp.DependencyInjection; |
|
|
|
using Volo.Abp.Domain.Entities.Events.Distributed; |
|
|
|
using Volo.Abp.EventBus.Distributed; |
|
|
|
using Volo.Abp.GlobalFeatures; |
|
|
|
using Volo.Abp.Users; |
|
|
|
using Volo.CmsKit.GlobalFeatures; |
|
|
|
|
|
|
|
namespace Volo.CmsKit.Users |
|
|
|
{ |
|
|
|
@ -24,6 +27,11 @@ namespace Volo.CmsKit.Users |
|
|
|
|
|
|
|
public virtual async Task HandleEventAsync(EntityUpdatedEto<UserEto> eventData) |
|
|
|
{ |
|
|
|
if (!GlobalFeatureManager.Instance.IsEnabled<CmsUserFeature>()) |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
var user = await UserRepository.FindAsync(eventData.Entity.Id); |
|
|
|
if (user == null) |
|
|
|
{ |
|
|
|
|
|
|
|
@ -1,19 +1,18 @@ |
|
|
|
using System; |
|
|
|
using System.Linq; |
|
|
|
using Microsoft.EntityFrameworkCore; |
|
|
|
using Microsoft.EntityFrameworkCore; |
|
|
|
using System; |
|
|
|
using Volo.Abp; |
|
|
|
using Volo.Abp.EntityFrameworkCore.Modeling; |
|
|
|
using Volo.Abp.GlobalFeatures; |
|
|
|
using Volo.CmsKit.Comments; |
|
|
|
using Volo.CmsKit.Reactions; |
|
|
|
using Volo.CmsKit.Users; |
|
|
|
using Volo.Abp.Users.EntityFrameworkCore; |
|
|
|
using Volo.CmsKit.Blogs; |
|
|
|
using Volo.CmsKit.Comments; |
|
|
|
using Volo.CmsKit.GlobalFeatures; |
|
|
|
using Volo.CmsKit.MediaDescriptors; |
|
|
|
using Volo.CmsKit.Pages; |
|
|
|
using Volo.CmsKit.Ratings; |
|
|
|
using Volo.CmsKit.Reactions; |
|
|
|
using Volo.CmsKit.Tags; |
|
|
|
using Volo.CmsKit.Blogs; |
|
|
|
using Volo.CmsKit.MediaDescriptors; |
|
|
|
using Volo.CmsKit.Users; |
|
|
|
|
|
|
|
namespace Volo.CmsKit.EntityFrameworkCore |
|
|
|
{ |
|
|
|
@ -32,8 +31,7 @@ namespace Volo.CmsKit.EntityFrameworkCore |
|
|
|
|
|
|
|
optionsAction?.Invoke(options); |
|
|
|
|
|
|
|
//TODO: What if only CMSKit Pro features are enabled? This is kinda workaround for now
|
|
|
|
if (GlobalFeatureManager.Instance.Modules.CmsKit().GetFeatures().Any(f => f.IsEnabled)) |
|
|
|
if (!GlobalFeatureManager.Instance.IsEnabled<CmsUserFeature>()) |
|
|
|
{ |
|
|
|
builder.Entity<CmsUser>(b => |
|
|
|
{ |
|
|
|
|
|
|
|
@ -18,12 +18,11 @@ namespace Volo.CmsKit.Features |
|
|
|
public void Page_Feature_Should_Enable_Dependent_Features() |
|
|
|
{ |
|
|
|
_cmsKitFeatures.DisableAll(); |
|
|
|
_cmsKitFeatures.Contents.IsEnabled.ShouldBeFalse(); |
|
|
|
_cmsKitFeatures.User.IsEnabled.ShouldBeFalse(); |
|
|
|
_cmsKitFeatures.Pages.IsEnabled.ShouldBeFalse(); |
|
|
|
|
|
|
|
_cmsKitFeatures.Pages.Enable(); |
|
|
|
|
|
|
|
_cmsKitFeatures.Contents.IsEnabled.ShouldBeTrue(); |
|
|
|
_cmsKitFeatures.User.IsEnabled.ShouldBeTrue(); |
|
|
|
_cmsKitFeatures.Pages.IsEnabled.ShouldBeTrue(); |
|
|
|
} |
|
|
|
} |
|
|
|
|