public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context) { ISiteSettingsRepository _SiteSettingsRepo = DependencyResolver.Current.GetService <ISiteSettingsRepository>(); ISiteRepository _SiteRepo = DependencyResolver.Current.GetService <ISiteRepository>(); var PasswordSettings = _SiteSettingsRepo.GetPasswordPolicy(_SiteRepo.CurrentSiteName()); List <ModelClientValidationRule> rules = new List <ModelClientValidationRule>(); if (!PasswordSettings.UsePasswordPolicy) { return(rules); } string ErrorMessage = GetErrorMessage(metadata.GetDisplayName()); if (PasswordSettings.MinLength > 0) { rules.Add(new ModelClientValidationMinLengthRule(ErrorMessage, PasswordSettings.MinLength)); } // can only have one regex if (!string.IsNullOrWhiteSpace(PasswordSettings.Regex)) { rules.Add(new ModelClientValidationRegexRule(ErrorMessage, PasswordSettings.Regex)); } else if (PasswordSettings.NumNonAlphanumericChars > 0) { rules.Add(new ModelClientValidationRegexRule(ErrorMessage, @"\W{" + PasswordSettings.NumNonAlphanumericChars + ",999}")); } return(rules); }
/// <summary> /// Get localized error message, can be overwritten by Password Policy message in settings /// </summary> /// <param name="name"></param> /// <returns></returns> private string GetErrorMessage(string name) { ISiteSettingsRepository _SiteSettingsRepo = DependencyResolver.Current.GetService <ISiteSettingsRepository>(); ISiteRepository _SiteRepo = DependencyResolver.Current.GetService <ISiteRepository>(); var PasswordSettings = _SiteSettingsRepo.GetPasswordPolicy(_SiteRepo.CurrentSiteName()); string NewErrorMessage = LocalizeString(!string.IsNullOrWhiteSpace(PasswordSettings.ViolationMessage) ? PasswordSettings.ViolationMessage : ErrorMessage); return(string.Format(CultureInfo.CurrentCulture, (NewErrorMessage ?? ""), name)); }
public override bool IsValid(object value) { if (value is string) { string Password = value.ToString(); ISiteRepository _SiteRepo = DependencyResolver.Current.GetService <ISiteRepository>(); IUserService _UserService = DependencyResolver.Current.GetService <IUserService>(); return(_UserService.ValidatePasswordPolicy(Password, _SiteRepo.CurrentSiteName())); } return(false); }
public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context) { ISiteSettingsRepository _SiteSettingsRepo = DependencyResolver.Current.GetService <ISiteSettingsRepository>(); ISiteRepository _SiteRepo = DependencyResolver.Current.GetService <ISiteRepository>(); var PasswordSettings = _SiteSettingsRepo.GetPasswordPolicy(_SiteRepo.CurrentSiteName()); List <ModelClientValidationRule> rules = new List <ModelClientValidationRule>(); if (!PasswordSettings.UsePasswordPolicy) { return(rules); } string ErrorMessage = GetErrorMessage(metadata.GetDisplayName()); if (PasswordSettings.MinLength > 0) { rules.Add(new ModelClientValidationMinLengthRule(ErrorMessage, PasswordSettings.MinLength)); } // can only have one regex if (!string.IsNullOrWhiteSpace(PasswordSettings.Regex)) { rules.Add(new ModelClientValidationRegexRule(ErrorMessage, PasswordSettings.Regex)); } else if (PasswordSettings.NumNonAlphanumericChars > 0) { string Rule = "(?=.*"; // Add a \W_ (at least 1) + Anything else rule for each non alphanumeric for (int nc = 0; nc < PasswordSettings.NumNonAlphanumericChars; nc++) { Rule += "[\\W_]+.*"; } Rule += ")."; if (PasswordSettings.MinLength > 0) { Rule += "{" + PasswordSettings.MinLength + ",}"; } else { Rule += "*"; } rules.Add(new ModelClientValidationRegexRule(ErrorMessage, Rule)); } return(rules); }
public IEnumerable <ITreeNode> GetDocuments(string SinglePath, PathSelectionEnum PathType, string[] PageTypes = null, string OrderBy = null, string WhereCondition = null, int MaxLevel = -1, int TopNumber = -1, string[] Columns = null, bool IncludeCoupledColumns = false) { using (MultiDocumentQuery Query = new MultiDocumentQuery()) { if (PageTypes != null && PageTypes.Length > 0) { if (PageTypes.Length == 1) { Query.Type(PageTypes[0]); } else { Query.Types(PageTypes); } } if (IncludeCoupledColumns) { Query.ExpandColumns(); } // Handle culture and versioning and site Query.Culture(cultureName) .CombineWithDefaultCulture() .CombineWithAnyCulture() .Published(!latestVersionEnabled) .LatestVersion(latestVersionEnabled) .OnSite(_SiteRepo.CurrentSiteName()); PathTypeEnum KenticoPathType = PathTypeEnum.Explicit; switch (PathType) { case PathSelectionEnum.ChildrenOnly: KenticoPathType = PathTypeEnum.Children; break; case PathSelectionEnum.ParentAndChildren: KenticoPathType = PathTypeEnum.Section; break; case PathSelectionEnum.ParentOnly: KenticoPathType = PathTypeEnum.Single; break; } Query.Path(SinglePath, KenticoPathType); if (!string.IsNullOrWhiteSpace(OrderBy)) { Query.OrderBy(OrderBy); } if (!string.IsNullOrWhiteSpace(WhereCondition)) { Query.Where(WhereCondition); } if (Columns != null && Columns.Length > 0) { Query.Columns(Columns); } if (MaxLevel >= 0) { Query.NestingLevel(MaxLevel); } if (TopNumber >= 0) { Query.TopN(TopNumber); } return(Query.TypedResult); } }