Exemplo n.º 1
0
    public void ToYamlFile(string path = null, bool serializeAsJson = false)
    {
        if (string.IsNullOrWhiteSpace(path) && !string.IsNullOrWhiteSpace(CurrentPath))
        {
            path = CurrentPath;
        }

        if (string.IsNullOrWhiteSpace(path))
        {
            throw new ArgumentException("path or CurrentPath must not be null.");
        }

        SuplexStore clone = new SuplexStore
        {
            Users           = Store.Users,
            Groups          = Store.Groups,
            GroupMembership = Store.GroupMembership
        };

        Store.SecureObjects.ShallowCloneTo(clone.SecureObjects);

        YamlHelpers.SerializeFile(path, clone,
                                  serializeAsJson: serializeAsJson, formatJson: serializeAsJson, emitDefaultValues: true, converter: new YamlAceConverter());

        CurrentPath = path;
    }
Exemplo n.º 2
0
 public void Init()
 {
     _store = new SuplexStore();
     _dal   = new MemoryDal(_store);
     so     = new SecureObject {
         UniqueName = "top"
     };
     _dal.UpsertSecureObject(so);
 }
Exemplo n.º 3
0
        public SuplexDal(string filestorePath)
        {
            string folder = io.Path.GetDirectoryName(filestorePath);
            string file   = io.Path.GetFileName(filestorePath);

            filestoreWatcher                     = new io.FileSystemWatcher(folder, file);
            filestoreWatcher.Changed            += FilestoreWatcher_Changed;
            filestoreWatcher.EnableRaisingEvents = true;

            _splxStore  = _splxApi.LoadFile(filestorePath);
            IsFileStore = true;
        }
Exemplo n.º 4
0
        private void FilestoreWatcher_Changed(object sender, io.FileSystemEventArgs e)
        {
            int attempts = 0;

            while (attempts++ < 5)
            {
                try
                {
                    _splxStore = _splxApi.LoadFile(e.FullPath);
                }
                catch { System.Threading.Thread.Sleep(100); }
            }
        }
Exemplo n.º 5
0
    public string ToYaml(bool serializeAsJson = false)
    {
        SuplexStore clone = new SuplexStore
        {
            Users           = Store.Users,
            Groups          = Store.Groups,
            GroupMembership = Store.GroupMembership
        };

        Store.SecureObjects.ShallowCloneTo(clone.SecureObjects);

        return(YamlHelpers.Serialize(clone,
                                     serializeAsJson: serializeAsJson, formatJson: serializeAsJson, emitDefaultValues: true, converter: new YamlAceConverter()));
    }
 public void Initialize()
 {
     switch( Type )
     {
         case SuplexConnectionType.File:
         {
             _splxStore = _splxApi.LoadFile( Path );
             PathLastWriteTime = File.GetLastWriteTimeUtc( Path );
             break;
         }
         default:
         {
             //nothing else suported yet, throw exception?
             break;
         }
     }
 }
        public void RefreshStore()
        {
            if (IsServiceConnection)
            {
                Store = new SuplexStore
                {
                    Users         = _dal.GetUserByName(null, false),
                    Groups        = _dal.GetGroupByName(null, false),
                    SecureObjects = _dal.GetSecureObjects() as List <SecureObject>
                };
            }
            else
            {
                if (HasConnectionPath)
                {
                    AsFileSystemDal.FromYamlFile(ConnectionPath);
                }
                Store = AsFileSystemDal.Store as SuplexStore;
            }

            Store.SecureObjects?.EnsureParentUIdRecursive();
        }
Exemplo n.º 8
0
 public FileSystemDal()
 {
     Store = new SuplexStore();
 }
Exemplo n.º 9
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);
        }
Exemplo n.º 10
0
 public void LoadStoreData(string storeData)
 {
     using (io.StringReader sr = new io.StringReader(storeData))
         _splxStore = _splxApi.LoadFromReader(sr);
     IsMemoryStore = true;
 }