/// <summary> /// Convert a <see cref="PermissionElement"/> to a <see cref="Permission"/>. /// </summary> /// <param name="element"></param> /// <returns></returns> public static Permission ToPermission(this PermissionElement element) { var permission = new Permission(); if (!string.IsNullOrEmpty(element.Users)) { permission.Users = element.Users.Split(',').Select(x => x.Trim()).ToList(); } if (!string.IsNullOrEmpty(element.Roles)) { permission.Roles = element.Roles.Split(',').Select(x => x.Trim()).ToList(); } foreach (ClaimElement claimElement in element.Claims) { if (!string.IsNullOrEmpty(claimElement.Claims)) { foreach (var value in claimElement.Claims.Split(',')) { var claim = new Claim(claimElement.Name.Trim(), value.Trim(), null, claimElement.Issuer.Trim()); permission.Claims.Add(claim); } } } return(permission); }
public DotNetCfgPermission(AccessControlList acl, PermissionElement permissionElement) { _permissionElement = permissionElement; foreach (PermissionMember permissionMember in permissionElement) { _permissionEntries.Add(DotNetCfgPermissionFactory.CreatePermissionEntry(acl, UniqueId, permissionMember)); } }
public void CanConfigure_DynamiPermissions() { PermissionElement element = new PermissionElement { Dynamic = true }; var map = element.ToPermissionMap(Permission.Administer, null, null); Assert.That(map, Is.TypeOf(typeof(DynamicPermissionMap))); }
public void CanConfigure_Permissions() { PermissionElement element = new PermissionElement { Dynamic = true }; var map = element.ToPermissionMap(Permission.Administer, new[] { "role" }, new[] { "user" }); Assert.That(map.Permissions, Is.EqualTo(Permission.Administer)); Assert.That(map.Roles.Length, Is.EqualTo(1)); Assert.That(map.Roles[0], Is.EqualTo("role")); Assert.That(map.Users.Length, Is.EqualTo(1)); Assert.That(map.Users[0], Is.EqualTo("user")); }
public void ToPermissionIgnoreWhitespace() { var element = new PermissionElement { Roles = " A,B, C", Users = " Alice, Bob ", Claims = new ClaimElementCollection { new ClaimElement { Name = " team", Claims = " F, G " }, new ClaimElement { Name = "department ", Claims = "H " } } }; var expected = new Permission { Roles = new List <string> { "A", "B", "C" }, Users = new List <string> { "Alice", "Bob" }, Claims = new List <Claim> { new Claim("team", "F"), new Claim("team", "G"), new Claim("department", "H"), } }; var candidate = element.ToPermission(); Check(expected, candidate); }
public void ToPermission() { var element = new PermissionElement { Roles = "A, B, C", Users = "Bob, Sue", Claims = new ClaimElementCollection { new ClaimElement { Name = "team", Issuer = "Me", Claims = "F, G" }, new ClaimElement { Name = "department", Claims = "H" } } }; var expected = new Permission { Roles = new List <string> { "A", "B", "C" }, Users = new List <string> { "Bob", "Sue" }, Claims = new List <Claim> { new Claim("team", "F", null, "Me"), new Claim("team", "G", null, "Me"), new Claim("department", "H"), } }; var candidate = element.ToPermission(); Check(expected, candidate); }