public void AuthIdentity_HasPermission_1()
        {
            TestStore store = ((TestStore)DevWebsiteDataInitializer.FillDefaultDevSet(new TestStore())).FixupReferences();
            User user = PopulateAuthData(store);

            // Find a member and their organization
            SarMember member = store.Members.First(f => f.Memberships.Count > 0);
            var orgId = member.Memberships.First().OrganizationId;

            // Create a new role and put our test user in that role
            Role testRole = new Role { Name = "testrole" };
            RoleUserMembership ru = new RoleUserMembership { Role = testRole, User = user };
            testRole.Users.Add(ru);
            user.Roles.Add(ru);
            store.Roles.Add(testRole);

            var tmp = member.Memberships.Select(f => f.OrganizationId).ToArray();

            // Give the role permissions to edit members in org
            Authorization auth = new Authorization { Role = testRole, RoleId = testRole.Id, Permission = PermissionType.EditMember, Scope = orgId };
            store.Authorization.Add(auth);

            AuthIdentityTestService service = new AuthIdentityTestService(user.Username, store);

            Assert.IsTrue(service.HasPermission(PermissionType.EditMember, member.Id));
        }
        private User PopulateAuthData(TestStore store)
        {
            User user = new User { Username = "******" };
            store.Users.Add(user);

            Role parent = new Role { Name = "Parent" };
            Role child = new Role { Name = "Child" };
            store.Roles.Add(parent);
            store.Roles.Add(child);
            RoleTests.MakeMember(parent, child);

            RoleUserMembership ru = new RoleUserMembership { User = user, Role = parent };
            parent.Users.Add(ru);
            user.Roles.Add(ru);

            Authorization auth = new Authorization { Permission = PermissionType.EditMember, Role = child, RoleId = child.Id };
            store.Authorization.Add(auth);

            return user;
        }