From 32629777fadcac3131e6a823e97a2461e266c9eb Mon Sep 17 00:00:00 2001 From: viletyy Date: Thu, 27 Jun 2019 12:43:12 +0800 Subject: [PATCH] =?UTF-8?q?[ADD]=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- controllers/user.go | 49 +++++++++++++++++- .../3/8/382c6bfc04b072ea81ebb02d688f7197 | Bin 337 -> 0 bytes .../9/d/9d124dd27eeae0373eb2117c80a29cb8 | Bin 337 -> 0 bytes models/user.go | 14 +++++ views/reg.html | 25 ++++++++- 6 files changed, 87 insertions(+), 3 deletions(-) delete mode 100644 data/session/3/8/382c6bfc04b072ea81ebb02d688f7197 delete mode 100644 data/session/9/d/9d124dd27eeae0373eb2117c80a29cb8 diff --git a/.gitignore b/.gitignore index c3a88a4..305df31 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,7 @@ *.out *.DS_Store conf/database.conf - +data/* .idea lastupdate.tmp liteblog diff --git a/controllers/user.go b/controllers/user.go index 6812bbb..3bb22e7 100644 --- a/controllers/user.go +++ b/controllers/user.go @@ -1,9 +1,11 @@ package controllers import ( + "errors" "liteblog/models" "liteblog/syserrors" "log" + "strings" ) type UserController struct { @@ -16,9 +18,16 @@ func (c *UserController) Login() { c.TplName = "login.html" } +// 注册页面 +// @router /reg [get] +func (c *UserController) Reg() { + c.TplName = "reg.html" +} + +// 登陆接口 // @router /signin [post] func (c *UserController) SignIn() { - log.Print("======") + log.Print("正在进行登陆操作") // 判断邮箱不能为空 email := c.GetMustString("email", "邮箱不能为空") // 判断密码不能为空 @@ -35,4 +44,42 @@ func (c *UserController) SignIn() { // 将user保存到session c.SetSession(SESSION_USER_KEY, user) c.JSONOk("登陆成功", "/") +} + +// 注册接口 +// @router /signup [post] +func (c *UserController) SignUp() { + log.Print("正在进行注册操作") + // 判断昵称不能为空 + name := c.GetMustString("name", "昵称不能为空") + // 判断邮箱不能为空 + email := c.GetMustString("email", "邮箱不能为空") + // 判断密码不能为空 + password := c.GetMustString("password", "密码不能为空") + // 判断确认密码不能为空 + password_confirmation := c.GetMustString("password_confirmation", "确认密码不能为空") + + if strings.Compare(password, password_confirmation) != 0 { + c.Abort500(errors.New("密码与确认密码不一致")) + } + + if u, err := models.QueryUserByName(name); err == nil && u.ID != 0 { + c.Abort500(syserrors.NewError("用户昵称已经存在", err)) + } + + if u, err := models.QueryUserByEmail(email); err == nil && u.ID != 0 { + c.Abort500(syserrors.NewError("用户邮箱已经存在", err)) + } + + // 开始保存用户 + if err := models.SaveUser(&models.User{ + Name: name, + Email: email, + Pwd: password, + Avatar: "", + Role: 1, + }); err != nil { + c.Abort500(syserrors.NewError("用户注册失败", err)) + } + c.JSONOk("注册成功", "/login") } \ No newline at end of file diff --git a/data/session/3/8/382c6bfc04b072ea81ebb02d688f7197 b/data/session/3/8/382c6bfc04b072ea81ebb02d688f7197 deleted file mode 100644 index e22701e063604e3cc4a0923c5619bc78d1cf8c63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmZWjTS~(~6ul=+0z#-k#2?pSg1P~V4N}A^jrs7ajL9?(%p`3x=&z6Z*oZrF0q$g+ z@k0t;E}V1jzmPd+^JOo$N^nMX&%UU#CYqaBL#EYByG(|M6+v-x>;vnz$>x3aBM z)mB{gNzwDpybJ)}F_^VoM{wbqFmD8Z$`nUL2r|WlbSxa*GtD|j2Uic3Lx0vv4xfn5 z%&RrqG=Mi5BP48{cARNmjWo=MmBq5!lw&UWUzaF0?}2^lTG;D$oM>UzC2VZNis9Gi z-kn9l_rHRDl~qbKh<@Q@wMxoXVL$CP)1pj;Vm0qm(Ja~nq3UGW)Cdocj%~uDA6qM1 A0ssI2 diff --git a/data/session/9/d/9d124dd27eeae0373eb2117c80a29cb8 b/data/session/9/d/9d124dd27eeae0373eb2117c80a29cb8 deleted file mode 100644 index e22701e063604e3cc4a0923c5619bc78d1cf8c63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmZWjTS~(~6ul=+0z#-k#2?pSg1P~V4N}A^jrs7ajL9?(%p`3x=&z6Z*oZrF0q$g+ z@k0t;E}V1jzmPd+^JOo$N^nMX&%UU#CYqaBL#EYByG(|M6+v-x>;vnz$>x3aBM z)mB{gNzwDpybJ)}F_^VoM{wbqFmD8Z$`nUL2r|WlbSxa*GtD|j2Uic3Lx0vv4xfn5 z%&RrqG=Mi5BP48{cARNmjWo=MmBq5!lw&UWUzaF0?}2^lTG;D$oM>UzC2VZNis9Gi z-kn9l_rHRDl~qbKh<@Q@wMxoXVL$CP)1pj;Vm0qm(Ja~nq3UGW)Cdocj%~uDA6qM1 A0ssI2 diff --git a/models/user.go b/models/user.go index f523631..0329de6 100644 --- a/models/user.go +++ b/models/user.go @@ -17,3 +17,17 @@ func QueryUserByEmailAndPassword(email, password string) (user User, err error) e := db.Model(&User{}).First(&user, "email = ? and pwd = ?", email, password).Error return user, e } + +func QueryUserByName(name string) (user User, err error) { + e := db.Model(&User{}).First(&user, "name = ?", name).Error + return user, e +} + +func QueryUserByEmail(email string) (user User, err error) { + e := db.Model(&User{}).First(&user, "email = ?", email).Error + return user, e +} + +func SaveUser(user *User) error { + return db.Create(user).Error +} \ No newline at end of file diff --git a/views/reg.html b/views/reg.html index aaba832..4ef3d48 100644 --- a/views/reg.html +++ b/views/reg.html @@ -39,7 +39,7 @@
-
@@ -57,5 +57,28 @@
{{ template "shares/footer.html". }} + \ No newline at end of file