/// <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);
        }
Exemple #2
0
        public DotNetCfgPermission(AccessControlList acl, PermissionElement permissionElement)
        {
            _permissionElement = permissionElement;

            foreach (PermissionMember permissionMember in permissionElement)
            {
                _permissionEntries.Add(DotNetCfgPermissionFactory.CreatePermissionEntry(acl, UniqueId, permissionMember));
            }
        }
Exemple #3
0
        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)));
        }
Exemple #4
0
        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);
        }