public TweezersValidationResult Validate(string fieldName, dynamic value)
 {
     try
     {
         string parsedValue = (string)value;
         return(parsedValue.Length >= Minimum
             ? TweezersValidationResult.Accept()
             : TweezersValidationResult.Reject($"The length of {fieldName} is lower than {Minimum}"));
     }
     catch
     {
         return(TweezersValidationResult.Reject($"Could not parse {fieldName}"));
     }
 }
 public TweezersValidationResult Validate(string fieldName, dynamic value)
 {
     try
     {
         string parsedValue = (string)value;
         Regex  regex       = new Regex(Pattern);
         return(regex.IsMatch(parsedValue)
             ? TweezersValidationResult.Accept()
             : TweezersValidationResult.Reject($"{fieldName} does not match pattern '{Pattern}'"));
     }
     catch
     {
         return(TweezersValidationResult.Reject($"Could not parse {fieldName}"));
     }
 }
 public TweezersValidationResult Validate(string fieldName, dynamic value)
 {
     try
     {
         string parsedValue = (string)value;
         return(parsedValue.In(AllowedValues)
             ? TweezersValidationResult.Accept()
             : TweezersValidationResult.Reject(
                    $"Invalid {fieldName}, possible values are: [{AllowedValues.ToArrayString()}]"));
     }
     catch
     {
         return(TweezersValidationResult.Reject($"Could not parse {fieldName}"));
     }
 }
Esempio n. 4
0
        private static TweezersObject ReplaceTweezersObject(TweezersObject data)
        {
            data.Fields = data.Fields.ToDictionary(kvp => kvp.Value.FieldProperties.Name, kvp => kvp.Value);

            JObject dataAsJObject = JObject.FromObject(data, Serializer.JsonSerializer);

            dataAsJObject["fields"] = JArray.FromObject(
                data.Fields.Select(kvp => JObject.FromObject(kvp.Value.FieldProperties, Serializer.JsonSerializer)));

            TweezersValidationResult validationResult =
                SchemaManagement.SchemaMetadata.Validate(dataAsJObject, false);

            TweezersSchemaFactory.AddObject(data);
            TweezersObject obj = TweezersSchemaFactory.Find(data.CollectionName);

            return(obj);
        }
Esempio n. 5
0
        public TweezersValidationResult Validate(string fieldName, dynamic value)
        {
            string passwordStr = value.ToString();

            if (string.IsNullOrWhiteSpace(passwordStr))
            {
                return(TweezersValidationResult.Reject("empty password"));
            }

            bool hasCapitalLetter = passwordStr.Any(char.IsUpper);
            bool hasLowerLetter   = passwordStr.Any(char.IsLower);
            bool hasDigit         = passwordStr.Any(char.IsNumber);

            if (hasCapitalLetter && hasLowerLetter && hasDigit)
            {
                return(TweezersValidationResult.Accept());
            }

            return(TweezersValidationResult.Reject("invalid password, must contain at least one capital letter, one lower letter and one number"));
        }
        public ActionResult <JObject> Patch(string id, [FromBody] CreateUserRequest patchRequest)
        {
            if (!IdentityManager.UsingIdentity)
            {
                return(TweezersNotFound());
            }

            return(WrapWithAuthorizationCheck(() =>
            {
                try
                {
                    if (FindUser(patchRequest.Username) == null)
                    {
                        throw new TweezersValidationException(TweezersValidationResult.Reject($"Unable to find user"));
                    }

                    JObject userJObject = JObject.FromObject(patchRequest, Serializer.JsonSerializer);
                    if (patchRequest.Password != null)
                    {
                        TweezersValidationResult passwordOk =
                            UsersLoginSchema.Fields["password"].Validate(patchRequest.Password);
                        if (!passwordOk.Valid)
                        {
                            throw new TweezersValidationException(passwordOk);
                        }

                        userJObject["passwordHash"] = Hash.Create(patchRequest.Password);
                    }

                    TweezersObject usersObjectMetadata = TweezersSchemaFactory.Find
                                                             (IdentityManager.UsersCollectionName, true, true);
                    usersObjectMetadata.Validate(userJObject, true);
                    JObject user = usersObjectMetadata.Update(TweezersSchemaFactory.DatabaseProxy, id, userJObject);
                    return TweezersOk(user);
                }
                catch (TweezersValidationException e)
                {
                    return TweezersBadRequest(e.Message);
                }
            }, "Patch", DefaultPermission.Edit, IdentityManager.UsersCollectionName));
        }
 public TweezersValidationResult Validate(string fieldName, dynamic value)
 {
     return(value == null
         ? TweezersValidationResult.Reject($"{fieldName} cannot be null.")
         : TweezersValidationResult.Accept());
 }
Esempio n. 8
0
 public TweezersValidationException(TweezersValidationResult result)
 {
     _result = result;
 }
Esempio n. 9
0
 private TweezersValidationResult Reject(string fieldName)
 {
     return(TweezersValidationResult.Reject($"Field {fieldName} is not of type {this.Name}"));
 }