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; }
public void Init() { _store = new SuplexStore(); _dal = new MemoryDal(_store); so = new SecureObject { UniqueName = "top" }; _dal.UpsertSecureObject(so); }
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; }
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); } } }
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(); }
public FileSystemDal() { Store = new SuplexStore(); }
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); }
public void LoadStoreData(string storeData) { using (io.StringReader sr = new io.StringReader(storeData)) _splxStore = _splxApi.LoadFromReader(sr); IsMemoryStore = true; }