diff --git a/Volo.Abp.sln b/Volo.Abp.sln
index 4969f315ae..d22f0dd3ca 100644
--- a/Volo.Abp.sln
+++ b/Volo.Abp.sln
@@ -258,18 +258,24 @@ 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}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions", "src\Volo.Abp.Permissions\Volo.Abp.Permissions.csproj", "{0FDD21F9-9E73-4DB5-8356-A110D3FBDB1D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Abp.Permissions", "Abp.Permissions", "{055F4AC0-46C4-4E99-89CD-0F30D4A97382}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Permissions.Domain", "src\Volo.Abp.Permissions.Domain\Volo.Abp.Permissions.Domain.csproj", "{D77E0662-8404-43C5-9C46-6289EA207A40}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions.Domain", "src\Volo.Abp.Permissions.Domain\Volo.Abp.Permissions.Domain.csproj", "{D77E0662-8404-43C5-9C46-6289EA207A40}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Permissions.Domain.Shared", "src\Volo.Abp.Permissions.Domain.Shared\Volo.Abp.Permissions.Domain.Shared.csproj", "{E4D0326C-515D-46FA-AF7E-1AC32155BD03}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions.Domain.Shared", "src\Volo.Abp.Permissions.Domain.Shared\Volo.Abp.Permissions.Domain.Shared.csproj", "{E4D0326C-515D-46FA-AF7E-1AC32155BD03}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Permissions.EntityFrameworkCore", "src\Volo.Abp.Permissions.EntityFrameworkCore\Volo.Abp.Permissions.EntityFrameworkCore.csproj", "{2300E155-2621-4FCF-BD44-B61BA5A92B82}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions.EntityFrameworkCore", "src\Volo.Abp.Permissions.EntityFrameworkCore\Volo.Abp.Permissions.EntityFrameworkCore.csproj", "{2300E155-2621-4FCF-BD44-B61BA5A92B82}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Permissions.Tests", "test\Volo.Abp.Permissions.Tests\Volo.Abp.Permissions.Tests.csproj", "{7B4D2BEB-DE3E-4533-8CD4-7BBB30414647}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Permissions.Web", "src\Volo.Abp.Permissions.Web\Volo.Abp.Permissions.Web.csproj", "{8859CFE4-BC7F-4F29-B6B5-A9457435CC32}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Permissions.Application.Contracts", "src\Volo.Abp.Permissions.Application.Contracts\Volo.Abp.Permissions.Application.Contracts.csproj", "{837ABFF5-66EE-486A-8023-8DD3EE7D7D96}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Permissions.Application", "src\Volo.Abp.Permissions.Application\Volo.Abp.Permissions.Application.csproj", "{90197499-CBB6-4C8C-90E6-8718CD755C04}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -704,6 +710,18 @@ Global
{7B4D2BEB-DE3E-4533-8CD4-7BBB30414647}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B4D2BEB-DE3E-4533-8CD4-7BBB30414647}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B4D2BEB-DE3E-4533-8CD4-7BBB30414647}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8859CFE4-BC7F-4F29-B6B5-A9457435CC32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8859CFE4-BC7F-4F29-B6B5-A9457435CC32}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8859CFE4-BC7F-4F29-B6B5-A9457435CC32}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8859CFE4-BC7F-4F29-B6B5-A9457435CC32}.Release|Any CPU.Build.0 = Release|Any CPU
+ {837ABFF5-66EE-486A-8023-8DD3EE7D7D96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {837ABFF5-66EE-486A-8023-8DD3EE7D7D96}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {837ABFF5-66EE-486A-8023-8DD3EE7D7D96}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {837ABFF5-66EE-486A-8023-8DD3EE7D7D96}.Release|Any CPU.Build.0 = Release|Any CPU
+ {90197499-CBB6-4C8C-90E6-8718CD755C04}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {90197499-CBB6-4C8C-90E6-8718CD755C04}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {90197499-CBB6-4C8C-90E6-8718CD755C04}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {90197499-CBB6-4C8C-90E6-8718CD755C04}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -835,6 +853,9 @@ Global
{E4D0326C-515D-46FA-AF7E-1AC32155BD03} = {055F4AC0-46C4-4E99-89CD-0F30D4A97382}
{2300E155-2621-4FCF-BD44-B61BA5A92B82} = {055F4AC0-46C4-4E99-89CD-0F30D4A97382}
{7B4D2BEB-DE3E-4533-8CD4-7BBB30414647} = {37087D1B-3693-4E96-983D-A69F210BDE53}
+ {8859CFE4-BC7F-4F29-B6B5-A9457435CC32} = {055F4AC0-46C4-4E99-89CD-0F30D4A97382}
+ {837ABFF5-66EE-486A-8023-8DD3EE7D7D96} = {055F4AC0-46C4-4E99-89CD-0F30D4A97382}
+ {90197499-CBB6-4C8C-90E6-8718CD755C04} = {055F4AC0-46C4-4E99-89CD-0F30D4A97382}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5}
diff --git a/src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs b/src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs
index 888efc6fb2..434ad1585f 100644
--- a/src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs
+++ b/src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs
@@ -79,6 +79,8 @@ namespace AbpDesk.Web.Mvc
var authentication = services.AddAuthentication();
+ services.AddAuthorization();
+
authentication.AddIdentityServerAuthentication("Bearer", options =>
{
options.Authority = "http://localhost:59980";
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Application/Services/ApplicationService.cs b/src/Volo.Abp.Ddd/Volo/Abp/Application/Services/ApplicationService.cs
index e5e7012aa6..7156aa25c9 100644
--- a/src/Volo.Abp.Ddd/Volo/Abp/Application/Services/ApplicationService.cs
+++ b/src/Volo.Abp.Ddd/Volo/Abp/Application/Services/ApplicationService.cs
@@ -16,5 +16,7 @@ namespace Volo.Abp.Application.Services
- AbpSession
- ...
*/
+
+ //TODO: Add IPermissionChecker (but before split layers of DDD!)
}
}
\ No newline at end of file
diff --git a/src/Volo.Abp.Permissions.Application.Contracts/Volo.Abp.Permissions.Application.Contracts.csproj b/src/Volo.Abp.Permissions.Application.Contracts/Volo.Abp.Permissions.Application.Contracts.csproj
new file mode 100644
index 0000000000..e77e4c6bcd
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Application.Contracts/Volo.Abp.Permissions.Application.Contracts.csproj
@@ -0,0 +1,21 @@
+
+
+
+
+
+ netstandard2.0
+ Volo.Abp.Permissions.Application.Contracts
+ Volo.Abp.Permissions.Application.Contracts
+ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
diff --git a/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/AbpPermissionsDomainSharedModule.cs b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/AbpPermissionsDomainSharedModule.cs
new file mode 100644
index 0000000000..18cdb53190
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/AbpPermissionsDomainSharedModule.cs
@@ -0,0 +1,15 @@
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.Modularity;
+
+namespace Volo.Abp.Permissions
+{
+ [DependsOn(typeof(AbpDddModule))]
+ [DependsOn(typeof(AbpPermissionsDomainSharedModule))]
+ public class AbpPermissionsApplicationContractsModule : AbpModule
+ {
+ public override void ConfigureServices(IServiceCollection services)
+ {
+ services.AddAssemblyOf();
+ }
+ }
+}
diff --git a/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/IPermissionAppService.cs b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/IPermissionAppService.cs
new file mode 100644
index 0000000000..e5f2a5cbe4
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/IPermissionAppService.cs
@@ -0,0 +1,16 @@
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using JetBrains.Annotations;
+using Volo.Abp.Application.Services;
+
+namespace Volo.Abp.Permissions
+{
+ public interface IPermissionAppService : IApplicationService
+ {
+ Task GetAsync([NotNull] string name, [NotNull] string providerName, [NotNull] string providerKey);
+
+ Task> GetListAsync([NotNull] string providerName, [NotNull] string providerKey);
+
+ Task UpdateAsync([NotNull] string providerName, [NotNull] string providerKey, UpdatePermissionsDto input);
+ }
+}
diff --git a/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/PermissionGrantInfoDto.cs b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/PermissionGrantInfoDto.cs
new file mode 100644
index 0000000000..1bd2f88a48
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/PermissionGrantInfoDto.cs
@@ -0,0 +1,15 @@
+namespace Volo.Abp.Permissions
+{
+ public class PermissionGrantInfoDto
+ {
+ public string Name { get; set; }
+
+ public string ParentName { get; set; }
+
+ public bool IsGranted { get; set; }
+
+ public string ProviderName { get; set; }
+
+ public string ProviderKey { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/UpdatePermissionDto.cs b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/UpdatePermissionDto.cs
new file mode 100644
index 0000000000..5c04577d0a
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/UpdatePermissionDto.cs
@@ -0,0 +1,9 @@
+namespace Volo.Abp.Permissions
+{
+ public class UpdatePermissionDto
+ {
+ public string Name { get; set; }
+
+ public bool IsGranted { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/UpdatePermissionsDto.cs b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/UpdatePermissionsDto.cs
new file mode 100644
index 0000000000..99cdd62e87
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Application.Contracts/Volo/Abp/Permissions/UpdatePermissionsDto.cs
@@ -0,0 +1,7 @@
+namespace Volo.Abp.Permissions
+{
+ public class UpdatePermissionsDto
+ {
+ public UpdatePermissionDto[] Permissions { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/Volo.Abp.Permissions.Application/Volo.Abp.Permissions.Application.csproj b/src/Volo.Abp.Permissions.Application/Volo.Abp.Permissions.Application.csproj
new file mode 100644
index 0000000000..f520634eac
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Application/Volo.Abp.Permissions.Application.csproj
@@ -0,0 +1,21 @@
+
+
+
+
+
+ netstandard2.0
+ Volo.Abp.Permissions.Application
+ Volo.Abp.Permissions.Application
+ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
diff --git a/src/Volo.Abp.Permissions.Application/Volo/Abp/Permissions/AbpPermissionsApplicationModule.cs b/src/Volo.Abp.Permissions.Application/Volo/Abp/Permissions/AbpPermissionsApplicationModule.cs
new file mode 100644
index 0000000000..7622b7eb5d
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Application/Volo/Abp/Permissions/AbpPermissionsApplicationModule.cs
@@ -0,0 +1,15 @@
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.Modularity;
+
+namespace Volo.Abp.Permissions
+{
+ [DependsOn(typeof(AbpPermissionsDomainModule))]
+ [DependsOn(typeof(AbpPermissionsApplicationContractsModule))]
+ public class AbpPermissionsApplicationModule : AbpModule
+ {
+ public override void ConfigureServices(IServiceCollection services)
+ {
+ services.AddAssemblyOf();
+ }
+ }
+}
diff --git a/src/Volo.Abp.Permissions.Application/Volo/Abp/Permissions/PermissionAppService.cs b/src/Volo.Abp.Permissions.Application/Volo/Abp/Permissions/PermissionAppService.cs
new file mode 100644
index 0000000000..18decfb800
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Application/Volo/Abp/Permissions/PermissionAppService.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Volo.Abp.Application.Services;
+
+namespace Volo.Abp.Permissions
+{
+ public class PermissionAppService : ApplicationService, IPermissionAppService
+ {
+ private readonly IPermissionManager _permissionManager;
+
+ public PermissionAppService(IPermissionManager permissionManager)
+ {
+ _permissionManager = permissionManager;
+ }
+
+ public async Task GetAsync(string name, string providerName, string providerKey)
+ {
+ var result = await _permissionManager.IsGrantedAsync(name, providerName, providerKey);
+
+ throw new NotImplementedException();
+ }
+
+ public async Task> GetListAsync(string providerName, string providerKey)
+ {
+ throw new NotImplementedException();
+ }
+
+ public async Task UpdateAsync(string providerName, string providerKey, UpdatePermissionsDto input)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/IPermissionManager.cs b/src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/IPermissionManager.cs
index da4862e3b1..0c6d04cc7b 100644
--- a/src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/IPermissionManager.cs
+++ b/src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/IPermissionManager.cs
@@ -10,7 +10,7 @@ namespace Volo.Abp.Permissions
Task> GetAllGrantedAsync([NotNull] string providerName, [NotNull] string providerKey);
- Task GrantAsync( [NotNull] string providerName, [NotNull] string providerKey, [NotNull] string name);
+ Task GrantAsync([NotNull] string name, [NotNull] string providerName, [NotNull] string providerKey);
Task RevokeAsync([NotNull] string name, [NotNull] string providerName, [NotNull] string providerKey);
}
diff --git a/src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionManager.cs b/src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionManager.cs
index 787e92a7d5..f439dd6f57 100644
--- a/src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionManager.cs
+++ b/src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionManager.cs
@@ -41,11 +41,11 @@ namespace Volo.Abp.Permissions
.ToList();
}
- public async Task GrantAsync(string providerName, string providerKey, string name)
+ public async Task GrantAsync(string name, string providerName, string providerKey)
{
+ Check.NotNull(name, nameof(name));
Check.NotNull(providerName, nameof(providerName));
Check.NotNull(providerKey, nameof(providerKey));
- Check.NotNull(name, nameof(name));
if (await IsGrantedAsync(providerName, providerKey, name))
{
diff --git a/src/Volo.Abp.Permissions.Web/AbpPermissionsWebAutoMapperProfile.cs b/src/Volo.Abp.Permissions.Web/AbpPermissionsWebAutoMapperProfile.cs
new file mode 100644
index 0000000000..717ff30b41
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Web/AbpPermissionsWebAutoMapperProfile.cs
@@ -0,0 +1,16 @@
+using AutoMapper;
+
+namespace Volo.Abp.Permissions.Web
+{
+ public class AbpPermissionsWebAutoMapperProfile : Profile
+ {
+ public AbpPermissionsWebAutoMapperProfile()
+ {
+ }
+
+ private void CreatePermissionMappings()
+ {
+ //...
+ }
+ }
+}
diff --git a/src/Volo.Abp.Permissions.Web/AbpPermissionsWebModule.cs b/src/Volo.Abp.Permissions.Web/AbpPermissionsWebModule.cs
new file mode 100644
index 0000000000..73a7d591e9
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Web/AbpPermissionsWebModule.cs
@@ -0,0 +1,45 @@
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.AspNetCore.Mvc.Localization;
+using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap;
+using Volo.Abp.AutoMapper;
+using Volo.Abp.Localization;
+using Volo.Abp.Modularity;
+using Volo.Abp.Permissions.Web.Localization.Resources.AbpPermissions;
+using Volo.Abp.VirtualFileSystem;
+
+namespace Volo.Abp.Permissions.Web
+{
+ [DependsOn(typeof(AbpPermissionsApplicationContractsModule))]
+ [DependsOn(typeof(AbpAspNetCoreMvcUiBootstrapModule))]
+ [DependsOn(typeof(AbpAutoMapperModule))]
+ public class AbpPermissionsWebModule : AbpModule
+ {
+ public override void PreConfigureServices(IServiceCollection services)
+ {
+ services.PreConfigure(options =>
+ {
+ options.AddAssemblyResource(typeof(AbpPermissionsResource));
+ });
+ }
+
+ public override void ConfigureServices(IServiceCollection services)
+ {
+ services.AddAssemblyOf();
+
+ services.Configure(options =>
+ {
+ options.FileSets.AddEmbedded("Volo.Abp.Permissions.Web");
+ });
+
+ services.Configure(options =>
+ {
+ options.Resources.AddVirtualJson("en", "/Localization/Resources/AbpPermissions");
+ });
+
+ services.Configure(options =>
+ {
+ options.AddProfile(validate: true);
+ });
+ }
+ }
+}
diff --git a/src/Volo.Abp.Permissions.Web/Localization/Resources/AbpPermissions/IdentityResource.cs b/src/Volo.Abp.Permissions.Web/Localization/Resources/AbpPermissions/IdentityResource.cs
new file mode 100644
index 0000000000..53f714e563
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Web/Localization/Resources/AbpPermissions/IdentityResource.cs
@@ -0,0 +1,15 @@
+using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Localization.Resources.AbpBootstrap;
+using Volo.Abp.Localization;
+using Volo.Abp.Localization.Resources.AbpValidation;
+
+namespace Volo.Abp.Permissions.Web.Localization.Resources.AbpPermissions
+{
+ [InheritResource(
+ typeof(AbpValidationResource),
+ typeof(AbpBootstrapResource))]
+ [ShortLocalizationResourceName("AbpPermissions")]
+ public class AbpPermissionsResource
+ {
+
+ }
+}
diff --git a/src/Volo.Abp.Permissions.Web/Localization/Resources/AbpPermissions/en.json b/src/Volo.Abp.Permissions.Web/Localization/Resources/AbpPermissions/en.json
new file mode 100644
index 0000000000..f12cad4212
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Web/Localization/Resources/AbpPermissions/en.json
@@ -0,0 +1,18 @@
+{
+ "culture": "en",
+ "texts": {
+ "Users": "Users",
+ "NewUser": "New user",
+ "UserName": "User name",
+ "EmailAddress": "Email address",
+ "PhoneNumber": "Phone number",
+ "UserInformations": "User informations",
+ "Roles": "Roles",
+ "Password": "Password",
+ "UserDeletionConfirmationMessage": "User '{0}' will be deleted. Do you confirm that?",
+ "TwoFactorVerification": "Two factor verification",
+ "AccountLockoutOnFailedLoginAttempts": "Locking account after failed login attempts",
+ "NewRole": "New role",
+ "RoleName": "Role name"
+ }
+}
\ No newline at end of file
diff --git a/src/Volo.Abp.Permissions.Web/Localization/Resources/AbpPermissions/tr.json b/src/Volo.Abp.Permissions.Web/Localization/Resources/AbpPermissions/tr.json
new file mode 100644
index 0000000000..a19ffbcad8
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Web/Localization/Resources/AbpPermissions/tr.json
@@ -0,0 +1,25 @@
+{
+ "culture": "tr",
+ "texts": {
+ "Users": "Kullanıcılar",
+ "NewUser": "Yeni kullanıcı",
+ "Actions": "İşlemler",
+ "UserName": "Kullanıcı adı",
+ "EmailAddress": "E-posta adresi",
+ "PhoneNumber": "Telefon numarası",
+ "UserInformations": "Kullanıcı bilgileri",
+ "Roles": "Roller",
+ "Close": "Kapat",
+ "Delete": "Sil",
+ "Edit": "Düzenle",
+ "Save": "Kaydet",
+ "Password": "Şifre",
+ "UserDeletionConfirmationMessage": "{0} kullanıcısı silinecektir. Onaylıyor musunuz?",
+ "TwoFactorVerification": "İki aşamalı doğrumala",
+ "AccountLockoutOnFailedLoginAttempts": "Başarısız giriş denemeleri sonrası hesabı kilitleme",
+ "NewRole": "Yeni rol",
+ "RoleName": "Rol adı",
+ "CreationTime": "Oluşturma zamanı"
+
+ }
+}
\ No newline at end of file
diff --git a/src/Volo.Abp.Permissions.Web/Pages/Permissions/PermissionManagementModal.cshtml b/src/Volo.Abp.Permissions.Web/Pages/Permissions/PermissionManagementModal.cshtml
new file mode 100644
index 0000000000..655047716f
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Web/Pages/Permissions/PermissionManagementModal.cshtml
@@ -0,0 +1,30 @@
+@page
+@using Volo.Abp.Permissions.Web.Pages.Permissions
+@model PermissionManagementModal
+@{
+ Layout = null;
+}
+
+
diff --git a/src/Volo.Abp.Permissions.Web/Pages/Permissions/PermissionManagementModal.cshtml.cs b/src/Volo.Abp.Permissions.Web/Pages/Permissions/PermissionManagementModal.cshtml.cs
new file mode 100644
index 0000000000..2a743d4038
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Web/Pages/Permissions/PermissionManagementModal.cshtml.cs
@@ -0,0 +1,33 @@
+using System.ComponentModel.DataAnnotations;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Volo.Abp.AspNetCore.Mvc.RazorPages;
+
+namespace Volo.Abp.Permissions.Web.Pages.Permissions
+{
+ public class PermissionManagementModal : AbpPageModel
+ {
+ [BindProperty]
+ public PerminssionInfoModel[] Permissions { get; set; }
+
+ public async Task OnGetAsync()
+ {
+
+ }
+
+ public async Task OnPostAsync()
+ {
+ ValidateModel();
+
+ return NoContent();
+ }
+
+ public class PerminssionInfoModel
+ {
+ [Required]
+ //[StringLength(IdentityRoleConsts.MaxNameLength)]
+ [Display(Name = "RoleName")]
+ public string Name { get; set; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Volo.Abp.Permissions.Web/Properties/launchSettings.json b/src/Volo.Abp.Permissions.Web/Properties/launchSettings.json
new file mode 100644
index 0000000000..8a8ac869ea
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Web/Properties/launchSettings.json
@@ -0,0 +1,27 @@
+{
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:49258/",
+ "sslPort": 0
+ }
+ },
+ "profiles": {
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "Volo.Abp.Permissions.Web": {
+ "commandName": "Project",
+ "launchBrowser": true,
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ },
+ "applicationUrl": "http://localhost:49259/"
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Volo.Abp.Permissions.Web/Volo.Abp.Permissions.Web.csproj b/src/Volo.Abp.Permissions.Web/Volo.Abp.Permissions.Web.csproj
new file mode 100644
index 0000000000..f5da487b8c
--- /dev/null
+++ b/src/Volo.Abp.Permissions.Web/Volo.Abp.Permissions.Web.csproj
@@ -0,0 +1,30 @@
+
+
+
+
+
+ netstandard2.0
+ Volo.Abp.Permissions.Web
+ Volo.Abp.Permissions.Web
+ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
+ Library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionChecker.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionChecker.cs
index 7b48276291..9007faca66 100644
--- a/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionChecker.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/IPermissionChecker.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Threading.Tasks;
+using System.Threading.Tasks;
using JetBrains.Annotations;
namespace Volo.Abp.Permissions
@@ -7,7 +6,5 @@ namespace Volo.Abp.Permissions
public interface IPermissionChecker
{
Task CheckAsync([NotNull]string name);
-
- Task> GetAllAsync();
}
}
\ No newline at end of file
diff --git a/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionChecker.cs b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionChecker.cs
index b0890726b7..542905222a 100644
--- a/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionChecker.cs
+++ b/src/Volo.Abp.Permissions/Volo/Abp/Permissions/PermissionChecker.cs
@@ -8,7 +8,7 @@ using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Permissions
{
- public class PermissionChecker : IPermissionChecker, ITransientDependency
+ public class PermissionChecker : IPermissionChecker, ISingletonDependency
{
protected IPermissionDefinitionManager PermissionDefinitionManager { get; }
@@ -41,19 +41,6 @@ namespace Volo.Abp.Permissions
return GetPermissionGrantInfo(permission);
}
- public virtual async Task> GetAllAsync()
- {
- var permissionDefinitions = PermissionDefinitionManager.GetAll();
- var permissionGrantInfos = new Dictionary();
-
- foreach (var permission in permissionDefinitions)
- {
- permissionGrantInfos[permission.Name] = await GetPermissionGrantInfo(permission);
- }
-
- return permissionGrantInfos.Values.ToList();
- }
-
protected virtual async Task GetPermissionGrantInfo(PermissionDefinition permission)
{
foreach (var provider in Providers)
diff --git a/test/Volo.Abp.Permissions.Tests/Volo/Abp/Permissions/PermissionManager_User_Tests.cs b/test/Volo.Abp.Permissions.Tests/Volo/Abp/Permissions/PermissionManager_User_Tests.cs
index d7873314b9..886e8d1441 100644
--- a/test/Volo.Abp.Permissions.Tests/Volo/Abp/Permissions/PermissionManager_User_Tests.cs
+++ b/test/Volo.Abp.Permissions.Tests/Volo/Abp/Permissions/PermissionManager_User_Tests.cs
@@ -86,22 +86,6 @@ namespace Volo.Abp.Permissions
// permission.ShouldContain(p => p.Name == "MyPermission1" && !p.IsGranted);
//}
- [Fact]
- public async Task Should_Get_List_Of_Granted_Permissions_For_Current_User()
- {
- //User1
- _currentUserId = PermissionTestDataBuilder.User1Id;
- var permission = await _permissionChecker.GetAllAsync();
- permission.Count.ShouldBeGreaterThan(0);
- permission.ShouldContain(p => p.Name == "MyPermission1" && p.IsGranted && p.ProviderName == UserPermissionValueProvider.ProviderName);
-
- //User2
- _currentUserId = PermissionTestDataBuilder.User2Id;
- permission = await _permissionChecker.GetAllAsync();
- permission.Count.ShouldBeGreaterThan(0);
- permission.ShouldContain(p => p.Name == "MyPermission1" && !p.IsGranted);
- }
-
//[Fact]
//public async Task Should_Grant_Permission_For_A_User()
//{