Exemple #1
0
        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));
        }
Exemple #2
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);
        }
Exemple #3
0
        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);
        }