Example #1
0
 override public void DeleteGroupMembership(GroupMembershipItem groupMembershipItem)
 {
     base.DeleteGroupMembership(groupMembershipItem);
     if (SaveChanges)
     {
         LockedSaveChanges();
     }
 }
Example #2
0
        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);
        }
Example #3
0
    override public GroupMembershipItem UpsertGroupMembership(GroupMembershipItem groupMembershipItem)
    {
        GroupMembershipItem x = base.UpsertGroupMembership(groupMembershipItem);

        if (SaveChanges)
        {
            LockedSaveChanges();
        }
        return(x);
    }
Example #4
0
        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);
            }
        }
Example #5
0
        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);
        }
Example #6
0
        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 );
        }
Example #7
0
        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);
        }
Example #8
0
 void ISuplexDal.DeleteGroupMembership(GroupMembershipItem groupMembershipItem)
 {
     _dal.DeleteGroupMembership(groupMembershipItem);
 }
Example #9
0
 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);
 }