|
@@ -148,6 +148,56 @@ func (this *Modules) RegisterAction_CpFirstUser() *Action {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+func (this *Modules) RegisterAction_CpUserLogin() *Action {
|
|
|
+ return this.newAction(AInfo{
|
|
|
+ WantDB: true,
|
|
|
+ Mount: "signin",
|
|
|
+ }, func(wrap *wrapper.Wrapper) {
|
|
|
+ pf_email := wrap.R.FormValue("email")
|
|
|
+ pf_password := wrap.R.FormValue("password")
|
|
|
+
|
|
|
+ if pf_email == "" {
|
|
|
+ wrap.MsgError(`Please specify user email`)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if !utils.IsValidEmail(pf_email) {
|
|
|
+ wrap.MsgError(`Please specify correct user email`)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if pf_password == "" {
|
|
|
+ wrap.MsgError(`Please specify user password`)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if wrap.S.GetInt("UserId", 0) > 0 {
|
|
|
+ wrap.MsgError(`You already logined`)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var user_id int
|
|
|
+ err := wrap.DB.QueryRow(
|
|
|
+ "SELECT `id` FROM `users` WHERE `email` = ? and `password` = MD5(?) LIMIT 1;",
|
|
|
+ pf_email, pf_password).Scan(&user_id)
|
|
|
+
|
|
|
+ if err != nil && err != sql.ErrNoRows {
|
|
|
+ wrap.MsgError(err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if err == sql.ErrNoRows {
|
|
|
+ wrap.MsgError(`Incorrect email or password`)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // Save to current session
|
|
|
+ wrap.S.SetInt("UserId", user_id)
|
|
|
+
|
|
|
+ // Reload current page
|
|
|
+ wrap.Write(`window.location.reload(false);`)
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
// All actions here...
|
|
|
-// User login
|
|
|
// User logout
|