package form import ( "net/http" "github.com/zhang2092/browser" ) type Login struct { Email string `form:"email" binding:"required,email"` Password string `form:"password" binding:"required,min=6"` Captcha string `form:"captcha" binding:"required"` CaptchaID string `form:"captcha_id" binding:"required"` // 平台信息 Os string Ip string Browser string Referrer string Url string } func (login Login) SetAttributes(r *http.Request) Login { login.Ip = r.RemoteAddr login.Referrer = r.Header.Get("Referer") login.Url = r.URL.RequestURI() br, err := browser.NewBrowser(r.Header.Get("User-Agent")) if err == nil { login.Os = br.Platform().Name() login.Browser = br.Name() } return login } type User struct { ID *int32 `form:"id" binding:"required"` Email string `form:"email" binding:"required,email"` Username string `form:"username" binding:"required"` Password string `form:"password" binding:"required,min=6"` ChangePassword string `form:"change_password"` Avatar string `form:"File"` Gender int32 `form:"gender"` DepartmentID int32 `form:"department_id"` RoleID int32 `form:"role_id"` Status *int32 `form:"status" binding:"required"` }