Inheritance: SenseNet.ContentRepository.Schema.FieldValidationResult
Beispiel #1
0
        public override FieldValidationResult ValidateData(object value, Field field)
        {
            if (value == null)
            {
                return(new FieldValidationResult(CannotBeNullError));
            }

            var data = value as PasswordField.PasswordData;

            if (data == null)
            {
                var sdata = value as string;
                if (sdata != null)
                {
                    data = new PasswordField.PasswordData {
                        Text = sdata
                    }
                }
                ;
            }
            if (data == null)
            {
                return(new FieldValidationResult(DataMustBePasswordData));
            }

            // check password
            var hash = data.Hash;

            if (!String.IsNullOrEmpty(data.Text))
            {
                hash      = ((PasswordField)field).EncodePassword(data.Text);
                data.Hash = hash;
            }

            var user = field.Content.ContentHandler as User;

            if (user == null)
            {
                var checkResult = this.CheckPassword(hash, null);
                if (!checkResult.Valid)
                {
                    var validationResult = new PasswordFieldValidationResult(checkResult.Message);
                    validationResult.CheckResult = checkResult;
                    return(validationResult);
                }
            }
            else
            {
                var checkResult = this.CheckPassword(hash, user.GetOldPasswords());
                if (!checkResult.Valid)
                {
                    var validationResult = new PasswordFieldValidationResult(checkResult.Message);
                    validationResult.CheckResult = checkResult;
                    return(validationResult);
                }
            }

            var  origValue            = field.OriginalValue as PasswordField.PasswordData;
            bool isValidOriginalValue = !String.IsNullOrEmpty(origValue.Hash) || this.Compulsory != true;

            if (data.Text == null && data.Hash == null && !isValidOriginalValue)
            {
                return(new FieldValidationResult(OriginalIsInvalidError));
            }

            if (data.Text != null)
            {
                return(base.ValidateData(data.Text, field));
            }

            return(FieldValidationResult.Successful);
        }
        public override FieldValidationResult ValidateData(object value, Field field)
        {
            if (value == null)
                return new FieldValidationResult(CannotBeNullError);

            var data = value as PasswordField.PasswordData;
            if (data == null)
            {
                var sdata = value as string;
                if (sdata != null)
                    data = new PasswordField.PasswordData { Text = sdata };
            }
            if (data == null)
                return new FieldValidationResult(DataMustBePasswordData);

            // check password
            var user = field.Content.ContentHandler as User;
            if (user == null)
            {
                var checkResult = this.CheckPassword(data.Text, null);
                if (!checkResult.Valid)
                {
                    var validationResult = new PasswordFieldValidationResult(checkResult.Message);
                    validationResult.CheckResult = checkResult;
                    return validationResult;
                }
            }
            else
            {
                var checkResult = this.CheckPassword(data.Text, user.GetOldPasswords());
                if (!checkResult.Valid)
                {
                    var validationResult = new PasswordFieldValidationResult(checkResult.Message);
                    validationResult.CheckResult = checkResult;
                    return validationResult;
                }
            }

            var origValue = field.OriginalValue as PasswordField.PasswordData;
            bool isValidOriginalValue = !String.IsNullOrEmpty(origValue.Hash) || this.Compulsory != true;

            if (data.Text == null && data.Hash == null && !isValidOriginalValue)
                return new FieldValidationResult(OriginalIsInvalidError);

            if (data.Text != null)
                return base.ValidateData(data.Text, field);

            return FieldValidationResult.Successful;
        }