public void TestLoadItems() { try { EntityType crEntityType = EntityType.GetEntityType(typeof(ComputingResource)); EntityType psEntityType = EntityType.GetEntityType(typeof(PublishServer)); //Console.WriteLine("CR EXISTS {0} {1} {2} {3}", crEntityType.DoesItemExist(context, 3), crEntityType.DoesItemExist(context, 1), crEntityType.DoesItemExist(context, "cr-3"), crEntityType.DoesItemExist(context, "cr-1")); //Console.WriteLine("PS EXISTS {0} {1} {2} {3}", psEntityType.DoesItemExist(context, 3), psEntityType.DoesItemExist(context, 1), psEntityType.DoesItemExist(context, "ps-3"), psEntityType.DoesItemExist(context, "ps-1")); //Console.WriteLine(crEntityType.GetQuery(context, null, 1, null, false, EntityAccessLevel.Permission)); //Console.WriteLine(psEntityType.GetQuery(context, null, 1, null, false, EntityAccessLevel.Permission)); ComputingResource cr1; context.AccessLevel = EntityAccessLevel.Privilege; Console.WriteLine("Privilege-based: user 'domain-1_cr_viewer+changer' (can view, cannot delete)"); cr1 = new GenericComputingResource(context); cr1.UserId = user11.Id; cr1.Load("cr-1"); Assert.IsTrue(cr1.CanView); Assert.IsTrue(cr1.CanChange); Assert.IsFalse(cr1.CanDelete); Console.WriteLine("Privilege-based: user 'domain-1_cr_viewer+changer' (can view, can delete)"); cr1.UserId = user12.Id; cr1.Load("cr-1"); Assert.IsTrue(cr1.CanView); Assert.IsTrue(cr1.CanChange); Assert.IsTrue(cr1.CanDelete); } catch (Exception e) { Console.WriteLine("{0} - {1}", e.Message, e.StackTrace); throw; } }
public void _CreateData() { try { if (rebuildData) { context.AccessLevel = EntityAccessLevel.Administrator; domain1 = new Domain(context); domain1.Identifier = "domain-1"; domain1.Name = "domain-1"; domain1.Store(); domain2 = new Domain(context); domain2.Identifier = "domain-2"; domain2.Name = "domain-2"; domain2.Store(); user0 = new User(context); user0.Identifier = "user-0"; user0.Store(); user11 = new User(context); user11.Identifier = "domain-1_cr_viewer+changer"; user11.Store(); user12 = new User(context); user12.Identifier = "domain-1_cr_viewer+changer+deleter"; user12.Store(); user21 = new User(context); user21.Identifier = "global_cr_deleter"; user21.Store(); group1 = new Group(context); group1.Identifier = "domain-1_cr_viewers+changers"; group1.Store(); group1.AssignUsers(new int[] { user11.Id, user12.Id }); group2 = new Group(context); group2.Identifier = "global_cr_deleters"; group2.Store(); group2.AssignUsers(new int[] { user21.Id }); user31 = new User(context); user31.Identifier = "global_service_admin"; user31.Store(); role1 = new Role(context); role1.Identifier = "cr_view+change"; role1.Store(); role1.IncludePrivileges(Privilege.Get(EntityType.GetEntityType(typeof(ComputingResource)), new EntityOperationType[] { EntityOperationType.Search, EntityOperationType.View, EntityOperationType.Change })); role1.GrantToGroups(new int[] { group1.Id }, domain1.Id); role2 = new Role(context); role2.Identifier = "cr_delete"; role2.Store(); role2.IncludePrivilege(Privilege.Get(EntityType.GetEntityType(typeof(ComputingResource)), EntityOperationType.Delete)); role2.GrantToUsers(new int[] { user12.Id }, domain1.Id); role2.GrantToGroups(new int[] { group2.Id }, 0); role3 = new Role(context); role3.Identifier = "service_all"; role3.Store(); role3.IncludePrivileges(Privilege.Get(EntityType.GetEntityType(typeof(Service)))); role3.GrantToUsers(new int[] { user31.Id }, 0); ComputingResource cr1 = new GenericComputingResource(context); cr1.Identifier = "cr-1"; cr1.Name = "cr-1"; cr1.Domain = domain1; cr1.Store(); cr1.GrantPermissionsToUsers(new int[] { user12.Id }); PublishServer ps1 = new PublishServer(context); ps1.Identifier = "ps-1"; ps1.Name = "ps-1"; ps1.Hostname = "mytest.host"; ps1.Domain = domain1; ps1.Protocol = "http"; ps1.Store(); seriesShareDomain = new Domain(context); seriesShareDomain.Identifier = "series-share"; seriesShareDomain.Name = "series-share"; seriesShareDomain.Store(); shareCreator = new User(context); shareCreator.Identifier = "share-creator"; shareCreator.Store(); shareReceiver = new User(context); shareReceiver.Identifier = "share-receiver"; shareReceiver.Store(); context.StartImpersonation(shareCreator.Id); sharedSeries = new Series(context); sharedSeries.Identifier = "shared-series"; sharedSeries.Store(); sharedSeries.GrantPermissionsToUsers(new int[] { shareReceiver.Id }); unsharedSeries = new Series(context); unsharedSeries.Domain = seriesShareDomain; unsharedSeries.Identifier = "unshared-series"; unsharedSeries.Store(); context.EndImpersonation(); seriesShareRole = new Role(context); seriesShareRole.Identifier = "series_all"; seriesShareRole.Store(); seriesShareRole.IncludePrivileges(Privilege.Get(EntityType.GetEntityType(typeof(Series)))); seriesShareRole.GrantToUsers(new int[] { shareCreator.Id }, seriesShareDomain.Id); context.AccessLevel = EntityAccessLevel.Permission; } else { domain1 = Domain.GetInstance(context); domain1.Load("domain-1"); domain2 = Domain.GetInstance(context); domain2.Load("domain-2"); group1 = Group.FromIdentifier(context, "domain-1_cr_viewers+changers"); group2 = Group.FromIdentifier(context, "global_cr_deleters"); user0 = User.FromUsername(context, "user-0"); user11 = User.FromUsername(context, "domain-1_cr_viewer+changer"); user12 = User.FromUsername(context, "domain-1_cr_viewer+changer+deleter"); user21 = User.FromUsername(context, "global_cr_deleter"); user31 = User.FromUsername(context, "global_service_admin"); role1 = Role.GetInstance(context); role1.Load("cr_view+change"); role2 = Role.GetInstance(context); role2.Load("cr_delete"); role2 = Role.GetInstance(context); role2.Load("service_all"); } } catch (Exception e) { Console.WriteLine("{0} - {1}", e.Message, e.StackTrace); throw; } }