Пример #1
0
        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));
            }
        }
Пример #2
0
        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);
        }