Example #1
0
        public void CanConvert_ToArray()
        {
            DetailCollection collection = new DetailCollection();
            collection.AddRange(new[] { 1, 2, 3 });

            int[] array = collection.ToArray<int>();

            Assert.That(array.Length, Is.EqualTo(3));
            Assert.That(array[0], Is.EqualTo(1));
            Assert.That(array[2], Is.EqualTo(3));
        }
Example #2
0
        public void CanConvert_ToArray()
        {
            DetailCollection collection = new DetailCollection();

            collection.AddRange(new[] { 1, 2, 3 });

            int[] array = collection.ToArray <int>();

            Assert.That(array.Length, Is.EqualTo(3));
            Assert.That(array[0], Is.EqualTo(1));
            Assert.That(array[2], Is.EqualTo(3));
        }
Example #3
0
        public override bool Authorizes(IPrincipal user, ContentItem item, Permission permission)
        {
            if (permission == Permission.None)
            {
                return(true);
            }
            if (!MapsTo(permission))
            {
                return(false);
            }

            bool isContentAuthorized = false;

            foreach (Permission permissionLevel in SplitPermission(permission))
            {
                if (!MapsTo(permissionLevel))
                {
                    continue;
                }

                if ((item.AlteredPermissions & permissionLevel) == Permission.None)
                {
                    continue;
                }

                if (permissionLevel == Permission.Read)
                {
                    if (!item.IsAuthorized(user))
                    {
                        return(false);
                    }

                    isContentAuthorized = true;
                    continue;
                }

                DetailCollection details = item.GetDetailCollection(AuthorizedRolesPrefix + permissionLevel, false);
                if (details != null)
                {
                    string[] rolesAuthorizedByItem = details.ToArray <string>();
                    if (!IsInRoles(user, rolesAuthorizedByItem) && !IsInUsers(user.Identity.Name))
                    {
                        return(false);
                    }

                    isContentAuthorized = true;
                }
            }

            return(isContentAuthorized || base.Authorizes(user, item, permission));
        }