public ActiveDirectoryHandlerResults ModifyGroup(string identity, AdGroup group, string domain = null) { string planName = config.Plans.Group.Modify; StartPlanEnvelope pe = GetPlanEnvelope(BuildIdentity(domain, identity), group); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults AddGroupToGroup(string identity, string groupIdentity, string domain = null, string groupdomain = null) { string planName = config.Plans.Group.AddToGroup; StartPlanEnvelope pe = GetPlanEnvelope(BuildIdentity(domain, identity), BuildIdentity(groupdomain, groupIdentity)); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults CreateUser(string identity, AdUser user, string domain = null) { string planName = config.Plans.User.Create; StartPlanEnvelope pe = GetPlanEnvelope(BuildIdentity(domain, identity), user); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults Search(AdSearchRequest request) { string planName = config.Plans.Search; StartPlanEnvelope pe = GetPlanEnvelope(request); return(CallPlan(planName, pe)); }
public object StartPlanSync([FromBody] StartPlanEnvelope planEnvelope, string planUniqueName, bool dryRun = false, string requestNumber = null, string path = "Actions[0]:Result:ExitData", SerializationType serializationType = SerializationType.Json, bool setContentType = true, int pollingIntervalSeconds = 1, int timeoutSeconds = 120, string nodeRootUrl = null) { if (!string.IsNullOrWhiteSpace(requestNumber)) { requestNumber = System.Web.HttpUtility.UrlDecode(requestNumber); } if (!string.IsNullOrWhiteSpace(nodeRootUrl)) { requestNumber = System.Web.HttpUtility.UrlDecode(nodeRootUrl); } string context = GetContext(nameof(StartPlanSync), nameof(CurrentUserName), CurrentUserName, nameof(planUniqueName), planUniqueName, nameof(dryRun), dryRun, nameof(requestNumber), requestNumber, nameof(path), path, nameof(serializationType), serializationType, nameof(setContentType), setContentType, nameof(pollingIntervalSeconds), pollingIntervalSeconds, nameof(timeoutSeconds), timeoutSeconds, nameof(nodeRootUrl), nodeRootUrl); SynapseServer.Logger.Debug(context); long instanceId = StartPlan(planEnvelope, planUniqueName, dryRun, requestNumber, nodeRootUrl); return(WaitForTerminalStatusOrTimeout(instanceId, planUniqueName, path, serializationType, pollingIntervalSeconds, timeoutSeconds, setContentType)); }
public ActiveDirectoryHandlerResults ModifyUser(string identity, AdUser user) { string planName = config.Plans.User.Modify; StartPlanEnvelope pe = GetPlanEnvelope(identity, user); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults GetUser(string identity) { string planName = config.Plans.User.Get; StartPlanEnvelope pe = GetPlanEnvelope(identity); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults AddUserToGroup(string identity, string groupidentity) { string planName = config.Plans.User.AddToGroup; StartPlanEnvelope pe = GetPlanEnvelope(identity, groupidentity); return(CallPlan(planName, pe)); }
private void AddPropertiesToPlan(StartPlanEnvelope pe, Dictionary <String, List <String> > properties) { if (properties != null) { // Include Entire "Properties" Structure In Dynamic Parameter "properties" string propStr = YamlHelpers.Serialize(properties, true, false); pe.DynamicParameters.Add(@"properties", propStr); // Include Each Property In A Dynamic Parameter Matching The Name of the Property foreach (KeyValuePair <string, List <string> > property in properties) { if (property.Value?.Count > 0 && !(String.IsNullOrWhiteSpace(property.Key))) { String pName = property.Key.ToLower(); if (pe.DynamicParameters.ContainsKey(pName)) { continue; } string values = YamlHelpers.Serialize(property.Value, true, false); String pValue = values; pe.DynamicParameters.Add(pName, pValue); } } } }
// Create and Modify Group private StartPlanEnvelope GetPlanEnvelope(string identity, AdGroup group) { StartPlanEnvelope pe = GetPlanEnvelope(identity); if (group != null) { if (!string.IsNullOrWhiteSpace(group.Description)) { pe.DynamicParameters.Add(@"description", group.Description); } if (!string.IsNullOrWhiteSpace(group.SamAccountName)) { pe.DynamicParameters.Add(@"samaccountname", group.SamAccountName); } if (group.Scope != null) { pe.DynamicParameters.Add(@"scope", group.Scope.ToString()); } if (group.IsSecurityGroup != null) { pe.DynamicParameters.Add(@"securitygroup", group.IsSecurityGroup.ToString()); } if (group.ManagedBy != null) { pe.DynamicParameters.Add(@"managedby", group.ManagedBy); } AddPropertiesToPlan(pe, group.Properties); } return(pe); }
public ActiveDirectoryHandlerResults GetOrgUnit(string identity) { string planName = config.Plans.OrganizationalUnit.Get; StartPlanEnvelope pe = GetPlanEnvelope(identity); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults ModifyGroup(string identity, AdGroup group) { string planName = config.Plans.Group.Modify; StartPlanEnvelope pe = GetPlanEnvelope(identity, group); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults DeleteComputer(string identity, string domain = null) { string planName = config.Plans.Computer.Delete; StartPlanEnvelope pe = GetPlanEnvelope(BuildIdentity(domain, identity)); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults DefinedSearch(string planname, Dictionary <string, string> parameters) { string planName = planname; StartPlanEnvelope pe = GetPlanEnvelope(parameters); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults RemoveGroupFromGroup(string identity, string groupIdentity) { string planName = config.Plans.Group.RemoveFromGroup; StartPlanEnvelope pe = GetPlanEnvelope(identity, groupIdentity); return(CallPlan(planName, pe)); }
// Base Envelope for Generically Defined ActiveDirectory Searches private StartPlanEnvelope GetPlanEnvelope(AdSearchRequest request) { StartPlanEnvelope pe = new StartPlanEnvelope() { DynamicParameters = new Dictionary <string, string>() }; pe.DynamicParameters.Add(@"filter", request.Filter); if (request.SearchBase != null) { pe.DynamicParameters.Add(@"searchbase", request.SearchBase); } if (request.ResultsFile != null) { pe.DynamicParameters.Add(@"resultsfile", request.ResultsFile); } string attributes = YamlHelpers.Serialize(request.ReturnAttributes, true, false); if (attributes != null) { pe.DynamicParameters.Add(@"attributes", attributes); } return(pe); }
public ActiveDirectoryHandlerResults CreateOrgUnit(string identity, AdOrganizationalUnit ou) { string planName = config.Plans.OrganizationalUnit.Create; StartPlanEnvelope pe = GetPlanEnvelope(identity, ou); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults RemoveComputerFromGroup(string identity, string groupIdentity, string domain = null, string groupdomain = null) { string planName = config.Plans.Computer.RemoveFromGroup; StartPlanEnvelope pe = GetPlanEnvelope(BuildIdentity(domain, identity), BuildIdentity(groupdomain, groupIdentity)); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults ModifyComputer(string identity, AdComputer computer, string domain = null) { string planName = config.Plans.Computer.Modify; StartPlanEnvelope pe = GetPlanEnvelope(BuildIdentity(domain, identity), computer); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults DeleteGroup(string identity) { string planName = config.Plans.Group.Delete; StartPlanEnvelope pe = GetPlanEnvelope(identity); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults ModifyOrgUnit(string identity, AdOrganizationalUnit ou, string domain = null) { string planName = config.Plans.OrganizationalUnit.Modify; StartPlanEnvelope pe = GetPlanEnvelope(BuildIdentity(domain, identity), ou); return(CallPlan(planName, pe)); }
object StartPlan(string planUniqueName, Dictionary <string, string> parms = null, string path = "Actions[0]:Result:ExitData", SerializationType serializationType = SerializationType.Json, bool setContentType = true, int pollingIntervalSeconds = 1, int timeoutSeconds = 120, string nodeRootUrl = null, bool executeAsync = false) { StartPlanEnvelope pe = new StartPlanEnvelope { DynamicParameters = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) }; IEnumerable <KeyValuePair <string, string> > queryString = this.Request.GetQueryNameValuePairs(); foreach (KeyValuePair <string, string> kvp in queryString) { pe.DynamicParameters.Add(kvp.Key, kvp.Value); } if (parms != null) { foreach (KeyValuePair <string, string> kvp in parms) { pe.DynamicParameters[kvp.Key] = kvp.Value; } } string body = "body"; if (Url.Request.Properties.ContainsKey(body) && Url.Request.Properties[body] != null) { pe.DynamicParameters["requestBody"] = Url.Request.Properties[body].ToString(); } string dryrun = "dryRun"; bool dryRun = false; if (pe.DynamicParameters.ContainsKey(dryrun)) { bool.TryParse(pe.DynamicParameters[dryrun], out dryRun); } string requestnumber = "requestNumber"; string requestNumber = null; if (pe.DynamicParameters.ContainsKey(requestnumber)) { requestNumber = pe.DynamicParameters[requestnumber]; } if (executeAsync) { return(GetExecuteControllerInstance().StartPlan(planEnvelope: pe, planUniqueName: planUniqueName, dryRun: dryRun, requestNumber: requestNumber, nodeRootUrl: nodeRootUrl)); } else { return(GetExecuteControllerInstance().StartPlanSync(planEnvelope: pe, planUniqueName: planUniqueName, dryRun: dryRun, requestNumber: requestNumber, path: path, serializationType: serializationType, setContentType: setContentType, pollingIntervalSeconds: pollingIntervalSeconds, timeoutSeconds: timeoutSeconds, nodeRootUrl: nodeRootUrl)); } }
private ActiveDirectoryHandlerResults CallPlan(string planName, StartPlanEnvelope planEnvelope) { IExecuteController ec = GetExecuteControllerInstance(); StartPlanEnvelope pe = planEnvelope; if (pe == null) { pe = new StartPlanEnvelope() { DynamicParameters = new Dictionary <string, string>() } } ; IEnumerable <KeyValuePair <string, string> > queryString = this.Request.GetQueryNameValuePairs(); foreach (KeyValuePair <string, string> kvp in queryString) { pe.DynamicParameters.Add(kvp.Key, kvp.Value); } object reply = ec.StartPlanSync(pe, planName, setContentType: false); ActiveDirectoryHandlerResults result = null; Type replyType = reply.GetType(); if (replyType == typeof(string)) { try { result = YamlHelpers.Deserialize <ActiveDirectoryHandlerResults>((string)reply); } catch (Exception e) { try { // Reply was not Json or Yaml. See if Xml XmlDocument doc = new XmlDocument(); doc.LoadXml((string)reply); result = XmlHelpers.Deserialize <ActiveDirectoryHandlerResults>(doc.InnerXml); } catch (Exception) { throw e; } } } else if (replyType == typeof(Dictionary <object, object>)) { String str = YamlHelpers.Serialize(reply); result = YamlHelpers.Deserialize <ActiveDirectoryHandlerResults>(str); } else if (replyType == typeof(XmlDocument)) { XmlDocument doc = (XmlDocument)reply; result = XmlHelpers.Deserialize <ActiveDirectoryHandlerResults>(doc.InnerXml); } return(result); }
public ActiveDirectoryHandlerResults MoveOrgUnit(string identity, string moveto, string domain = null, string movetodomain = null) { string planName = config.Plans.OrganizationalUnit.Move; StartPlanEnvelope pe = GetPlanEnvelope(BuildIdentity(domain, identity)); pe.DynamicParameters.Add(nameof(moveto), BuildIdentity(movetodomain, moveto)); return(CallPlan(planName, pe)); }
// Base Envelope for All Objects Retrieved By Either Name or DistinguishedName (Users, Groups and OrgUnits) private StartPlanEnvelope GetPlanEnvelope(string identity) { StartPlanEnvelope pe = GetPlanEnvelope(); pe.DynamicParameters.Add(nameof(identity), identity); return(pe); }
public ActiveDirectoryHandlerResults SetAccessRuleOnComputer(string identity, string principal, string type, string rights, string domain = null, string principaldomain = null, string inheritance = null) { string planName = config.Plans.Computer.SetAccessRule; AdAccessRule rule = CreateAccessRule(BuildIdentity(principaldomain, principal), type, rights, inheritance); StartPlanEnvelope pe = GetPlanEnvelope(BuildIdentity(domain, identity), rule); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults SetAccessRuleOnGroup(string identity, string principal, string type, string rights) { string planName = config.Plans.Group.SetAccessRule; AdAccessRule rule = CreateAccessRule(principal, type, rights); StartPlanEnvelope pe = GetPlanEnvelope(identity, rule); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults RemoveAccessRuleFromOrgUnit(string identity, string principal, string type, string rights, string domain = null, string principaldomain = null, string inheritance = null) { string planName = config.Plans.OrganizationalUnit.RemoveAccessRule; AdAccessRule rule = CreateAccessRule(BuildIdentity(principaldomain, principal), type, rights, inheritance); StartPlanEnvelope pe = GetPlanEnvelope(BuildIdentity(domain, identity), rule); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults PurgeAccessRulesOnOrgUnit(string identity, string principal, string domain = null, string principaldomain = null) { string planName = config.Plans.OrganizationalUnit.PurgeAccessRules; AdAccessRule rule = CreateAccessRule(BuildIdentity(principaldomain, principal), null, null, null); StartPlanEnvelope pe = GetPlanEnvelope(BuildIdentity(domain, identity), rule); return(CallPlan(planName, pe)); }
public ActiveDirectoryHandlerResults PurgeAccessRulesOnGroup(string identity, string principal) { string planName = config.Plans.Group.PurgeAccessRules; AdAccessRule rule = CreateAccessRule(principal, null, null); StartPlanEnvelope pe = GetPlanEnvelope(identity, rule); return(CallPlan(planName, pe)); }