public void bug_010_permission(){ ioc.finish(); ioc.Container.setupSecurity(); myapp.SetCurrentUser("ugmk\test2".toPrincipal("OPERATOR")); AclRule r1 = null; Assert.False((r1 = new AclRule{ RuleType = AclRuleType.Require, TokenMask = "/input", PrincipalMask = "r:UNDERWRITER", Permissions = "underwrite;" } ).IsRequireMatched(new AclRequest {Principal = myapp.usr, Token = "/input", Permission = "underwrite"})); AclRule r2 = null; Assert.True((r2 = new AclRule {RuleType = AclRuleType.Require, TokenMask = "/input", PrincipalMask = "r:OPERATOR",}) .IsRequireMatched(new AclRequest {Principal = myapp.usr, Token = "/input", Permission = "underwrite"})); acl.repository.Add(r1); acl.repository.Add(r2); Assert.True(acl.get("/input", "access")); Assert.False(acl.get("/input", "underwrite")); }
public void can_define_local_application_rules(){ ioc.finish(); ioc.Container.setupSecurity(); ioc.Container.setupFilesystem(); myapp.files.Write("~/mod/acl.config", mod); myapp.files.Write("~/usr/acl.config", usrRule); var appRules = ioc.get<IAclApplicationRuleProvider>(); Assert.AreEqual(2, appRules.GetRules().Count()); appRules.Clear(); var content = ""; Assert.AreNotEqual(usrRule, (content = myapp.files.Read("~/usr/acl.config"))); Assert.AreEqual(mod, myapp.files.Read("~/mod/acl.config")); //check that mod file is not affected Assert.AreEqual(1, appRules.GetRules().Count()); var rule = new AclRule{PrincipalMask = "test\\test3", TokenMask = "/test/test3"}; appRules.Add(rule); CollectionAssert.Contains(appRules.GetRules(),rule); Assert.AreNotEqual(content, myapp.files.Read("~/usr/acl.config")); Assert.AreEqual(mod, myapp.files.Read("~/mod/acl.config")); appRules.GetRules().First(x => x.Equals(rule)); }