Browse Source

Add Get methods to find and modify a permission or group

pull/660/head
Nokecy 8 years ago
parent
commit
1c27515106
  1. 1
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionContext.cs
  2. 13
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionContext.cs
  3. 13
      framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs
  4. 7
      framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/AuthorizationTestPermissionDefinitionProvider.cs

1
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionContext.cs

@ -6,6 +6,7 @@ namespace Volo.Abp.Authorization.Permissions
public interface IPermissionDefinitionContext public interface IPermissionDefinitionContext
{ {
//TODO: Add Get methods to find and modify a permission or group. //TODO: Add Get methods to find and modify a permission or group.
PermissionGroupDefinition GetGroupOrNull(string name);
PermissionGroupDefinition AddGroup([NotNull] string name, ILocalizableString displayName = null); PermissionGroupDefinition AddGroup([NotNull] string name, ILocalizableString displayName = null);
} }

13
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionContext.cs

@ -23,5 +23,18 @@ namespace Volo.Abp.Authorization.Permissions
return Groups[name] = new PermissionGroupDefinition(name, displayName); return Groups[name] = new PermissionGroupDefinition(name, displayName);
} }
public virtual PermissionGroupDefinition GetGroupOrNull(string name)
{
Check.NotNull(name, nameof(name));
if (!Groups.ContainsKey(name))
{
return null;
}
return Groups[name];
}
} }
} }

13
framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs

@ -1,5 +1,6 @@
using System.Threading.Tasks; using Shouldly;
using Shouldly; using System.Threading.Tasks;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Authorization.TestServices; using Volo.Abp.Authorization.TestServices;
using Xunit; using Xunit;
@ -8,10 +9,12 @@ namespace Volo.Abp.Authorization
public class Authorization_Tests : AuthorizationTestBase public class Authorization_Tests : AuthorizationTestBase
{ {
private readonly IMyAuthorizedService1 _myAuthorizedService1; private readonly IMyAuthorizedService1 _myAuthorizedService1;
private readonly IPermissionDefinitionManager _permissionDefinitionManager;
public Authorization_Tests() public Authorization_Tests()
{ {
_myAuthorizedService1 = GetRequiredService<IMyAuthorizedService1>(); _myAuthorizedService1 = GetRequiredService<IMyAuthorizedService1>();
_permissionDefinitionManager = GetRequiredService<IPermissionDefinitionManager>();
} }
[Fact] [Fact]
@ -43,5 +46,11 @@ namespace Volo.Abp.Authorization
{ {
(await _myAuthorizedService1.AnonymousAsync()).ShouldBe(42); (await _myAuthorizedService1.AnonymousAsync()).ShouldBe(42);
} }
[Fact]
public void Should_Permission_Definition_GetGroup()
{
_permissionDefinitionManager.GetGroups().Count.ShouldBe(2);
}
} }
} }

7
framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/AuthorizationTestPermissionDefinitionProvider.cs

@ -6,7 +6,12 @@ namespace Volo.Abp.Authorization.TestServices
{ {
public override void Define(IPermissionDefinitionContext context) public override void Define(IPermissionDefinitionContext context)
{ {
var group = context.AddGroup("TestGroup"); PermissionGroupDefinition getGroup = context.GetGroupOrNull("TestGetGroup");
if (getGroup == null)
{
getGroup = context.AddGroup("TestGetGroup");
}
PermissionGroupDefinition group = context.AddGroup("TestGroup");
group.AddPermission("MyAuthorizedService1"); group.AddPermission("MyAuthorizedService1");
} }
} }

Loading…
Cancel
Save