diff --git a/Volo.Abp.sln b/Volo.Abp.sln
index 858a02c910..33b57a38e5 100644
--- a/Volo.Abp.sln
+++ b/Volo.Abp.sln
@@ -258,6 +258,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Settings.Domain.Sh
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Abp.Settings", "Abp.Settings", "{D62B8D43-B8D9-4FC6-97E2-DC54CD765915}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Permissions", "src\Volo.Abp.Permissions\Volo.Abp.Permissions.csproj", "{0FDD21F9-9E73-4DB5-8356-A110D3FBDB1D}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -672,6 +674,10 @@ Global
{27F990E2-6820-4159-B54A-59C8ADED8D28}.Debug|Any CPU.Build.0 = Debug|Any CPU
{27F990E2-6820-4159-B54A-59C8ADED8D28}.Release|Any CPU.ActiveCfg = Release|Any CPU
{27F990E2-6820-4159-B54A-59C8ADED8D28}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0FDD21F9-9E73-4DB5-8356-A110D3FBDB1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0FDD21F9-9E73-4DB5-8356-A110D3FBDB1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0FDD21F9-9E73-4DB5-8356-A110D3FBDB1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0FDD21F9-9E73-4DB5-8356-A110D3FBDB1D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -797,6 +803,7 @@ Global
{61422EC8-8FFB-48EA-B4B5-527E29077930} = {37087D1B-3693-4E96-983D-A69F210BDE53}
{27F990E2-6820-4159-B54A-59C8ADED8D28} = {D62B8D43-B8D9-4FC6-97E2-DC54CD765915}
{D62B8D43-B8D9-4FC6-97E2-DC54CD765915} = {3B481ACC-5BB3-4189-880C-5F7A27EAEB70}
+ {0FDD21F9-9E73-4DB5-8356-A110D3FBDB1D} = {4C753F64-0C93-4D65-96C2-A40893AFC1E8}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5}
diff --git a/src/Volo.Abp.Permissions/Volo.Abp.Permissions.csproj b/src/Volo.Abp.Permissions/Volo.Abp.Permissions.csproj
new file mode 100644
index 0000000000..4c2001f464
--- /dev/null
+++ b/src/Volo.Abp.Permissions/Volo.Abp.Permissions.csproj
@@ -0,0 +1,20 @@
+
+
+
+
+
+ netstandard2.0
+ Volo.Abp.Permissions
+ Volo.Abp.Permissions
+ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
+ false
+ false
+ false
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Volo.Abp.Permissions/Volo/Abp/Permissions/AbpAuthorizationModule.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/AbpAuthorizationModule.cs
new file mode 100644
index 0000000000..c414b0e005
--- /dev/null
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/AbpAuthorizationModule.cs
@@ -0,0 +1,13 @@
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.Modularity;
+
+namespace Volo.Abp.Permissions
+{
+ public class AbpPermissionsModule : AbpModule
+ {
+ public override void ConfigureServices(IServiceCollection services)
+ {
+ services.AddAssemblyOf();
+ }
+ }
+}
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionContext.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionDefinitionContext.cs
similarity index 78%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionContext.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionDefinitionContext.cs
index 9205f375dc..9aaf8b348f 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionContext.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionDefinitionContext.cs
@@ -1,4 +1,4 @@
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public interface IPermissionDefinitionContext
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionManager.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionDefinitionManager.cs
similarity index 85%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionManager.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionDefinitionManager.cs
index 6ba0d29276..1bb280d3d3 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionManager.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionDefinitionManager.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using JetBrains.Annotations;
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public interface IPermissionDefinitionManager
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionProvider.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionDefinitionProvider.cs
similarity index 71%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionProvider.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionDefinitionProvider.cs
index ef92125595..a778a29bfb 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionProvider.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionDefinitionProvider.cs
@@ -1,4 +1,4 @@
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public interface IPermissionDefinitionProvider
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionManager.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionManager.cs
similarity index 94%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionManager.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionManager.cs
index 7e587f7cd0..a2da477a27 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionManager.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionManager.cs
@@ -2,7 +2,7 @@
using System.Threading.Tasks;
using JetBrains.Annotations;
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
//TODO: Change fallback to inherit?
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionStore.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionStore.cs
similarity index 93%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionStore.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionStore.cs
index 46fa9c3b8e..54d7436cf5 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionStore.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionStore.cs
@@ -2,7 +2,7 @@
using System.Threading.Tasks;
using JetBrains.Annotations;
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public interface IPermissionStore
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionValueProvider.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionValueProvider.cs
similarity index 91%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionValueProvider.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionValueProvider.cs
index 282f3d59cf..7b80ecf217 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionValueProvider.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionValueProvider.cs
@@ -1,7 +1,7 @@
using System.Threading.Tasks;
using JetBrains.Annotations;
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public interface IPermissionValueProvider
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/NullPermissionStore.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/NullPermissionStore.cs
similarity index 96%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/NullPermissionStore.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/NullPermissionStore.cs
index 6aab68c7d3..90b59b1c19 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/NullPermissionStore.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/NullPermissionStore.cs
@@ -4,7 +4,7 @@ using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.DependencyInjection;
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public class NullPermissionStore : IPermissionStore, ISingletonDependency
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinition.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinition.cs
similarity index 93%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinition.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinition.cs
index b4696132e9..8f145b4987 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinition.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinition.cs
@@ -1,4 +1,4 @@
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public class PermissionDefinition
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionContext.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinitionContext.cs
similarity index 95%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionContext.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinitionContext.cs
index 6328779e91..b5daa2140b 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionContext.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinitionContext.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.Collections.Immutable;
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public class PermissionDefinitionContext : IPermissionDefinitionContext
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionManager.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinitionManager.cs
similarity index 98%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionManager.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinitionManager.cs
index ad580961d0..6e2f437649 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionManager.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinitionManager.cs
@@ -6,7 +6,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Volo.Abp.DependencyInjection;
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public class PermissionDefinitionManager : IPermissionDefinitionManager, ISingletonDependency
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionProvider.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinitionProvider.cs
similarity index 83%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionProvider.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinitionProvider.cs
index fb17c4369d..61b85d6b54 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionProvider.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionDefinitionProvider.cs
@@ -1,6 +1,6 @@
using Volo.Abp.DependencyInjection;
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public abstract class PermissionDefinitionProvider : IPermissionDefinitionProvider, ISingletonDependency
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionGrantInfo.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionGrantInfo.cs
similarity index 88%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionGrantInfo.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionGrantInfo.cs
index 15517f624e..3fec6edbc8 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionGrantInfo.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionGrantInfo.cs
@@ -1,6 +1,6 @@
using JetBrains.Annotations;
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public class PermissionGrantInfo
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionManager.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionManager.cs
similarity index 99%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionManager.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionManager.cs
index 38df3bacac..61854ac080 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionManager.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionManager.cs
@@ -6,7 +6,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Volo.Abp.DependencyInjection;
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public class PermissionManager : IPermissionManager, ISingletonDependency
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionManagerSyncExtensions.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionManagerSyncExtensions.cs
similarity index 82%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionManagerSyncExtensions.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionManagerSyncExtensions.cs
index eac6e9be37..08a8b1698d 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionManagerSyncExtensions.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionManagerSyncExtensions.cs
@@ -1,4 +1,4 @@
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public static class PermissionManagerSyncExtensions
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionOptions.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionOptions.cs
similarity index 90%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionOptions.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionOptions.cs
index 30c1170e49..a50af4e5fc 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionOptions.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionOptions.cs
@@ -1,6 +1,6 @@
using Volo.Abp.Collections;
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public class PermissionOptions
{
diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionValueProvider.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionValueProvider.cs
similarity index 94%
rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionValueProvider.cs
rename to src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionValueProvider.cs
index d04086db01..6313d57303 100644
--- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionValueProvider.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionValueProvider.cs
@@ -1,7 +1,7 @@
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
-namespace Volo.Abp.Authorization.Permissions
+namespace Volo.Abp.Permissions
{
public abstract class PermissionValueProvider : IPermissionValueProvider, ISingletonDependency
{