private static void BuildParamFlightingList(RoleEntryInfo entry, ICmdletSettings cmdletSettings, ref IList <string> paramFlightingList) { IEnumerable <string> enumerable = cmdletSettings.Params0.Union(cmdletSettings.Params1); enumerable = enumerable.Union(cmdletSettings.Params2); enumerable = enumerable.Union(cmdletSettings.Params3); enumerable = enumerable.Union(cmdletSettings.Params4); enumerable = enumerable.Union(cmdletSettings.Params5); enumerable = enumerable.Union(cmdletSettings.Params6); enumerable = enumerable.Union(cmdletSettings.Params7); enumerable = enumerable.Union(cmdletSettings.Params8); enumerable = enumerable.Union(cmdletSettings.Params9); if (enumerable != null) { paramFlightingList = enumerable.ToList <string>(); AuthZLogger.SafeAppendColumn(RpsAuthZMetadata.CmdletFlightEnabled, entry.RoleEntry.Name, string.Join(" ", paramFlightingList)); } }
internal static void FilterCmdletsAndParams(VariantConfigurationSnapshot configurationSnapshot, List <RoleEntryInfo> cmdletList) { if (configurationSnapshot == null) { return; } IDictionary <string, ICmdletSettings> dictionary = null; try { dictionary = configurationSnapshot.GetObjectsOfType <ICmdletSettings>("CmdletInfra.settings.ini"); } catch (KeyNotFoundException ex) { AuthZLogger.SafeAppendGenericError("VanriantConfigurationSnapshot.KeyNotFoundException", ex.Message, false); } if (dictionary == null || dictionary.Count == 0) { return; } List <RoleEntryInfo> cmdletTobeAdded = new List <RoleEntryInfo>(); List <RoleEntryInfo> cmdletTobeRemoved = new List <RoleEntryInfo>(); string value = ""; ICmdletSettings cmdletSettings = null; IList <string> list = null; foreach (RoleEntryInfo roleEntryInfo in cmdletList) { if (dictionary.TryGetValue(roleEntryInfo.RoleEntry.Name, out cmdletSettings)) { bool flag = !roleEntryInfo.RoleEntry.Name.Equals(value, StringComparison.OrdinalIgnoreCase); if (flag) { value = roleEntryInfo.RoleEntry.Name; } IList <string> list2 = cmdletSettings.AllFlightingParams; if (!cmdletSettings.Enabled) { CmdletFlight.RemoveCmdlet(roleEntryInfo, cmdletTobeRemoved, flag); } else if (list2 != null && list2.Count > 0) { if (flag) { CmdletFlight.BuildParamFlightingList(roleEntryInfo, cmdletSettings, ref list); } if (list != null) { IEnumerable <string> source = list2.Except(list); list2 = source.ToList <string>(); } CmdletFlight.RemoveCmdletParams(roleEntryInfo, list2, cmdletTobeRemoved, cmdletTobeAdded, flag); } else if (flag) { AuthZLogger.SafeAppendColumn(RpsAuthZMetadata.CmdletFlightEnabled, roleEntryInfo.RoleEntry.Name, "*"); } } } CmdletFlight.CommitChanges(cmdletList, cmdletTobeRemoved, cmdletTobeAdded); }