Browse Source

Merge pull request #8082 from abpframework/cms-kit/cmsuser-feature

CmsKit - Features refactorings & CmsUserFeature
pull/8104/head
İlkay İlknur 6 years ago
committed by GitHub
parent
commit
9f1a91cf58
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs
  2. 18
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/CmsUserFeature.cs
  3. 11
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/CommentsFeature.cs
  4. 17
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/ContentsFeature.cs
  5. 6
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/GlobalCmsKitFeatures.cs
  6. 11
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/MediaFeature.cs
  7. 8
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/PagesFeature.cs
  8. 13
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/RatingsFeature.cs
  9. 11
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/ReactionsFeature.cs
  10. 11
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/TagsFeature.cs
  11. 10
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Users/CmsUserSynchronizer.cs
  12. 18
      modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs
  13. 5
      modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Features/GlobalCmsKitFeatures_Tests.cs

8
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs

@ -19,14 +19,6 @@ namespace Volo.CmsKit.Permissions
contentGroup.AddChild(CmsKitAdminPermissions.Comments.Delete, L("Permission:Comments.Delete")); 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>()) if (GlobalFeatureManager.Instance.IsEnabled<TagsFeature>())
{ {
var tagGroup = cmsGroup.AddPermission(CmsKitAdminPermissions.Tags.Default, L("Permission:TagManagement")); var tagGroup = cmsGroup.AddPermission(CmsKitAdminPermissions.Tags.Default, L("Permission:TagManagement"));

18
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/CmsUserFeature.cs

@ -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)
{
}
}
}

11
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/CommentsFeature.cs

@ -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
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/ContentsFeature.cs

@ -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)
{
}
}
}

6
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/GlobalCmsKitFeatures.cs

@ -17,10 +17,10 @@ namespace Volo.CmsKit.GlobalFeatures
public TagsFeature Tags => GetFeature<TagsFeature>(); public TagsFeature Tags => GetFeature<TagsFeature>();
public ContentsFeature Contents => GetFeature<ContentsFeature>();
public PagesFeature Pages => GetFeature<PagesFeature>(); public PagesFeature Pages => GetFeature<PagesFeature>();
public CmsUserFeature User => GetFeature<CmsUserFeature>();
public GlobalCmsKitFeatures([NotNull] GlobalFeatureManager featureManager) public GlobalCmsKitFeatures([NotNull] GlobalFeatureManager featureManager)
: base(featureManager) : base(featureManager)
{ {
@ -29,9 +29,9 @@ namespace Volo.CmsKit.GlobalFeatures
AddFeature(new CommentsFeature(this)); AddFeature(new CommentsFeature(this));
AddFeature(new RatingsFeature(this)); AddFeature(new RatingsFeature(this));
AddFeature(new TagsFeature(this)); AddFeature(new TagsFeature(this));
AddFeature(new ContentsFeature(this));
AddFeature(new PagesFeature(this)); AddFeature(new PagesFeature(this));
AddFeature(new BlogsFeature(this)); AddFeature(new BlogsFeature(this));
AddFeature(new CmsUserFeature(this));
} }
} }
} }

11
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/MediaFeature.cs

@ -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();
}
} }
} }

8
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/PagesFeature.cs

@ -17,12 +17,12 @@ namespace Volo.CmsKit.GlobalFeatures
public override void Enable() public override void Enable()
{ {
var contentsFeature = FeatureManager.Modules.CmsKit().Contents; var userFeature = FeatureManager.Modules.CmsKit().User;
if (!contentsFeature.IsEnabled) if (!userFeature.IsEnabled)
{ {
contentsFeature.Enable(); userFeature.Enable();
} }
base.Enable(); base.Enable();
} }
} }

13
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/RatingsFeature.cs

@ -12,7 +12,18 @@ namespace Volo.CmsKit.GlobalFeatures
[NotNull] GlobalCmsKitFeatures cmsKit [NotNull] GlobalCmsKitFeatures cmsKit
) : base(cmsKit) ) : base(cmsKit)
{ {
}
public override void Enable()
{
var userFeature = FeatureManager.Modules.CmsKit().User;
if (!userFeature.IsEnabled)
{
userFeature.Enable();
}
base.Enable();
} }
} }
} }

11
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/ReactionsFeature.cs

@ -13,5 +13,16 @@ namespace Volo.CmsKit.GlobalFeatures
) : base(cmsKit) ) : base(cmsKit)
{ {
} }
public override void Enable()
{
var userFeature = FeatureManager.Modules.CmsKit().User;
if (!userFeature.IsEnabled)
{
userFeature.Enable();
}
base.Enable();
}
} }
} }

11
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/GlobalFeatures/TagsFeature.cs

@ -13,5 +13,16 @@ namespace Volo.CmsKit.GlobalFeatures
) : base(cmsKit) ) : base(cmsKit)
{ {
} }
public override void Enable()
{
var userFeature = FeatureManager.Modules.CmsKit().User;
if (!userFeature.IsEnabled)
{
userFeature.Enable();
}
base.Enable();
}
} }
} }

10
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Users/CmsUserSynchronizer.cs

@ -1,8 +1,11 @@
using System.Threading.Tasks; using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Entities.Events.Distributed; using Volo.Abp.Domain.Entities.Events.Distributed;
using Volo.Abp.EventBus.Distributed; using Volo.Abp.EventBus.Distributed;
using Volo.Abp.GlobalFeatures;
using Volo.Abp.Users; using Volo.Abp.Users;
using Volo.CmsKit.GlobalFeatures;
namespace Volo.CmsKit.Users namespace Volo.CmsKit.Users
{ {
@ -24,6 +27,11 @@ namespace Volo.CmsKit.Users
public virtual async Task HandleEventAsync(EntityUpdatedEto<UserEto> eventData) public virtual async Task HandleEventAsync(EntityUpdatedEto<UserEto> eventData)
{ {
if (!GlobalFeatureManager.Instance.IsEnabled<CmsUserFeature>())
{
return;
}
var user = await UserRepository.FindAsync(eventData.Entity.Id); var user = await UserRepository.FindAsync(eventData.Entity.Id);
if (user == null) if (user == null)
{ {

18
modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs

@ -1,19 +1,18 @@
using System; using Microsoft.EntityFrameworkCore;
using System.Linq; using System;
using Microsoft.EntityFrameworkCore;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.EntityFrameworkCore.Modeling; using Volo.Abp.EntityFrameworkCore.Modeling;
using Volo.Abp.GlobalFeatures; using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.Comments;
using Volo.CmsKit.Reactions;
using Volo.CmsKit.Users;
using Volo.Abp.Users.EntityFrameworkCore; using Volo.Abp.Users.EntityFrameworkCore;
using Volo.CmsKit.Blogs;
using Volo.CmsKit.Comments;
using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.MediaDescriptors;
using Volo.CmsKit.Pages; using Volo.CmsKit.Pages;
using Volo.CmsKit.Ratings; using Volo.CmsKit.Ratings;
using Volo.CmsKit.Reactions;
using Volo.CmsKit.Tags; using Volo.CmsKit.Tags;
using Volo.CmsKit.Blogs; using Volo.CmsKit.Users;
using Volo.CmsKit.MediaDescriptors;
namespace Volo.CmsKit.EntityFrameworkCore namespace Volo.CmsKit.EntityFrameworkCore
{ {
@ -32,8 +31,7 @@ namespace Volo.CmsKit.EntityFrameworkCore
optionsAction?.Invoke(options); optionsAction?.Invoke(options);
//TODO: What if only CMSKit Pro features are enabled? This is kinda workaround for now if (!GlobalFeatureManager.Instance.IsEnabled<CmsUserFeature>())
if (GlobalFeatureManager.Instance.Modules.CmsKit().GetFeatures().Any(f => f.IsEnabled))
{ {
builder.Entity<CmsUser>(b => builder.Entity<CmsUser>(b =>
{ {

5
modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Features/GlobalCmsKitFeatures_Tests.cs

@ -18,12 +18,11 @@ namespace Volo.CmsKit.Features
public void Page_Feature_Should_Enable_Dependent_Features() public void Page_Feature_Should_Enable_Dependent_Features()
{ {
_cmsKitFeatures.DisableAll(); _cmsKitFeatures.DisableAll();
_cmsKitFeatures.Contents.IsEnabled.ShouldBeFalse(); _cmsKitFeatures.User.IsEnabled.ShouldBeFalse();
_cmsKitFeatures.Pages.IsEnabled.ShouldBeFalse(); _cmsKitFeatures.Pages.IsEnabled.ShouldBeFalse();
_cmsKitFeatures.Pages.Enable(); _cmsKitFeatures.Pages.Enable();
_cmsKitFeatures.User.IsEnabled.ShouldBeTrue();
_cmsKitFeatures.Contents.IsEnabled.ShouldBeTrue();
_cmsKitFeatures.Pages.IsEnabled.ShouldBeTrue(); _cmsKitFeatures.Pages.IsEnabled.ShouldBeTrue();
} }
} }

Loading…
Cancel
Save