public ValidationRuleDefinition(string name, string feature, ValidationRuleSkus applicableSku, List <RoleEntry> applicableRoleEntries, List <Capability> restrictedCapabilities, List <Capability> overridingAllowCapabilities, ValidationErrorStringProvider errorStringProvider, List <ValidationRuleExpression> expressions) : this(name, feature, applicableSku, applicableRoleEntries, restrictedCapabilities, overridingAllowCapabilities, errorStringProvider) { if (expressions == null) { throw new ArgumentNullException("expressions"); } this.Expressions = expressions; }
private static ValidationRuleSkus GetValidationRuleSkuForUser(ADRawEntry currentExecutingUser) { ValidationRuleSkus result = ValidationRuleSkus.None; bool flag = OrganizationId.ForestWideOrgId.Equals(currentExecutingUser[ADObjectSchema.OrganizationId]); switch (ValidationRuleFactory.ExchangeSku) { case Datacenter.ExchangeSku.Enterprise: if (flag) { result = ValidationRuleSkus.Enterprise; } break; case Datacenter.ExchangeSku.ExchangeDatacenter: case Datacenter.ExchangeSku.DatacenterDedicated: if (flag) { result = ValidationRuleSkus.Datacenter; } else { result = ValidationRuleSkus.DatacenterTenant; } break; case Datacenter.ExchangeSku.PartnerHosted: if (flag) { result = ValidationRuleSkus.Hosted; } else { result = ValidationRuleSkus.HostedTenant; } break; } return(result); }
public ValidationRuleDefinition(string name, string feature, ValidationRuleSkus applicableSku, List <RoleEntry> applicableRoleEntries, List <Capability> restrictedCapabilities, List <Capability> overridingAllowCapabilities, ValidationErrorStringProvider errorStringProvider) { if (applicableRoleEntries == null) { throw new ArgumentNullException("applicableRoleEntries"); } if (restrictedCapabilities == null) { throw new ArgumentNullException("restrictedCapabilities"); } if (overridingAllowCapabilities == null) { throw new ArgumentNullException("overridingAllowCapabilities"); } if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (string.IsNullOrEmpty(feature)) { throw new ArgumentNullException("feature"); } if (errorStringProvider == null) { throw new ArgumentNullException("errorStringProvider"); } this.Name = name; this.Feature = feature; this.ApplicableSku = applicableSku; this.ApplicableRoleEntries = applicableRoleEntries; this.ErrorString = errorStringProvider; this.ApplicableRoleEntries.Sort(RoleEntryComparer.Instance); restrictedCapabilities.Sort(); this.RestrictedCapabilities = new ReadOnlyCollection <Capability>(restrictedCapabilities); overridingAllowCapabilities.Sort(); this.OverridingAllowCapabilities = new ReadOnlyCollection <Capability>(overridingAllowCapabilities); }
public OrganizationValidationRuleDefinition(string name, string feature, ValidationRuleSkus applicableSku, List <RoleEntry> applicableRoleEntries, ValidationErrorStringProvider errorStringProvider, List <ValidationRuleExpression> restrictionExpressions, List <ValidationRuleExpression> overridingAllowExpressions) : base(name, feature, applicableSku, applicableRoleEntries, new List <Capability>(), new List <Capability>(), errorStringProvider) { this.RestrictionExpressions = restrictionExpressions; this.OverridingAllowExpressions = overridingAllowExpressions; }
internal static IList <ValidationRule> GetApplicableValidationRules(string cmdletFullName, IList <string> parameters, ValidationRuleSkus applicableSku) { IList <RoleEntryValidationRuleTuple> applicableRules = RBACValidationRulesList.Instance.GetApplicableRules(cmdletFullName, parameters, applicableSku); List <ValidationRule> list = new List <ValidationRule>(applicableRules.Count); foreach (RoleEntryValidationRuleTuple roleEntryValidationRuleTuple in applicableRules) { list.Add(ValidationRuleFactory.Create(roleEntryValidationRuleTuple.RuleDefinition, roleEntryValidationRuleTuple.MatchingRoleEntry)); } return(list); }
internal IList <RoleEntryValidationRuleTuple> GetApplicableRules(string cmdletFullName, IList <string> parameters, ValidationRuleSkus applicableSku) { if (string.IsNullOrEmpty(cmdletFullName)) { throw new ArgumentNullException("cmdletFullName"); } if (parameters == null) { throw new ArgumentNullException("parameters"); } ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string>((long)this.GetHashCode(), "Entering RBACValidationRulesList.GetApplicableRules({0}). Sku {1} ", cmdletFullName, applicableSku.ToString()); if (!this.IsListInitialized()) { return(RBACValidationRulesList.Nested.TupleEmptyList); } List <ValidationRuleDefinition> list = null; IList <RoleEntryValidationRuleTuple> list2 = RBACValidationRulesList.Nested.TupleEmptyList; if (this.cmdletToRules.TryGetValue(cmdletFullName, out list)) { RoleEntry targetRoleEntry = null; if (this.TryCreateRoleEntry(cmdletFullName, parameters, out targetRoleEntry)) { RoleEntry matchingRoleEntry = null; list2 = new List <RoleEntryValidationRuleTuple>(list.Count); foreach (ValidationRuleDefinition validationRuleDefinition in list) { if ((byte)(validationRuleDefinition.ApplicableSku & applicableSku) != 0 && validationRuleDefinition.IsRuleApplicable(targetRoleEntry, out matchingRoleEntry)) { list2.Add(new RoleEntryValidationRuleTuple(validationRuleDefinition, matchingRoleEntry)); } } } } ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string>((long)this.GetHashCode(), "RBACValidationRulesList.GetApplicableRules({0}). returns '{1}'", cmdletFullName, (list2.Count == 0) ? "<Empty>" : (list2.Count.ToString() + " validation rules.")); return(list2); }