public void Read_SeveralTimes_VerifyReload() { var fileSystem = new FakeFileSystem(DateTimeProvider.Singleton); var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "settings.xml"); IFakeFile settingsFile = fileSystem.SetFileFromUtf8String(path, ExpectedSettingsFile1); DateTime currentTime = new DateTime(2016, 1, 1, 12, 0, 0); var dateTimeProviderMock = new Mock <IDateTimeProvider>(); dateTimeProviderMock .Setup(x => x.Time()) .Returns(() => currentTime); var settingsInternal = new SettingsInternal(fileSystem, dateTimeProviderMock.Object); var value = settingsInternal.GetSetting("key"); // should cause reload currentTime = currentTime.AddSeconds(32); value = settingsInternal.GetSetting("key"); currentTime = currentTime.AddSeconds(32); // should cause reload value = settingsInternal.GetSetting("key"); FileAccessInfo fileAccessInfo = fileSystem.GetFileAccessInfo(path); Assert.That(fileAccessInfo.Reads, Is.EqualTo(2)); Assert.That(fileAccessInfo.Writes, Is.EqualTo(0)); }
/// <summary> /// Creates an access token for a group of files /// </summary> /// <param name="info">The file IDs and file sources to include in token</param> /// <param name="timeout">Time in seconds to automatically delete token if inactive. 0 = disabled</param> /// <returns></returns> public Guid CreateFileReadTokenForGroup(FileAccessInfo info, int timeout) { Guid accessId = Guid.NewGuid(); AccessToken token = new AccessToken(accessId, info.FileIds, info.FileSources, timeout); token.TokenClosed += Token_TokenClosed; currentAccessTokens.Add(accessId, token); ISLogger.Write("FileAccessController: Created group token {0} for {1} files", accessId, info.FileIds.Length); return(accessId); }
public FileAccessInfo GetRules() { FileAccessInfo rules = new FileAccessInfo(); List <AccessRule> accessRules = new List <AccessRule> { // For Default User new AccessRule { Path = "*.*", Role = "Default User", Read = Permission.Deny, Edit = Permission.Deny, Copy = Permission.Deny, Download = Permission.Deny }, new AccessRule { Path = "*", Role = "Default User", Read = Permission.Deny, Edit = Permission.Deny, Copy = Permission.Deny, EditContents = Permission.Deny, Upload = Permission.Deny }, new AccessRule { Path = "", Role = "Default User", Read = Permission.Allow, Edit = Permission.Deny, Copy = Permission.Deny, EditContents = Permission.Deny, Upload = Permission.Deny }, // For Administrator new AccessRule { Path = "*.*", Role = "Administrator", Read = Permission.Allow, Edit = Permission.Allow, Copy = Permission.Allow, Download = Permission.Allow }, new AccessRule { Path = "*", Role = "Administrator", Read = Permission.Allow, Edit = Permission.Allow, Copy = Permission.Allow, EditContents = Permission.Allow, Upload = Permission.Allow }, new AccessRule { Path = "", Role = "Administrator", Read = Permission.Allow, Edit = Permission.Deny, Copy = Permission.Allow, EditContents = Permission.Allow, Upload = Permission.Allow }, // For Document Manager new AccessRule { Path = "*.*", Role = "Document Manager", Read = Permission.Deny, Edit = Permission.Deny, Copy = Permission.Deny, Download = Permission.Deny }, new AccessRule { Path = "Documents/*.*", Role = "Document Manager", Read = Permission.Allow, Edit = Permission.Allow, Copy = Permission.Allow, Download = Permission.Allow }, new AccessRule { Path = "*", Role = "Document Manager", Read = Permission.Deny, Edit = Permission.Deny, Copy = Permission.Deny, EditContents = Permission.Deny, Upload = Permission.Deny }, new AccessRule { Path = "", Role = "Document Manager", Read = Permission.Allow, Edit = Permission.Deny, Copy = Permission.Deny, EditContents = Permission.Deny, Upload = Permission.Deny }, new AccessRule { Path = "Documents", Role = "Document Manager", Read = Permission.Allow, Edit = Permission.Deny, Copy = Permission.Allow, EditContents = Permission.Allow, Upload = Permission.Allow }, new AccessRule { Path = "Documents/*", Role = "Document Manager", Read = Permission.Allow, Edit = Permission.Allow, Copy = Permission.Allow, EditContents = Permission.Allow, Upload = Permission.Allow }, }; rules.Rules = accessRules; rules.Role = Session["Role"].ToString(); rules.RootPath = "~/FileContent/"; return(rules); }