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
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"));
}
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"));

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

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()
{
var contentsFeature = FeatureManager.Modules.CmsKit().Contents;
if (!contentsFeature.IsEnabled)
var userFeature = FeatureManager.Modules.CmsKit().User;
if (!userFeature.IsEnabled)
{
contentsFeature.Enable();
userFeature.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
) : 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)
{
}
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)
{
}
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.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)
{

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

@ -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 =>
{

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

Loading…
Cancel
Save