public void Test_Adapter_AutoSave() { var efAdapter = new CasbinDbAdapter(_context); Enforcer e = new Enforcer("examples/rbac_model.conf", efAdapter); TestGetPolicy(e, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write"), AsList("data2_admin", "data2", "read"), AsList("data2_admin", "data2", "write") )); e.AddPolicy("alice", "data1", "write"); TestGetPolicy(e, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write"), AsList("data2_admin", "data2", "read"), AsList("data2_admin", "data2", "write"), AsList("alice", "data1", "write") )); e.RemovePolicy("alice", "data1", "write"); TestGetPolicy(e, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write"), AsList("data2_admin", "data2", "read"), AsList("data2_admin", "data2", "write") )); e.RemoveFilteredPolicy(0, "data2_admin"); TestGetPolicy(e, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write") )); }
public CasbinController(DatabaseContext context) { _context = context; var efAdapter = new CasbinDbAdapter <int>(_context); _enforcer = new Enforcer("CasbinConfig/rbac_model.conf", efAdapter); }
public async Task TestAdapterAutoSaveAsync() { var adapter = new CasbinDbAdapter <int, CasbinRule <int> >(_asyncContext); var enforcer = new Enforcer(_modelProvideFixture.GetNewRbacModel(), adapter); TestGetPolicy(enforcer, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write"), AsList("data2_admin", "data2", "read"), AsList("data2_admin", "data2", "write") )); Assert.True(_asyncContext.CasbinRule.AsNoTracking().Count() == 5); await enforcer.AddPolicyAsync("alice", "data1", "write"); TestGetPolicy(enforcer, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write"), AsList("data2_admin", "data2", "read"), AsList("data2_admin", "data2", "write"), AsList("alice", "data1", "write") )); Assert.True(_asyncContext.CasbinRule.AsNoTracking().Count() == 6); await enforcer.RemovePolicyAsync("alice", "data1", "write"); TestGetPolicy(enforcer, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write"), AsList("data2_admin", "data2", "read"), AsList("data2_admin", "data2", "write") )); Assert.True(_asyncContext.CasbinRule.AsNoTracking().Count() == 5); await enforcer.RemoveFilteredPolicyAsync(0, "data2_admin"); TestGetPolicy(enforcer, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write") )); Assert.True(_asyncContext.CasbinRule.AsNoTracking().Count() == 3); }
public void Test_Adapter_AutoSave() { var efAdapter = new CasbinDbAdapter(_contextMock.Object); Enforcer e = new Enforcer("examples/rbac_model.conf", efAdapter); var _context = _contextMock.Object; TestGetPolicy(e, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write"), AsList("data2_admin", "data2", "read"), AsList("data2_admin", "data2", "write") )); Assert.True(_context.CasbinRule.Count() == 5); e.AddPolicy("alice", "data1", "write"); TestGetPolicy(e, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write"), AsList("data2_admin", "data2", "read"), AsList("data2_admin", "data2", "write"), AsList("alice", "data1", "write") )); Assert.True(_context.CasbinRule.Count() == 6); e.RemovePolicy("alice", "data1", "write"); TestGetPolicy(e, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write"), AsList("data2_admin", "data2", "read"), AsList("data2_admin", "data2", "write") )); Assert.True(_context.CasbinRule.Count() == 5); e.RemoveFilteredPolicy(0, "data2_admin"); TestGetPolicy(e, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write") )); Assert.True(_context.CasbinRule.Count() == 3); }
public void TestAdapterAutoSave() { var adapter = new CasbinDbAdapter <int>(_context); var enforcer = new Enforcer(_modelProvideFixture.GetNewRbacModel(), adapter); #region Load policy test TestGetPolicy(enforcer, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write"), AsList("data2_admin", "data2", "read"), AsList("data2_admin", "data2", "write") )); Assert.True(_context.CasbinRule.AsNoTracking().Count() is 5); #endregion #region Add policy test enforcer.AddPolicy("alice", "data1", "write"); TestGetPolicy(enforcer, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write"), AsList("data2_admin", "data2", "read"), AsList("data2_admin", "data2", "write"), AsList("alice", "data1", "write") )); Assert.True(_context.CasbinRule.AsNoTracking().Count() is 6); #endregion #region Remove poliy test enforcer.RemovePolicy("alice", "data1", "write"); TestGetPolicy(enforcer, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write"), AsList("data2_admin", "data2", "read"), AsList("data2_admin", "data2", "write") )); Assert.True(_context.CasbinRule.AsNoTracking().Count() is 5); enforcer.RemoveFilteredPolicy(0, "data2_admin"); TestGetPolicy(enforcer, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write") )); Assert.True(_context.CasbinRule.AsNoTracking().Count() is 3); #endregion #region Batch APIs test enforcer.AddPolicies(new [] { new List <string> { "alice", "data2", "write" }, new List <string> { "bob", "data1", "read" } }); TestGetPolicy(enforcer, AsList( AsList("alice", "data1", "read"), AsList("bob", "data2", "write"), AsList("alice", "data2", "write"), AsList("bob", "data1", "read") )); Assert.True(_context.CasbinRule.AsNoTracking().Count() is 5); enforcer.RemovePolicies(new [] { new List <string> { "alice", "data1", "read" }, new List <string> { "bob", "data2", "write" } }); TestGetPolicy(enforcer, AsList( AsList("alice", "data2", "write"), AsList("bob", "data1", "read") )); Assert.True(_context.CasbinRule.AsNoTracking().Count() is 3); #endregion #region IFilteredAdapter test enforcer.LoadFilteredPolicy(new Filter { P = new List <string> { "bob", "data1", "read" }, }); TestGetPolicy(enforcer, AsList( AsList("bob", "data1", "read") )); Assert.True(_context.CasbinRule.AsNoTracking().Count() is 3); enforcer.LoadFilteredPolicy(new Filter { P = new List <string> { "", "", "write" }, }); TestGetPolicy(enforcer, AsList( AsList("alice", "data2", "write") )); Assert.True(_context.CasbinRule.AsNoTracking().Count() is 3); #endregion }