public AgentProvisioner(string maName, string provisionedObjectType, ProvisionRule provisionRule, SimpleAttributeSetter[] simpleAttributeSetters, AdvancedAttributeSetter[] advancedAttributeSetters, string[] handledObjectTypes) { MAName = maName; ProvisionedObjectType = provisionedObjectType; ProvisionRule = provisionRule; _ruleSolver = new SimpleRuleSolver(ProvisionRule); SimpleAttributeSetters = simpleAttributeSetters; AdvancedAttributeSetters = advancedAttributeSetters; HandledObjectTypes = handledObjectTypes; if (simpleAttributeSetters == null) { SimpleAttributeSetters = new SimpleAttributeSetter[0]; } if (advancedAttributeSetters == null) { AdvancedAttributeSetters = new AdvancedAttributeSetter[0]; } if (HandledObjectTypes == null) { HandledObjectTypes = new string[0]; } }
public void SaveRule(ProvisionRule rule) { using (var conn = new SqlConnection(ConnectionString)) { var existingRule = conn.Query <ProvisionRule>("select * from ProvisionRule where Name = @Name", new { Name = rule.Name }).FirstOrDefault(); if (existingRule == null) { conn.Execute( "insert into ProvisionRule (Name, SourceObject, TargetObject, Agent, Condition, RuleType) values (@Name, @SourceObject, @TargetObject, @Agent, @Condition, @RuleType)", rule); } else { conn.Execute( "update ProvisionRule " + "set SourceObject = @SourceObject, TargetObject = @TargetObject, Agent = @Agent, Condition = @Condition " + "where Name = @Name", rule); } conn.Execute("delete from InitialFlowRule where ProvisionRuleName = @ProvisionRuleName", new { ProvisionRuleName = rule.Name }); if (rule.InitialFlows != null) { foreach (FlowRule initialFlow in rule.InitialFlows) { conn.Execute("insert into InitialFlowRule (ProvisionRuleName, FlowRuleName) values (@ProvisionRuleName, @FlowRuleName))" , new { ProvisionRuleName = rule.Name, FlowRuleName = initialFlow.Name }); } } } }
public void SimpleRuleSolver_solves_AttributeRule() { var mventry = new MockMventry(); mventry["uid"].Value = "espenaske"; mventry["givenName"].Value = "per"; var attributeRule = new AttributeRule() { IsPresent = true, Attribute = "uid", RequiredValue = "espenaske" }; var attributeRule2 = new AttributeRule() { Attribute = "givenName", RequiredValue = "per" }; var provRule = new ProvisionRule(); provRule.AttributeRules = new[] { attributeRule, attributeRule2 }; var ruleSolver = new SimpleRuleSolver(provRule); bool solved = ruleSolver.PassesRule(mventry); Assert.IsTrue(solved); }
public void SaveRule(ProvisionRule rule) { var existingRule = _provRules.FirstOrDefault(provRule => provRule.Name == rule.Name); if (existingRule != null) { _provRules.Remove(existingRule); } _provRules.Add(rule); }
public void SimpleRuleSolver_solves_ObjectRequirement() { var correctRule = new ProvisionRule(); var wrongRule = new ProvisionRule(); var mventry = new MockMventry("TestObj"); wrongRule.RequiredObjects = new[] { "WrongObj" }; correctRule.RequiredObjects = new[] { "TestObj" }; var ruleSolver = new SimpleRuleSolver(wrongRule); Assert.IsFalse(ruleSolver.PassesRule(mventry)); ruleSolver = new SimpleRuleSolver(correctRule); Assert.IsTrue(ruleSolver.PassesRule(mventry)); }
public void SimpleRuleSolver_solves_AgentRequirement() { var mventry = new MockMventry(); mventry.ConnectedMAs["HR MA"].Connectors.StartNewConnector("person"); var provRule = new ProvisionRule(); //provRule.AttributeRules = new[] { attributeRule }; provRule.RequiredAgents = new [] { "HR MA" }; var ruleSolver = new SimpleRuleSolver(provRule); bool solved = ruleSolver.PassesRule(mventry); Assert.IsTrue(solved); }
public void SaveRule(ProvisionRule rule) { using (var conn = new SQLiteConnection(ConfigHelper.ConnectionString)) { var existingRule = conn.Query <FlowRule>("select * from ProvisionRule where Name = @Name", new { Name = rule.Name }).FirstOrDefault(); if (existingRule == null) { conn.Execute( "insert into ProvisionRule ([Name],[SourceObject],[TargetObject],[Agent],[Condition],[Deprovision],[InitialFlows],[RuleType]) values (@Name, @SourceObject, @TargetObject, @Agent, @Condition, @Deprovision, @InitialFlows, @RuleType)" , new { rule.Name, rule.SourceObject, rule.TargetObject, rule.Agent, rule.Condition, rule.Deprovision, rule.RuleType }); } //TODO: save initial flows } }
public SimpleRuleSolver(ProvisionRule rule) { Rule = rule; }
public void Save(ProvisionRule provisionRule) { RuleRepos.ProvRules.SaveRule(provisionRule); }
public void SaveRule(ProvisionRule rule) { throw new NotImplementedException(); }