func ValidatePassword(v *revel.Validation, password string) *revel.ValidationResult { return v.Check(password, revel.Required{}, revel.MaxSize{15}, revel.MinSize{5}, ) }
func (article *Article) Validate(v *revel.Validation) { v.Check(article.Title, revel.Required{}, revel.MinSize{1}, revel.MaxSize{256}, ) }
func Validate(validation *revel.Validation, obj interface{}) { // Get reflection data to parse validation tag data var v reflect.Value = reflect.Indirect(reflect.ValueOf(obj)) // We only want to validate structs and their tagged fields if v.Kind() != reflect.Struct { panic(fmt.Sprintf("Object is not a struct. Actual kind is: %s", v.Kind())) } // Go through each field in the struct and check for the // validation tag. Apply appropriate revel check as needed. t := v.Type() for i := 0; i < t.NumField(); i++ { field := t.Field(i) fieldId := fmt.Sprintf("%s.%s", t.Name(), field.Name) var fieldValidators []revel.Validator fieldValidators, ok := validationCache[fieldId] if tag := field.Tag.Get(TagName); !ok && len(tag) > 0 { fieldValidators = parseTag(tag) validationCache[fieldId] = fieldValidators } else if !ok { fieldValidators = nil validationCache[fieldId] = nil } if len(fieldValidators) > 0 { validation.Check(v.FieldByName(field.Name).Interface(), fieldValidators...).Key(fieldId) } } }
func (r *Restaurant) Validate(v *revel.Validation) { v.Check(r.Name, revel.Required{}, revel.MaxSize{150}, revel.MinSize{1}, ) }
func (this *Project) Validate(v *r.Validation) { v.Check(this.Name, r.Required{}, r.MinSize{2}, r.MaxSize{64}, r.Match{projRegex}) if this.DisplayName == "" { this.DisplayName = this.Name } v.Required(this.OwnerId) }
func (this *User) ValidatePassword(v *r.Validation, password string) { bin := []byte(_APPSECRET + password + this.Username) hbin, _ := base64.StdEncoding.DecodeString(this.Password) err := bcrypt.CompareHashAndPassword(hbin, bin) if err != nil { v.Error("密码不匹配") } }
func (category Category) Validate(v *revel.Validation) { v.Required(category.Name).Message("请输入名称") if category.HasName() { err := &revel.ValidationError{ Message: "名称已存在", Key: "category.Name", } v.Errors = append(v.Errors, err) } }
func (loginUser *LoginUser) Validate(v *revel.Validation, session *mgo.Session) { v.Check(loginUser.UserName, revel.Required{}, revel.Match{USERNAME_REX}, ).Message("UserName or password is wrong") v.Check(loginUser.PasswordStr, revel.Required{}, revel.Match{PWD_REX}, LegalUserValidator{session, loginUser.UserName}, ).Message("UserName or password is wrong") }
func (user *User) Validate(v *revel.Validation) { v.Check(user.Username, revel.Required{}, revel.MaxSize{15}, revel.MinSize{4}, revel.Match{userRegex}, ) v.Check(user.Name, revel.Required{}, revel.MaxSize{100}, ) }
func (user *User) Validate(v *revel.Validation) { v.Check(user.Username, revel.Required{}, revel.MaxSize{15}, revel.MinSize{3}, revel.Match{userRegex}, ).Key("username") v.Check(user.Password, revel.Required{}, revel.MaxSize{15}, revel.MinSize{3}, ).Key("password") }
//验证密码 func (P *Password) ValidatePassword(v *revel.Validation) { v.Required(P.Password).Message("请输入密码!") v.Required(P.PasswordConfirm).Message("请输入确认密码!") v.MinSize(P.Password, 6).Message("密码最少六位!") v.Required(P.Password == P.PasswordConfirm).Message("两次密码不相同!") }
func (menu *Menu) Validate(v *revel.Validation) { v.Required(menu.Name).Message("请输入菜单名称!") v.MaxSize(menu.Name, 105).Message("最多35个字") v.Required(menu.Pid).Message("请选择父菜单!") v.Required(menu.Url).Message("请输入菜单地址!") v.Required(menu.Order).Message("请输入排序!") }
func (post *Post) Validate(v *revel.Validation) { v.Check( post.Title, revel.Required{}, revel.MinSize{3}, revel.MaxSize{256}, ) v.Check( post.Body, revel.Required{}, revel.MinSize{10}, revel.MaxSize{2048}, ) }
func (user *User) Validate(v *revel.Validation) { v.Check(user.Username, revel.Required{}, revel.MaxSize{15}, revel.MinSize{4}, revel.Match{userRegex}, ) ValidatePassword(v, user.Password). Key("user.Password") v.Check(user.Name, revel.Required{}, revel.MaxSize{100}, ) }
func (category *Category) Validate(v *revel.Validation) { valid := v.Required(category.Name).Message("请输入名称") if valid.Ok { if category.HasName() { err := &revel.ValidationError{ Message: "该名称已存在", Key: "category.Name", } valid.Error = err valid.Ok = false v.Errors = append(v.Errors, err) } } }
func (user *User) Validate(v *revel.Validation) { v.Required(user.Password) //v.MinSize(user.Password, 6) v.Required(user.Email) v.Email(user.Email) if user.Email == "*****@*****.**" && user.Password == "test" { user.Id = "6964943e-535a-4736-85ad-4baaa9656709" } else { v.Error("Sorry! invalid account ...") } }
func checkImageExt(v *revel.Validation, file *multipart.File, header *multipart.FileHeader, formField string) bool { if !strings.Contains(IMAGE_EXTS, strings.ToLower(path.Ext(header.Filename))) { err := &revel.ValidationError{ Message: "只能上传图片", Key: formField, } v.Errors = append(v.Errors, err) return false } if (*file).(Sizer).Size() > IMAGE_LIMIT_SIZE { err := &revel.ValidationError{ Message: fmt.Sprintf("图片尺寸不超过%dKB", IMAGE_LIMIT_SIZE), Key: formField, } v.Errors = append(v.Errors, err) return false } return true }
func checkFileExt(v *revel.Validation, header *multipart.FileHeader, fileExts, formField, message string) bool { if !strings.Contains(fileExts, strings.ToLower(path.Ext(header.Filename))) { err := &revel.ValidationError{ Message: message, Key: formField, } v.Errors = append(v.Errors, err) return false } return true }
func (topic Topic) Validate(v *revel.Validation) { v.Required(topic.Title).Message("请输入标题") if utf8.RuneCountInString(topic.Title) > 35 { err := &revel.ValidationError{ Message: "最多35个字", Key: "topic.Title", } v.Errors = append(v.Errors, err) } v.Required(topic.Category).Message("请选择分类") v.Required(topic.Content).Message("帖子内容不能为空") }
func (user *User) ValidateCreate(v *revel.Validation) { validators.UniqueUsername(v, user.Username).Key("user.Username") validators.UniqueEmail(v, user.Email).Key("user.Email") v.Required(user.Password) v.Required(user.PasswordConfirm) v.Required(user.PasswordConfirm == user.Password).Message("Passwords must match") }
func (user *User) ValidatePassword(v *revel.Validation, password Password) { v.Check(password.Pass, revel.MinSize{8}, ) v.Check(password.PassConfirm, revel.MinSize{8}, ) v.Required(password.Pass == password.PassConfirm).Message("The passwords do not match.") }
func (product Product) Validate(v *revel.Validation) { v.Required(product.Name).Message("不能为空") v.Required(product.Author).Message("不能为空") v.Required(product.Description).Message("不能为空") if utf8.RuneCountInString(product.Name) > 20 { err := &revel.ValidationError{ Message: "最多20个字", Key: "product.Name", } v.Errors = append(v.Errors, err) } }
func (user *User) Validate(v *revel.Validation) { v.Check(user.Firstname, revel.Required{}, revel.MinSize{1}, revel.MaxSize{64}, ) v.Check(user.Lastname, revel.Required{}, revel.MinSize{1}, revel.MaxSize{64}, ) v.Check(user.Email, revel.Required{}, ) v.Email(user.Email) }
func (loginUser *LoginUser) Validate(v *revel.Validation) { v.Check(loginUser.UserName, revel.Required{}, revel.Match{USERNAME_REX}, ).Message("UserName or password is wrong") v.Check(loginUser.PasswordStr, revel.Required{}, revel.Match{PWD_REX}, ).Message("UserName or password is wrong") //0: generate passing str //1: get pwd bytes from database //2: compare them //test here pwd := "testtest" //rPwd := "testtest" rPwd := "testtest" v.Required(pwd == rPwd).Message("user name or password is wrong!!!") }
func (user *User) Validate(v *revel.Validation) { v.Required(user.Username) v.MinSize(user.Username, 6) v.Required(user.FirstName) v.Required(user.LastName) v.Required(user.Age) v.Range(user.Age, 16, 120) v.Required(user.Password) v.MinSize(user.Password, 6) v.Required(user.PasswordConfirm) v.Required(user.PasswordConfirm == user.Password). Message("The passwords do not match.") v.Required(user.Email) v.Email(user.Email) v.Required(user.EmailConfirm) v.Required(user.EmailConfirm == user.Email). Message("The email addresses do not match") v.Required(user.TermsOfUse) }
func (hotel *Hotel) Validate(v *revel.Validation) { v.Check(hotel.Name, revel.Required{}, revel.MaxSize{50}, ) v.MaxSize(hotel.Address, 100) v.Check(hotel.City, revel.Required{}, revel.MaxSize{40}, ) v.Check(hotel.State, revel.Required{}, revel.MaxSize{6}, revel.MinSize{2}, ) v.Check(hotel.Zip, revel.Required{}, revel.MaxSize{6}, revel.MinSize{5}, ) v.Check(hotel.Country, revel.Required{}, revel.MaxSize{40}, revel.MinSize{2}, ) }
func (this *User) Validate(v *r.Validation, password string) { const ( EMAIL = "电子邮件地址" USERNAME = "******" PASSWORD = "******" INVALID = "不符合要求" NOEMPTY = "不能为空" ALREADYEXISTS = "已存在" ) v.Required(this.Email).Message(EMAIL + NOEMPTY) v.Check(this.Email, r.MinSize{6}, r.MaxSize{100}, r.Match{emailRegex}). Message(EMAIL + INVALID) v.Required(this.Username).Message(USERNAME + NOEMPTY) v.Check(this.Username, r.MinSize{2}, r.MaxSize{32}, r.Match{userRegex}). Message(USERNAME + INVALID) v.Required(password).Message(PASSWORD + NOEMPTY) v.Check(password, r.MaxSize{32}, r.MinSize{6}). Message(PASSWORD + INVALID) }
func (post *Post) Validate(v *revel.Validation) { v.MaxSize(post.Body, 100) }
func (upf *UpdateRoom) Validate(v *revel.Validation) { v.Required(upf.Title) v.Required(upf.Desc) }
func (regUser *RegUser) Validate(v *revel.Validation) { //Check workflow: //see @validation.go Check(obj interface{}, checks ...Validator) //Validator is an interface, v.Check invoke v.Apply for each validator. //Further, v.Apply invoke validator.IsSatisfied with passing obj. //Checking result is an object of ValidationResult. The field Ok of ValidationResult //would be true if checking success. Otherwise, Ok would be false, and another filed //Error of ValidationResult would be non-nil, an ValidationError filled with error message //should be assigned to Error. v.Check(regUser.UserName, revel.Required{}, revel.Match{USERNAME_REX}, DuplicatedUser{}, ) v.Check(regUser.NickName, revel.Required{}, revel.Match{NICKNAME_REX}, ) //validation provide an convenient method for checking Email. //revel has a const for email rexgep, Email will use the rex to check email string. v.Email(regUser.Email) v.Check(regUser.Email, DuplicatedEmail{}, ) v.Check(regUser.PasswordStr, revel.Required{}, revel.Match{PWD_REX}, ) v.Check(regUser.ConfirmPwdStr, revel.Required{}, revel.Match{PWD_REX}, ) //pwd and comfirm_pwd should be equal v.Required(regUser.PasswordStr == regUser.ConfirmPwdStr).Message("The passwords do not match.") }