override public void DeleteGroupMembership(GroupMembershipItem groupMembershipItem) { base.DeleteGroupMembership(groupMembershipItem); if (SaveChanges) { LockedSaveChanges(); } }
public void UpsertGroupMembership() { Group lg0 = new Group { Name = "lg0", IsLocal = true }; Group lg1 = new Group { Name = "lg1", IsLocal = true }; Group lg2 = new Group { Name = "lg2", IsLocal = true }; Group lg3 = new Group { Name = "lg3", IsLocal = true, IsEnabled = false }; Group lg4 = new Group { Name = "lg4", IsLocal = true }; Group lg5 = new Group { Name = "lg5", IsLocal = true }; _dal.UpsertGroup(lg0); _dal.UpsertGroup(lg1); _dal.UpsertGroup(lg2); _dal.UpsertGroup(lg3); _dal.UpsertGroup(lg4); _dal.UpsertGroup(lg5); GroupMembershipItem lg0g1 = new GroupMembershipItem { GroupUId = lg0.UId, MemberUId = lg1.UId }; GroupMembershipItem lg0g2 = new GroupMembershipItem { GroupUId = lg0.UId, MemberUId = lg2.UId }; GroupMembershipItem lg2g3 = new GroupMembershipItem { GroupUId = lg0.UId, MemberUId = lg3.UId }; GroupMembershipItem lg2g4 = new GroupMembershipItem { GroupUId = lg0.UId, MemberUId = lg4.UId }; _dal.UpsertGroupMembership(lg0g1); _dal.UpsertGroupMembership(lg0g2); _dal.UpsertGroupMembership(lg2g3); _dal.UpsertGroupMembership(lg2g4); List <GroupMembershipItem> m = _dal.GetGroupMembers(lg0).ToList(); Assert.AreEqual(3, m.Count); lg0.IsLocal = false; _dal.UpsertGroup(lg0); m = _dal.GetGroupMembers(lg0).ToList(); Assert.AreEqual(0, m.Count); }
override public GroupMembershipItem UpsertGroupMembership(GroupMembershipItem groupMembershipItem) { GroupMembershipItem x = base.UpsertGroupMembership(groupMembershipItem); if (SaveChanges) { LockedSaveChanges(); } return(x); }
public virtual void DeleteGroupMembership(GroupMembershipItem groupMembershipItem) { int index = Store.GroupMembership.FindIndex(gmi => gmi.GroupUId == groupMembershipItem.GroupUId && gmi.MemberUId == groupMembershipItem.MemberUId); if (index >= 0) { Store.GroupMembership.RemoveAt(index); } }
public virtual GroupMembershipItem UpsertGroupMembership(GroupMembershipItem groupMembershipItem) { groupMembershipItem.Resolve(Store.Groups, null); if (groupMembershipItem.Group.IsLocal) { if (!Store.GroupMembership.ContainsItem(groupMembershipItem)) { Store.GroupMembership.Add(groupMembershipItem); } } //else [undefined: there's no such thing as a gm update] return(groupMembershipItem); }
static void Main(string[] args) { #region foo string foo = @"--- SecureObjects: - UId: e724bfde-c3d5-424f-a0c6-9497958167f0 UniqueName: top Security: DaclAllowInherit: true SaclAllowInherit: true SaclAuditTypeFilter: SuccessAudit, FailureAudit, Information, Warning, Error Dacl: - UId: a86dac02-cad3-4a51-9b16-1a3b20dbab37 RightType: Suplex.Security.AclModel.FileSystemRight, Suplex.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Right: FullControl Allowed: True Inheritable: True - UId: 7fb267d9-b4ce-4d56-a052-02aa9e9855d5 RightType: Suplex.Security.AclModel.FileSystemRight, Suplex.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Right: List, Execute Allowed: False Inheritable: False - UId: e7ea73a3-a5ec-4f63-8461-66feec42bb12 RightType: Suplex.Security.AclModel.UIRight, Suplex.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Right: Visible, Operate Allowed: True Inheritable: True Sacl: [] Results: {} Children: [] Users: - UId: 0bdfe71c-5663-4f7f-be8b-3884373f97be Name: x IsLocal: true IsBuiltIn: true IsEnabled: true - UId: 1bda1876-3281-4a67-b5de-198e9e72ad53 Name: y IsEnabled: true - UId: 20d134e9-a5ac-46ef-bc7e-fa6dc210e1f9 Name: z IsLocal: true IsBuiltIn: true Groups: - UId: ff8abe51-116b-4d42-b01a-48f167f71dc7 Name: gx IsEnabled: true - UId: c05c6deb-6a01-459b-9c87-916003f44429 Name: gy IsEnabled: true - UId: 66f89524-cc5d-4938-9cd3-b2ce6ec6d75b Name: gz IsEnabled: true GroupMembership: - GroupUId: ff8abe51-116b-4d42-b01a-48f167f71dc7 MemberUId: 0bdfe71c-5663-4f7f-be8b-3884373f97be IsMemberUser: true - GroupUId: ff8abe51-116b-4d42-b01a-48f167f71dc7 MemberUId: 1bda1876-3281-4a67-b5de-198e9e72ad53 IsMemberUser: true - GroupUId: ff8abe51-116b-4d42-b01a-48f167f71dc7 MemberUId: c05c6deb-6a01-459b-9c87-916003f44429"; #endregion SecureObject top = new SecureObject() { UniqueName = "top" }; DiscretionaryAcl topdacl = new DiscretionaryAcl { new AccessControlEntry <FileSystemRight> { Allowed = true, Right = FileSystemRight.FullControl }, new AccessControlEntry <FileSystemRight> { Allowed = false, Right = FileSystemRight.Execute | FileSystemRight.List, Inheritable = false }, new AccessControlEntry <UIRight> { Right = UIRight.Operate | UIRight.Visible } }; top.Security.Dacl = topdacl; List <User> users = new List <User> { new User { Name = "x", IsBuiltIn = true, IsEnabled = true, IsLocal = true }, new User { Name = "y", IsBuiltIn = false, IsEnabled = true, IsLocal = false }, new User { Name = "z", IsBuiltIn = true, IsEnabled = false, IsLocal = true } }; List <Group> groups = new List <Group> { new Group { Name = "gx", IsEnabled = true, IsLocal = false }, new Group { Name = "gy", IsEnabled = true, IsLocal = false }, new Group { Name = "gz", IsEnabled = true, IsLocal = false } }; GroupMembershipItem mx = new GroupMembershipItem { GroupUId = groups[0].UId, MemberUId = users[0].UId, IsMemberUser = true }; GroupMembershipItem my = new GroupMembershipItem { GroupUId = groups[0].UId, MemberUId = users[1].UId, IsMemberUser = true }; GroupMembershipItem mz = new GroupMembershipItem { GroupUId = groups[0].UId, MemberUId = groups[1].UId, IsMemberUser = false }; List <GroupMembershipItem> gm = new List <GroupMembershipItem> { mx, my, mz }; ////FileStore store = new FileStore() ////{ //// SecureObjects = new List<SecureObject>() { top }, //// Users = users, //// Groups = groups, //// GroupMembership = gm ////}; ////User ux = store.Users.GetByName<User>( "x" ); ////string x = store.ToYaml(); ////FileStore f = FileStore.FromYaml( x ); ////bool contains = f.GroupMembership.ContainsItem( mx ); ////bool ok = f.GroupMembership.Resolve( f.Groups, f.Users ); ////f = FileStore.FromYaml( foo ); ////User u0 = new User { Name = "g" }; ////User u1 = new User { Name = "f", UId = u0.UId }; ////f.Dal.UpsertUser( u0 ); ////f.Dal.UpsertUser( u1 ); }
public void Init() { _store = new SuplexStore(); _dal = new MemoryDal(_store); u0 = new User { Name = "u0" }; u1 = new User { Name = "u1" }; u2 = new User { Name = "u2" }; u3 = new User { Name = "u3", IsEnabled = false }; u4 = new User { Name = "u4" }; u5 = new User { Name = "u5" }; _dal.UpsertUser(u0); _dal.UpsertUser(u1); _dal.UpsertUser(u2); _dal.UpsertUser(u3); _dal.UpsertUser(u4); _dal.UpsertUser(u5); g0 = new Group { Name = "g0", IsLocal = true }; g1 = new Group { Name = "g1", IsEnabled = false }; g2 = new Group { Name = "g2" }; g3 = new Group { Name = "g3", IsLocal = true, IsEnabled = false }; g4 = new Group { Name = "g4", IsLocal = true }; g5 = new Group { Name = "g5", IsLocal = true }; _dal.UpsertGroup(g0); _dal.UpsertGroup(g1); _dal.UpsertGroup(g2); _dal.UpsertGroup(g3); _dal.UpsertGroup(g4); _dal.UpsertGroup(g5); g0g1 = new GroupMembershipItem { GroupUId = g0.UId, MemberUId = g1.UId }; g0g2 = new GroupMembershipItem { GroupUId = g0.UId, MemberUId = g2.UId }; g2g3 = new GroupMembershipItem { GroupUId = g2.UId, MemberUId = g3.UId }; g2g4 = new GroupMembershipItem { GroupUId = g2.UId, MemberUId = g4.UId }; g2g4 = new GroupMembershipItem { GroupUId = g3.UId, MemberUId = g4.UId }; _dal.UpsertGroupMembership(g0g1); _dal.UpsertGroupMembership(g0g2); _dal.UpsertGroupMembership(g2g3); _dal.UpsertGroupMembership(g2g4); g0u0 = new GroupMembershipItem(g0, u0); g1u1 = new GroupMembershipItem(g1, u1); g2u2 = new GroupMembershipItem(g2, u2); g3u3 = new GroupMembershipItem(g3, u3); g4u4 = new GroupMembershipItem(g4, u4); g5u5 = new GroupMembershipItem(g5, u5); _dal.UpsertGroupMembership(g0u0); _dal.UpsertGroupMembership(g1u1); _dal.UpsertGroupMembership(g2u2); _dal.UpsertGroupMembership(g3u3); _dal.UpsertGroupMembership(g4u4); _dal.UpsertGroupMembership(g5u5); }
void ISuplexDal.DeleteGroupMembership(GroupMembershipItem groupMembershipItem) { _dal.DeleteGroupMembership(groupMembershipItem); }
public GroupMembershipItem UpsertGroupMembership(GroupMembershipItem groupMembershipItem) { return(_dal.UpsertGroupMembership(groupMembershipItem)); }
public void TestMethod1() { #region foo string foo = @"--- SecureObjects: - UId: e724bfde-c3d5-424f-a0c6-9497958167f0 UniqueName: top Security: DaclAllowInherit: true SaclAllowInherit: true SaclAuditTypeFilter: SuccessAudit, FailureAudit, Information, Warning, Error Dacl: - UId: a86dac02-cad3-4a51-9b16-1a3b20dbab37 RightType: Suplex.Security.AclModel.FileSystemRight, Suplex.Security.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Right: FullControl Allowed: True Inheritable: True - UId: 7fb267d9-b4ce-4d56-a052-02aa9e9855d5 RightType: Suplex.Security.AclModel.FileSystemRight, Suplex.Security.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Right: List, Execute Allowed: False Inheritable: False - UId: e7ea73a3-a5ec-4f63-8461-66feec42bb12 RightType: Suplex.Security.AclModel.UIRight, Suplex.Security.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Right: Visible, Operate Allowed: True Inheritable: True Sacl: [] Results: {} Children: [] Users: - UId: 0bdfe71c-5663-4f7f-be8b-3884373f97be Name: x IsLocal: true IsBuiltIn: true IsEnabled: true - UId: 1bda1876-3281-4a67-b5de-198e9e72ad53 Name: y IsEnabled: true - UId: 20d134e9-a5ac-46ef-bc7e-fa6dc210e1f9 Name: z IsLocal: true IsBuiltIn: true Groups: - UId: ff8abe51-116b-4d42-b01a-48f167f71dc7 Name: gx IsEnabled: true - UId: c05c6deb-6a01-459b-9c87-916003f44429 Name: gy IsEnabled: true - UId: 66f89524-cc5d-4938-9cd3-b2ce6ec6d75b Name: gz IsEnabled: true GroupMembership: - GroupUId: ff8abe51-116b-4d42-b01a-48f167f71dc7 MemberUId: 0bdfe71c-5663-4f7f-be8b-3884373f97be IsMemberUser: true - GroupUId: ff8abe51-116b-4d42-b01a-48f167f71dc7 MemberUId: 1bda1876-3281-4a67-b5de-198e9e72ad53 IsMemberUser: true - GroupUId: ff8abe51-116b-4d42-b01a-48f167f71dc7 MemberUId: c05c6deb-6a01-459b-9c87-916003f44429"; #endregion SecureObject top = new SecureObject() { UniqueName = "top" }; DiscretionaryAcl topdacl = new DiscretionaryAcl { new AccessControlEntry <FileSystemRight> { Allowed = true, Right = FileSystemRight.FullControl }, new AccessControlEntry <FileSystemRight> { Allowed = false, Right = FileSystemRight.Execute | FileSystemRight.List, Inheritable = false }, new AccessControlEntry <UIRight> { Right = UIRight.Operate | UIRight.Visible } }; top.Security.Dacl = topdacl; top.Security.DaclAllowInherit = false; SystemAcl topsacl = new SystemAcl { new AccessControlEntryAudit <FileSystemRight> { Allowed = true, Denied = true, Right = FileSystemRight.Execute } }; top.Security.Sacl = topsacl; top.Security.SaclAllowInherit = false; top.Security.SaclAuditTypeFilter = AuditType.FailureAudit | AuditType.Error; List <User> users = new List <User> { new User { Name = "x", IsBuiltIn = true, IsEnabled = true, IsLocal = true }, new User { Name = "y", IsBuiltIn = false, IsEnabled = true, IsLocal = false }, new User { Name = "z", IsBuiltIn = true, IsEnabled = false, IsLocal = true } }; List <Group> groups = new List <Group> { new Group { Name = "gx", IsEnabled = true, IsLocal = false }, new Group { Name = "gy", IsEnabled = true, IsLocal = false }, new Group { Name = "gz", IsEnabled = true, IsLocal = false } }; GroupMembershipItem mx = new GroupMembershipItem { GroupUId = groups[0].UId, MemberUId = users[0].UId, IsMemberUser = true }; GroupMembershipItem my = new GroupMembershipItem { GroupUId = groups[0].UId, MemberUId = users[1].UId, IsMemberUser = true }; GroupMembershipItem mz = new GroupMembershipItem { GroupUId = groups[0].UId, MemberUId = groups[1].UId, IsMemberUser = false }; List <GroupMembershipItem> gm = new List <GroupMembershipItem> { mx, my, mz }; FileSystemDal dal = new FileSystemDal() { }; dal.Store.SecureObjects = new List <SecureObject>() { top }; dal.Store.Users = users; dal.Store.Groups = groups; dal.Store.GroupMembership = gm; User ux = dal.Store.Users.GetByName <User>("x"); string x = dal.ToYaml(); FileSystemDal f = new FileSystemDal(); f.FromYaml(x); f.CurrentPath = "meow.yaml"; f.AutomaticallyPersistChanges = true; bool contains = f.Store.GroupMembership.ContainsItem(mx); //bool ok = f.GroupMembership.Resolve( f.Groups, f.Users ); //FileSystemDal f2 = FileSystemDal.LoadFromYaml( foo ); User u0 = new User { Name = "gurl" }; User u1 = new User { Name = "f", UId = u0.UId }; f.Dal.UpsertUser(u0); f.Dal.UpsertUser(u1); bool parallel = false; if (parallel) { Parallel.For(0, 49, i => { f.UpsertGroup(new Group { Name = $"{i}_{DateTime.Now.Ticks}" }); }); } else { for (int i = 0; i < 50; i++) { f.UpsertGroup(new Group { Name = $"{i}_{DateTime.Now.Ticks}" }); } } //if( f.IsWorking ) //{ // System.Timers.Timer SuplexPoller = new System.Timers.Timer( 1000 ) // { // Enabled = true // }; // SuplexPoller.Elapsed += (s, e) => // { // while( f.IsWorking ) // System.Threading.Thread.Sleep( 500 ); // SuplexPoller.Enabled = false; // }; //} //while( f.IsWorking ) // f.WaitForExit(); Assert.IsTrue(true); }
public async Task DeleteGroupMembershipAsync(GroupMembershipItem groupMembershipItem) { string requestUri = $"gm/{groupMembershipItem.GroupUId}/?memberUId={groupMembershipItem.MemberUId}"; await DeleteAsync(requestUri).ConfigureAwait(_configureAwaitContinueOnCapturedContext); }
public void DeleteGroupMembership(GroupMembershipItem groupMembershipItem) { DeleteGroupMembershipAsync(groupMembershipItem).Wait(); }
public async Task <GroupMembershipItem> UpsertGroupMembershipAsync(GroupMembershipItem groupMembershipItem) { string requestUri = $"gm/"; return(await PostAsync <GroupMembershipItem>(groupMembershipItem, requestUri).ConfigureAwait(_configureAwaitContinueOnCapturedContext)); }
public GroupMembershipItem UpsertGroupMembership(GroupMembershipItem groupMembershipItem) { return(UpsertGroupMembershipAsync(groupMembershipItem).Result); }