49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
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"`
|
|
}
|